background image

程序。想做个好的驱动人员没有三、四年功底,操作系统内核不研究上几编,不是太容易

 

成功的,但其工资在嵌入式系统四层中可是最高的。
驱动层比较适合于电子、通信、自动化、机电一体、信息工程类专业尤其是计算机偏体系结
构类专业的人来搞,除硬件层所具备的基础学科外,还要对数据结构与算法、操作系统原

 

理、编译原理都要十分精通了解。
3、操作系统层,对于操作系统层目前可能只能说是简单的移植,而很少有人来自已写操
作系统,或者写出缺胳膊少腿的操作系统来,这部分工作大都由驱动工程师来完成。操作
系统是负责系统任务的调试、磁盘和文件的管理,而嵌入式系统的实时性十分重要。据说,
XP 操作系统是微软投入 300 人用两年时间才搞定的,总时工时是 600 人年,中科院软件
所自己的女娲 Hopen 操作系统估计也得花遇几百人年才能搞定。因此这部分工作相对来

 

讲没有太大意义。
4、应用层,相对来讲较为容易的,如果会在 windows 下如何进行编程接口函数调用,到
操作系统下只是编译和开发环境有相应的变化而已。如果涉及 Jave 方面的编程也是如此
的。嵌入式系统中涉及算法的由专业算法的人来处理的,不必归结到嵌入式系统范畴内。
但如果涉及嵌入式系统下面嵌入式数据库、基于嵌入式系统的网络编程和基于某此应用层
面的协议应用开发(比如基于 SIP、H.323、Astrisk

 

)方面又较为复杂,并且有难度了。

 

三、目标与定位。

 

先有目标,再去定位。
学 ARM,从硬件上讲,一方面就是学习接口电路设计,另一方面就是学习汇编和 C 语言
的板级编程。如果从软件上讲,就是要学习基于 ARM 处理器的操作系统层面的驱动、移植
了。这些对于初学都来说必须明确,要么从硬件着手开始学,要么从操作系统的熟悉到应
用开始学,但不管学什么,只要不是纯的操作系统级以上基于 API 的应用层的编程,硬
件的寄存器类的东西还是要能看懂的,基于板级的汇编和 C 编程还是要会的。因此针对于
嵌入式系统的硬件层和驱动程的人,ARM 的接口电路设计、ARM 的 C 语言和汇编语言编

 

程及调试开发环境还是需要掌握的。
因此对于初学者必然要把握住方向,自己的目标是什么,自己要在那一层面上走。然后再
着手学习较好,与 ARM 相关的嵌入式系统的较为实际的两个层面硬件层和驱动层,不管

 

学好了那一层都会很有前途的。
如果想从嵌入式系统的应用层面的走的话,可能与 ARM 及其它体系相去较远,要着重研
究基嵌入式操作系统的环境应用与相应开发工具链,比如 WinCe 操作系统下的 EVC 应
用开发(与 windows 下的 VC 相类似),如果想再有突破就往某些音视频类的协议上靠,
比如 VOIP 领域的基于 SIP 或 H.323 协议的应用层开发,或是基于嵌入式网络数据库的

 

开发等等。
对于初学者来讲,要量力而行,不要认为驱动层工资高就把它当成方向了,要结合自身
特点,嵌入式系统四个层面上那个层面上来讲都是有高人存在,当然高人也对应的高工
资,我是做硬件层的,以前每月工资中个人所得税要被扣上近 3 千大元,当然我一方面
充当工程师的角色,一方面充当主管及人物的角色,两个职位我一个人干,但上班时间
就那些。硬件这方面上可能与我 PK

 

的人很少了,才让我拿到那么多的工资。

 

四、开发系统选择。
很多 ARM 初学者都希望有一套自己能用的系统,但他们住住会产生一种错误认识就是认
为处理器版本越高、性能越高越好,就象很多人认为 ARM9 与 ARM7 好,我想对于初学
者在此方面以此入门还应该理智,开发系统的选择最终要看自己往嵌入式系统的那个方
向上走,是做驱动开发还是应用,还是做嵌入式系统硬件层设计与板级测试。如果想从操
作系统层面或应用层面上走,不管是驱动还是应用,那当然处理器性能越高越好了,但