本文转自迅为开发板论坛:http://www.topeetboard.com
注:本文章部分参考摘录自:《嵌入式系统Linux内核开发实战指南(ARM平台)》
初级阶段:熟悉基本开发流程和方法阶段。
这一阶段需要掌握的知识和技能包括:1.)嵌入式系统硬件设计流程;2.)嵌入式系统硬件调试;3.)嵌入式系统软件下载、调试、固化;4.)Bootloader编译、移植、裁剪、调试、固化;5.)Linux内核交叉编译环境创建;6.)Linux内核编译;7.)Linux内核下载、调试、固化。
这一阶段需要做的事情包括:起步人员开在相关书籍(如原书)指导下,参考一套市场上成熟的嵌入式开发套件,或者直接使用相关原理图、pcb图、及相关配件(如调试器原理图、pcb),自己亲自去制板、采购元器件、焊接、调试,然后亲自编译、下载、调试、固化,自己把这个过程走一遍,就把嵌入式Linux开发流程和方法熟悉了,为以后的进一步攀登打下了坚实的基本功底。
中级阶段:经验积累、技能增长阶段。
这一阶段需要掌握的知识和技能包括:1.)嵌入式系统软硬件疑难问题调试解决;2.)Linux内核移植、裁剪、调试;3.)各种设备驱动程序开发与调试。
这一阶段需要做的事情包括:这个阶段可以在一个比较大的平台(各种外围设备如:usb接口、gps、3G、以太网口、wifi等)上开发、移植、调试各种设备驱动程序,多看一些外设芯片数据手册。多看一些接口标准和协议手册,在开发的过程中积累更多的经验和技能。
高级阶段:能够从系统原理的高度分析解决问题。
这一阶段需要掌握的知识和技能包括:1.)精通各种架构嵌入式处理器内部结构和原理,能够将它们融会贯通;2.)Linux内核疑难问题调试、解决;3.)Linux内核优化;4.)能够将Linux内核移植到Linux已经支持的某种架构的新型号处理器平台上。
这一阶段需要做的事情包括:多在一些不同架构、不同型号的处理器平台上做开发,阅读不同处理器的芯片手册,比较理解各种处理器的内部架构原理,还可以尝试修改内核源代码,加深对Linux内核的理解,优化Linux内核。
专家级别:对Linux内核各组件原理有透彻理解。
这一阶段需要掌握的知识和技能包括:1.)深入理解Linux内核的组织架构。2.)深入理解Linux内核各部分的实现原理;3.)能够根据需要随心所欲增减Linux内核组件和组件中的模块;4.)能够将Linux内核移植到Linux尚未支持的新型架构处理器平台上。
此阶段需要做的事情包括:最核心的事情就是静心阅读Linux源码,参悟其中的精髓。因为不管做了多长时间、多少项目的开发人员,其实只是增长积累了经验、技能和方法,而真正涉及Linux内核精髓,从而去改动的并不多,所以他们虽然算的上是Linux开发高手,但Linux内核理论水平并不高,这必须专门去系统阅读Linux内核,以前的经验会让你更容易理解Linux内核原理,而这又可以指导今后的开发,这样理论和实践相互促进相互提高。坚持下去,你的理论水平和实战能力终将得到质的飞跃,成为真正的嵌入式系统和Linux内核专家,那时你就能“不管风吹浪打,胜似闲庭信步” “悠哉,壮哉”
可敬的同学们,道友们,大家现在荣升到哪一界别了?
本段可能只说明了嵌入式Linux的学习提高进阶过程,但万法相通,我想,对于如今人气最旺盛的Android开发,贵族气质的IOS,再或者是不甘落后的Windows Phone等嵌入式系统都有类似的艰苦过程吧。