以下来自网络,写得挺好,我也特别赞同,特分享给大家!
之前一直做nios,其实说白了也是单片机。然后也做过android开发,qt开发,xcode开发。甚至搞过一段时间python,tensorflow。
自己也在工作之余尝试着买了linux开发板,学习了无数教程,记了无数笔记。但收效甚微,连门都没有入。
为什么呢?
我总结了一下,
1. 做单片机的人专注于单片机硬件层,做上位机软件的人专注于做应用层,而linux是个桥梁,桥接应用层和底层,必须两者都通才可以,所以即使你干了很久的底层或应用层也不见得很容易入门linux。
2. 大家常用的是windows操作系统,熟悉linux系统也需要时间。windows上图形界面更直观,linux系统大部分情况都需要用控制台操作(类似于windows的cmd),这会让新手很不适应。
3. 相信看这个帖子的很多人都曾入门过linux,放弃的原因可能是只想跑个led和helloworld都没成功。是的,linux控制一个管脚,都需要打一套动作:搭建linux主机或虚拟机-->配置开发环境--->设置编译器或交叉编译器-->安装需要的库文件--->配置和windos通讯的服务器-->拷贝、解压(tar)、修改(vim)、编译(make)bootloade\linux内核(编辑helloworld或led驱动)\文件系统(QT、ubuntu、Android、buzybox)-->烧写镜像-->编辑、编译应用程序测试。到此,你的helloworld或led才可能运行起来。任何一个流程出问题你都需要排查,一个问题都可能卡你好几天(搭建虚拟机花了我两周时间测试)。所以这种情况下很难不放弃,因为windos下实在是太简单了。
以上原因,大概就是很多人从入门到放弃的原因。
我说下我吧,之前也学习过,包括开发板和教程,但收效甚微。真正让我入门的,是近三个月。没有错,这三个月是绝对不掺水分的,因为项目上要求必须上系统,所以硬着头皮上了。甚至周末都在加班。经历一番苦战,终于拿到了linux入场券。
总的来说,需要以下两点:
1. 要有压力迫使你,假如你只是想学习学习或者项目上可有可无,那么我告诉你,最好的情况也是弄个一知半解。
2. 要有耐心和毅力,初学者会遇到各种各样的问题,基本上所有坑都要踩一边,这也是所有linux学习者都要经历的劫难。遇到问题查书查、搜索引擎,反复排查问题,问题终将解决。
我前面说的都是困难,那么有没有捷径呢?有,而且我就是这么做的,不然不可能短时间内入门。
1. 找一家靠谱的linux开发板供应商,一定要有QQ或微信群,而且必须得有技术支持。(很多开发板qq群只有销售没有技术支持,很多有技术支持却跟个死群一样),不然你大概率要放弃。
2. 用他们提供的操作系统镜像来做,这样会节省你大量的搭建环境时间,而且里面的编译器之类一般都是配置好的。
3. 完全按照他们的手册进行一遍编译、下载、运行。
4. 在第一次跑通前提下进行修改、编译等操作。
按照以上方法,入门难度降低至少50%,linux有个好处就是,遇到的问题基本上别人都遇到过,而搜索引擎几乎全能找到解决方法。
(补充下:其实我本人是买了两家开发板的,讯为和飞凌,都是同一芯片的不同板子,学习过程中可以互相参考,弥补不足,不能指望一家所有东西都有)