嵌入式Linu开发学习入门建议
-
- 帖子: 4
- 注册时间: 2011-09-06 10:47
嵌入式Linu开发学习入门建议
时常有很多人问,嵌入式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的等等。
第四,有条件的话,尽量找个人指导,说通俗一点,就是找个人带.这个适合有条件的人。在有条件的情况下,尽量找个人带,有几个好处。第一,少走弯路。如果没有人带的话,往往不知道哪里是重点,哪里该到什么程度,如果这个不清楚的话,眉毛胡子一把抓,就会多走好多弯路,浪费很多时间,时间就是金钱啊,呵呵;第二,在自己学习的过程中,时常会碰倒很多问题,而往往碰倒这些问题后,一时半会又搞不定,卡在哪里,如果这时候有个人指导,就完全不一样了。好处大家都懂的。
时间已经是深夜了,一时兴起,写了这么多,该睡觉了。没说完的,下次再说吧
第一:在自己的电脑上安装一个实际的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的等等。
第四,有条件的话,尽量找个人指导,说通俗一点,就是找个人带.这个适合有条件的人。在有条件的情况下,尽量找个人带,有几个好处。第一,少走弯路。如果没有人带的话,往往不知道哪里是重点,哪里该到什么程度,如果这个不清楚的话,眉毛胡子一把抓,就会多走好多弯路,浪费很多时间,时间就是金钱啊,呵呵;第二,在自己学习的过程中,时常会碰倒很多问题,而往往碰倒这些问题后,一时半会又搞不定,卡在哪里,如果这时候有个人指导,就完全不一样了。好处大家都懂的。
时间已经是深夜了,一时兴起,写了这么多,该睡觉了。没说完的,下次再说吧
-
- 帖子: 2
- 注册时间: 2011-02-25 9:31
Re: 嵌入式Linu开发学习入门建议
感谢楼主指点迷津!! 

