学习嵌入式linux流程

本人有C及C++基础,电路方面也懂一些,现想学习linux嵌入式方面的知识,请教这方面的高手大大们,我应该先学哪些基础知识,最好能给出详细的学习步骤,转载档勿扰...

嵌入式学习是一个循序渐进的过程,有C语言基础还是比较好的,C++的话不搞上层应用就用不上,如果是希望向嵌入式Linux方向发展的话,关于这个方向,我认为大概分3个阶段:
1、嵌入式linux上层应用,包括QT的GUI开发
2、嵌入式linux系统开发
3、嵌入式linux驱动开发

嵌入式目前主要面向的几个操作系统是,LINUX,WINCE、VxWorks等等
Linux是开源免费的,而且其源代码是开放的,更加适合我们学习嵌入式。

你可以尝试以下路线:
(1) C语言是所有编程语言中的强者,单片机、DSP、类似ARM的种种芯片的编程都可以用C语言搞定),因此必须非常熟练的掌握。
推荐书籍:《The C Programming Language》 这本经典的教材是老外写的,也有中译版本。
(2) 操作系统原理,是必需的,如果你是计算机专业毕业那也就无所谓了,如果是非计算机专业的就必须找一本比较浅显的计算机原理书籍看一看,把啥叫“进程”“线程”“系统调度”等等基本问题搞清楚。
(3)Linux操作系统就是用C语言编写的,所以你也应该先学习下Linux方面的编程,只有你会应用了,才能近一步去了解其内核的精髓。
推荐书籍:《UNIX环境高级编程》(第2版)
(4) 了解ARM的架构,原理,以及其汇编指令,我们在嵌入式开发中,一般很少去写汇编,但是最起码的要求是能够看懂arm汇编。
(5) 系统移植的时候,就需要你从最下层的bootloader开始,然后内核移植,文件系统移植等。而移植这部分对硬件的依赖是非常大的,其配置步骤也相对复杂,也没有太多详细资料。
(6) 驱动开发
linux驱动程序设计既是个极富有挑战性的领域,又是一个博大精深的内容。
linux驱动程序设计本质是属于linux内核编程范畴的,因而是对linux内核和内核编程是有要求的。在学习前你要想了解linux内核的组成,因为每一部分要详细研究的话足够可以扩展成一本厚书。

以上只不过是大概的框架,在实际的开发中还会涉及很多东西,比如:交叉编译、makefile、shell脚本等等,所以说学习嵌入式的周期较长,门槛较高,自学的话更是需要较强的学习能力和专业功底。只要能坚持下来一定会取得成功!

其实LZ可以到一些嵌入式培训机构的网站上看一下他们的课程设置,就会在脑子里有个清晰的思路,比如华清远见的官方网站,上面的嵌入式内容很丰富,嵌入式方面的信息更新也很迅速,没事可以去转转。
温馨提示:内容为网友见解,仅供参考
第1个回答  2010-07-21
建议可以去 尚观 等一些培训机构 他们是怎样安排课程的,可以参考下,自己回来根据自己的特殊情况安排下,怎样学习!也结合你从朋友们那了解到的信息,设计自己的学习计划,

飞旭科技!
第2个回答  2010-07-19
看你想学哪方面了。要是嵌入式应用开发,那根普通开发也差不多;要是想要开发内核跟驱动那就很难了。
应用开发:linux使用-linux开发工具(gcc、gdb、makefile)-linux应用编程。
内核和驱动:汇编-linux内核-。。。。。。。。本回答被网友采纳
第3个回答  2010-07-25
一块开发板,一本对应的文档书。
(1)学习移植linux到板子上。
(2)写几个简单的驱动
(3)如果有机会找个这类的工作。

再次提醒大家,没有实际的嵌入式开发经验,单纯靠自学出来的,找工作很容易被鄙视。

所以想尽办法进到一个类似的公司是你踏入这个门槛的重要一步。基本上在应届毕业生期间没进到嵌入式领域,或者51单片机领域的话,后来想转行比较困难。

请辩证的看待我说的问题。
相似回答