嵌入式系统是软硬结合的东西,搞嵌入式开发的人有两类。
一类是学电子工程、通信工程等偏硬件专业出身的人,他们主要是搞硬件设计,有时要开发一些与硬件关系最密
切的最底层软件,如
BootLoader
、
Board Support Package(像 PC 的 BIOS 一样,往下驱动硬件,往上支
持操作系统
)
,最初级的硬件驱动程序等。他们的优势是对硬件原理非常清楚,不足是他们更擅长 定义各种硬件
接口,但对复杂软件系统往往力不从心
(例如嵌入式操作系统原理和复杂应用软件等)。
另一类是学软件、计算机专业出身的人,主要从事嵌入式操作系统和应用软件的开发。如果我们学软件的人对硬
件原理和接口有较好的掌握,我们完全也可写
BSP 和硬件驱动程序。嵌入式硬件设计完后,各种功能就全靠软件
来实现了,嵌入式设备的增值很大程度上取决于嵌入式软件,这占了嵌入式系统的最主要工作
(目前有很多公司
将硬件设计包给了专门的硬件公司,稍复杂的硬件都交给台湾或国外公司设计,国内的硬件设计力量很弱,很多
“
嵌入式公司自己只负责开发软件, 因为公司都知道,嵌入式产品的差异很大程度在软件上,在软件方面是最有 花
“
头 可做的
)
,所以我们搞软件的人完全不用担心我们在嵌入式市场上的用武之地, 越是智能设备越是复杂系统,
软件越起关键作用,而且这是目前的趋势。
从事嵌入式软件开发的好处是
:
(1) 目前国内外这方面的人都很稀缺。一方面,是因为这一领域入门门槛较高,不仅要懂较底层软件(例如
操作系统级、驱动程序级软件
)
,对软件专业水平要求较高
(嵌入式系统对软件设计的时间和空间效率要求较高),
而且必须懂得硬件的工作原理,所以非专业
IT
人员很难切入这一领域另一方面,是因为这一领域较新,目 前发
展太快,很多软硬件技术出现时间不长或正在出现
(如 ARM 处理器、嵌入式操作系统、MPEG 技术、无线通信协议
等
)
,掌握这些新技术的人当然很找。嵌 入式人才稀缺,身价自然就高,越有经验价格就越高。其实嵌入式人才
稀少根本原因可能是大多数人无条件接触这需要相应的嵌入式开发板和软件另外需要有经验的 人进行指导开发流
程。
(2) 与企业计算等应用软件不同,嵌入式领域人才的工作强度通常低一些(但收入不低)。搞企业应用软件的 IT
企业,这个用户的系统搞完了,又得去搞下一个用户 的,而且每个用户的需求和完成时间都得按客户要求改变,
往往疲于奔命,重复劳动。相比而言,搞嵌入式系统的公司,都有自己的产品计划,按自己的节奏行事。 所开发
的产品通常是通用的,不会因客户的不同而修改。一个产品型号开发完了,往往有较长一段空闲时间
(或只是对软
件进行一些小修补
)
,有时间进行充电和休 整。另外,从事嵌入式软件的每个人工作范围相对狭窄,所涉及的专
业技术范围就是那些
(ARM、RTOS、MPEG、802.11 等)
,时间长了这些东西会 越搞越有经验,卖卖老本,几句
指导也够让那些初入道者琢磨半年的。若搞应用软件,可能下一个客户要换成一个完全不同的软件开发平台,那
就苦了。
(3) 哪天若想创业,搞自已的产品,那么嵌入式是一个不错的主意,这可不像应用软件那样容易被盗版。土木学
“
院有一个叫启明星的公司开发出一个好象叫 工程
e”
的 掌上
PDA,施工技术人员用该 PDA 可当场进行土木概预算
和其它土木计算,据说销路特好。我认识的某大学老师,他开发的饭馆用的点菜
PDA(WinCE
平 台,可无线连网
和上网
),据他说销路不错,饭馆点点 PDA 让客户点菜,多显派头档次。当年有一组同学在学 Windows 程序设计
课程时用
VC
设计了一个功 能很强的点菜系统做为课程项目,当时真想建议他们将这个软件做成
PDA,估计会有
些销路
(上海火车站南广场的 Macdonald 便使用很漂亮的 PDA
给用 户点食品,像摸像样的
)。这些 PDA 的硬件设
计一般都是请其它公司给订做
(
“
”
这叫 贴牌
:OEM)
,都是通用的硬件,我们只管设计软件就变成自己的产品 了。
从事嵌入式软件开发的缺点是:
(1) 入门起点较高,所用到的技术往往都有一定难度,若软硬件基础不好,特别是操作系统级软件功底不深,
则可能不适于此行。
(2) 这方面的企业数量要远少于企业计算类企业。特别是从事嵌入式的小企业数量较多(小企业要搞自己的产品
创业
),知名大公司较少(搞嵌入式的大公司主要有
Intel、Motorola、TI、Philip、Samsung、Sony、Futjtum、Bell-Alcatel、意法半导体、
Microtek、研华、华为、中兴通信、上广电等制造类企业)。这些企业的习惯思维方式是到电子、通信等偏硬专
业找人。由于正规高校软件学院以前毕业生 以企业计算为主,所以正规高校软件学院与这些企业联系相对较少。
正规高校软件学院正积极努力,目前已与其中部分公司建立了联系,争取今后能有正规高校软件 学院同学到这些
企业中实习或就业。
(3) 有少数公司经常要硕士以上的人搞嵌入式,主要是基于嵌入式的难度。但大多数公司也并无此要求,只要有
经验即可。
正规高校软件学院同学若学习嵌入式,显然应偏重于嵌入式软件,特别是嵌入式操作系统方面,应是我们的强项。
对于搞嵌入式软件的人,最重要的技术显然是
(实际上很多公司的招聘广告上就是这样写的):
(1) 掌握主流嵌入式微处理器的结构与原理
(2) 必须掌握一个嵌入式操作系统
(3) 必须熟悉嵌入式软件开发流程并至少做过一个嵌入式软件项目。
正规高校软件学院在嵌入式软件方面最重要的课程包括
:
(1) 嵌入式微处理器结构与应用:这是一门嵌入式硬件基础课程,正规高校软件学院用这门课取代了传统的
“
”
微机原理与接口 课程
(目前国内已有少部分高校 IT
专业 这样做了,因为讲
x86 微机原理与接口很难找到实际用
处,只为教学而已
)。我们说过,嵌入式是软硬件结合的技术,搞嵌入式软件的人应对 ARM
处理器工作原 理和接
口技术有充分了解,包括
ARM 的汇编指令系统。
若不了解处理器原理,怎么能控制硬件工作,怎么能写出节省内存又运行高速的 最优代码
(嵌入式软件设计特别