background image

嵌入式软件工程师职业指南

摘要:嵌入式目前最流行的就是基于

ARM9 的开发,相关学习的资料也非常的全。但是嵌入式

的开发是个非常长的战线。想一个人把全线贯通至少需要两年的时间

.我目前只能在某些点上做

到精通。对于整个线上的知识我现在做下总结

,留给我以后各个击破。

关键词:嵌入式软件

  软件开发  ARM9

嵌入式目前最流行的就是基于

ARM9 的开发,相关学习的资料也非常的全。但是嵌入

式的开发是个非常长的战线。想一个人把全线贯通至少需要两年的时间

.我目前只能在某些

点上做到精通。对于整个线上的知识我现在做下总结

,留给我以后各个击破。

嵌入式设备的用途非常的广阔。小到遥控器、游戏机,大到坦克、航天飞机都有着它的身

影,正是以为这个特点它深深的吸引了我。但是所有的技术万变不离其宗。核心技术只占
20%。最核心的飞机上的嵌入式和游戏机上的嵌入式产品只是功能上的一点点差异。核心硬
件差别不大。

按我的理解它的技术大致分三层。底层基于硬件的开发、软件平台的特性开发、应用场景

和市场的分析。

底层基于硬件的开发,需要电路知识,数电、模电、微机原理、单片机原理、汇编、

C 语言。

这部分学习的特点是技术相对稳定。硬件平台包含多个器件。但是在平台的搭建上,每个器
件厂家都会给出相关的建议方案。一般产品基于一个平台开发都是两年以上的开发。核心变
化不会太大。在初始设计的时候就要充分考虑几年内不会有大的变动。因为一旦开版投产成
本都相当高的。包含了电路设计和驱动开发两方面的工作。硬件的换代一般

3 到 5 年。有的甚

至更长时间。

软件平台的特性开发,对于简单逻辑的一般没有操作系统很简单时序的运算。常使用

8

位一下的硬件。扩展性比较低。一般通过汇编直接编写。对于越来越多的电子产品支持多种功
能的集成,使得软件平台越来越复杂。于是出现了操作系统来管理协调多个程序之间的调度
协调。让嵌入式平台在硬件不变的情况下提高了功能和性能。需要的知识,操作系统、

TCP/IP

协议、高级编程语言(

C/C++/JAVA/Dephie)、软件工程、数据结构、图像处理、数据库等。实际

在正规的大公司中只需要了解这里的两到三点就可以完全胜任平时的工作了。毕竟要研究透
所有的知识要花大量的时间。很多公司也只希望你把一部分工作做好就可以了。太强了留不
住人的。根据实际需求和岗位使用不同的技术。

应用场景和市场的分析,这部分是站在最前沿的。它引导着整个产业链的发展方向。对

于现有技术可以实现的应用场景,并不一定满足实际需求。这里需要的知识就很大程度基于
经验了。要了解用户的真正需求。了解市场的发展趋势。还要了解目前硬件技术到达什么程度,
是否可以满足需求。这里需要考验人的眼光。要在竞争对手之前看到商机。引导客户使用现有
技术。一般做这一部分工作的都是技术型企业的老总。要对行业的走向作出清晰的判断。这些
决定非常重要。

目前我之前做过的技术主要集中于软件层,语言上只是精通

C 语言因为它在嵌入式开

发有着天生的优势。能够看懂简单的汇编(大学一年单片机的结果)。硬件系统的架构和软
件系统的架构非常熟悉。目前的能力只有软件上的提高自己才是最现实的。是我的近期目标。

1. 嵌入式软件课程体系

自学嵌入式确实不大现实(当然也不是说没有这个可能),毕竟嵌入式难度也是比较