时常有很多人问,嵌入式LINUX开发怎么入门。对于很多人来说,这确实是个问题。原因在于嵌入式LINUX开发与一般的桌面系统开发不一样,需要搭建交叉编译环境进行开发,而且,嵌入式LINUX开发涉及到硬件,内核,驱动,文件系统和应用程序的开发,技术难度也很大,那么,怎么入门才最有效的呢?下面,我就说说我的观点,给大家一些入门建议.
第一:在自己的电脑上安装一个实际的LINUX环境并把他当做日常使用的操作系统天天用它。由于LINUX在成本和资源上具有无可比拟的优势,因此,在嵌入式开发中,实际用Linux的远比其它系统的多,很多产家提供的资料也是以linux为主,越来越多的电子厂商已经开始使用linux开发产品。因此,熟练使用与掌握LINUX就显得非常重要了。而熟练掌握与使用LINUX的一个最好的方法就是在自己的电脑上安装一个LINUX操作系统,把他当做日常使用的操作系统天天用它。这样,很快你就能把LINUX玩熟。我记得成都亚嵌那边的电脑,装的全是LINUX系统(Ubuntu 10.04),没有Windows系统。在这样的环境下,就能很快掌握与使用LINUX,这是第一步。很多人担心软件不够丰富,办公,工作和学习受影响。其实,Ubuntu下的软件已经够丰富了,只要不玩游戏,基本不会受影响。况且,在ubuntu下还可以装个虚拟机,再在虚拟机上安装一个XP或win7,这样就更无后顾之忧了.
第二:学会LINUX下的C语言编程。嵌入式系统除了刚开始启动的时候有一小段汇编代码之外,剩下的都是C语言实现的(图形系统用的是C++),因此,学会LINUX下的C语言编程就非常重要。而LINUX下的C语言编程第一步,就是要掌握好C语言。C语言尽管有点难度,但大家基本都在学校学习过,有基础,网上的资源也非常多,因此,还行吧,努力一下还是没问题的。C语言的重点在指针。这方面的资源,我个人觉得一个非常好的地方是成都亚嵌的嵌入式学习系统,里面很多他们内部资源,质量很高,不过好像是需要用户账号的,大家可以到成都亚嵌的网站上找他们的工作人员要一个,应该没问题。除了指针外,相关的重要的知识点还有数据结构,而数据结构中链表又是最重要的,大家在学习的时候可以多加练习。在LINUX编程方面,网上也很多,一本经典的书是<<UNIX环境高级编程>>,Unix教父级人物Richard steven写的,绝对经典。大家可以到网上去下载,如果懒的话,我电脑里有,也可以找我要(留个我的QQ吧:228456590.),除了这本书外,还有一本书也还行,<<linux高级程序设计(第2版) >>,人民邮电出版的。我的观点就是,看书要看经典,否则,还不如不看,浪费时间,浪费金钱。对于英语好的人,强烈建议看英文版的书籍和资料!
第三,针对嵌入式开发板进行学习.有了前面的基础后,下面就可以买块嵌入式开发板实际进行嵌入式开发学习了。嵌入式学习的时候,建议大家采用这样的思路,先跑起来,看到效果,然后再去研究。这样,目标明确,效果才好,否则,都不知道长什么样子,怎么知道该如何做呢?在嵌入式系统开发的学习中,我认为最重要的是两个方面,第一个是系统的掌握相关原理;第二是调试经验。这两个好了,那么嵌入式系统开发你就没有问题了,这两个不好,我认为其它的都是浮云。在选择开发板上,如果只是学习用,买块arm9的就可以了,便宜而且够用。当然有钱的话,买个高端的也挺好,如arm11的,A8的等等。
第四,有条件的话,尽量找个人指导,说通俗一点,就是找个人带.这个适合有条件的人。在有条件的情况下,尽量找个人带,有几个好处。第一,少走弯路。如果没有人带的话,往往不知道哪里是重点,哪里该到什么程度,如果这个不清楚的话,眉毛胡子一把抓,就会多走好多弯路,浪费很多时间,时间就是金钱啊,呵呵;第二,在自己学习的过程中,时常会碰倒很多问题,而往往碰倒这些问题后,一时半会又搞不定,卡在哪里,如果这时候有个人指导,就完全不一样了。好处大家都懂的。
时间已经是深夜了,一时兴起,写了这么多,该睡觉了。没说完的,下次再说吧.
[[i] 本帖最后由 nimaya 于 2011-9-6 14:50 编辑 [/i]]
|