-
- 帖子: 7
- 注册时间: 2011-04-29 12:19
Re: 嵌入式Linu开发学习入门建议
感谢楼主指点迷津!!
-
- 帖子: 9
- 注册时间: 2010-12-23 11:21
Re: 嵌入式Linu开发学习入门建议
我是只菜鸟,请问楼主linux操作系统和windows有啥不一样啊?
- charskar
- 帖子: 511
- 注册时间: 2011-07-28 3:14
- 系统: ubuntu 12.04
- 来自: 中國大陸安徽池州的一個鄉村中小組裏的一個農民
- 联系:
Re: 嵌入式Linu开发学习入门建议
贊同LZ的意見,我個人覺得,如果英文好的話,可能壓根不用學了。
使用這個操作系統之後,我強烈想學英文!
所有的問題都卡在了不懂英文上。
使用這個操作系統之後,我強烈想學英文!
所有的問題都卡在了不懂英文上。
迷乱了!ubuntu所谓的触控就是拖动图标和窗体。
连基本的放大缩小,卷动都没有,要触控有什么用?
难道就是为了用手指在屏幕上拖图标和窗体玩?
连基本的放大缩小,卷动都没有,要触控有什么用?
难道就是为了用手指在屏幕上拖图标和窗体玩?
-
- 帖子: 4
- 注册时间: 2011-09-08 17:04
Re: 嵌入式Linu开发学习入门建议
哈哈,楼主果然很强啊,学到不少~~~~
- phoenixlzx
- 帖子: 2245
- 注册时间: 2009-07-29 20:11
- 系统: Arch Linux
- 来自: Gensokyo
- 联系:
- code vampire
- 帖子: 193
- 注册时间: 2010-06-19 12:50
- 系统: AIX、UBUNTU
- 联系:
Re: 嵌入式Linu开发学习入门建议
照楼主的话说我现在到了买开发板的时候了,但我越来越质疑这样做的正确性,我发现还有很多东西没有学,嵌入式是否要从51单片机学起,硬件的东西一点也不懂似乎也不行。
另外ARM的汇编指令也得学吧,学到什么程度楼主没说。
嵌入式系统Linux内核移植,LFS你在PC上总得编成过一次吧,用别人烧好的Android或QtE有什么意思,还是没有学到真经。裸开发板你玩过没?
如果学嵌入式就是为了给Android,iPhone写应用,那是应用程序员,谈不上嵌入式程序员,你也不需用学习APUE,那是浪费时间,因为开发语言都封装得很过分了。我的理想是写设备驱动程序,做Linux内核移植,不是拿Java、C#、Object C写破应用,我想拿C拿汇编写驱动。写应用没前途的,就好像Nokia裁员,Android不行了也得裁,应用程序员永远吃青春饭,我要的是真技术,过十年二十年,拿出来还是没几个人会的技术。
要我说还是得一步步来,这事急不得。APUE是必看的书,UNIX网络编程两卷,卷一是套接字,卷二是IPC都得看,TCP/IP协议详解起码卷一你得看,这样内核编程才算过关。然后开始自己搭建Linux开发系统,裸开发板,从交叉编译工具链开始,再到编译内核,安装图形系统,安装各种驱动,库,这样你才算真真了解Linux系统移植。什么算法、数据结构的都算基本功,得好好练。内核编程过关了就看Linux源码分析,从低版本看起,看到高版本,什么Linux源码情景分析什么的估计也是必须的,然后你要挑出几个设备,将设备驱动程序吃透,比如字符设备,块设备,USB。。。然后用ARM汇编,ISO C写开发板驱动,键盘,触摸板,LED,按键,摄像头,GPRS,WIFI,GPS,所以这是一个令人生畏的过程。
为什么公司里好的Linux程序员要比写Windows程序的程序员挣的多?这就是原因,一个好的Linux程序员意味着绝对的专家,照MS不要脸的话说就是MVP,所以物以稀为贵。
另外不要拿开发Windows的那套东西与思想来做Linux开发,应用是给下游厂商技术员写的,Qt,Gtk+,Java。。。 。。。数不胜数,更新快到你学会了就已经淘汰了,要做就做底层开发,与其他程序员打交道,用户都是白痴,与他们打交道是写UI写MFC写WPF。。。的程序的事。Google写Android系统设备驱动的程序员与用户打交道吗?
UNIX程序设计艺术,也是本好书,如果你使用Linux很长时间了,并且拿她做开发也看看,对你会有很多启迪的。
另外ARM的汇编指令也得学吧,学到什么程度楼主没说。
嵌入式系统Linux内核移植,LFS你在PC上总得编成过一次吧,用别人烧好的Android或QtE有什么意思,还是没有学到真经。裸开发板你玩过没?
如果学嵌入式就是为了给Android,iPhone写应用,那是应用程序员,谈不上嵌入式程序员,你也不需用学习APUE,那是浪费时间,因为开发语言都封装得很过分了。我的理想是写设备驱动程序,做Linux内核移植,不是拿Java、C#、Object C写破应用,我想拿C拿汇编写驱动。写应用没前途的,就好像Nokia裁员,Android不行了也得裁,应用程序员永远吃青春饭,我要的是真技术,过十年二十年,拿出来还是没几个人会的技术。
要我说还是得一步步来,这事急不得。APUE是必看的书,UNIX网络编程两卷,卷一是套接字,卷二是IPC都得看,TCP/IP协议详解起码卷一你得看,这样内核编程才算过关。然后开始自己搭建Linux开发系统,裸开发板,从交叉编译工具链开始,再到编译内核,安装图形系统,安装各种驱动,库,这样你才算真真了解Linux系统移植。什么算法、数据结构的都算基本功,得好好练。内核编程过关了就看Linux源码分析,从低版本看起,看到高版本,什么Linux源码情景分析什么的估计也是必须的,然后你要挑出几个设备,将设备驱动程序吃透,比如字符设备,块设备,USB。。。然后用ARM汇编,ISO C写开发板驱动,键盘,触摸板,LED,按键,摄像头,GPRS,WIFI,GPS,所以这是一个令人生畏的过程。
为什么公司里好的Linux程序员要比写Windows程序的程序员挣的多?这就是原因,一个好的Linux程序员意味着绝对的专家,照MS不要脸的话说就是MVP,所以物以稀为贵。
另外不要拿开发Windows的那套东西与思想来做Linux开发,应用是给下游厂商技术员写的,Qt,Gtk+,Java。。。 。。。数不胜数,更新快到你学会了就已经淘汰了,要做就做底层开发,与其他程序员打交道,用户都是白痴,与他们打交道是写UI写MFC写WPF。。。的程序的事。Google写Android系统设备驱动的程序员与用户打交道吗?
UNIX程序设计艺术,也是本好书,如果你使用Linux很长时间了,并且拿她做开发也看看,对你会有很多启迪的。
Keep it easy stupid !
I am Code Vampire .
I like Linux . I like open source .
-
- 帖子: 1
- 注册时间: 2011-09-19 13:43
Re: 嵌入式Linu开发学习入门建议

-
- 帖子: 77
- 注册时间: 2011-09-18 14:37
- dangxb
- 帖子: 150
- 注册时间: 2009-11-27 23:37
Re: 嵌入式Linu开发学习入门建议
mark了,今天太晚了,下次再看
- code vampire
- 帖子: 193
- 注册时间: 2010-06-19 12:50
- 系统: AIX、UBUNTU
- 联系:
Re: 嵌入式Linu开发学习入门建议
大三yoon__lee 写了:楼主和8楼说的都很不错,受教了,想问问楼主和8楼是大几的?
Keep it easy stupid !
I am Code Vampire .
I like Linux . I like open source .
- mswwjick
- 帖子: 645
- 注册时间: 2009-01-28 21:42
Re: 嵌入式Linu开发学习入门建议
有纠结起来了。哎
-
- 帖子: 30
- 注册时间: 2011-07-18 6:34
Re: 嵌入式Linu开发学习入门建议
mark
-
- 帖子: 4
- 注册时间: 2011-09-06 10:47
Re: 嵌入式Linu开发学习入门建议
来顶帖子咯。。。。。。。。