background image

      (3) 哪天若想创业,搞自已的产品,那么嵌入式是一个不错的主意,这可不像应用软
件那样容易被盗版。有一个叫启明星的公司开发出一个叫

“工程 e”的掌上 PDA,施工技术人

员用该

PDA 可当场进行土木概预算和其它土木计算,销路特好;某大学老师,他开发的饭

馆用的点菜

PDA(WinCE 平台,可无线连网和上网),销路也不错,饭馆点点 PDA 让客

户点菜,多显派头档次。这些

PDA 的硬件设计一般都是请其它公司给订做(这叫“贴牌”:

OEM),都是通用的硬件,我们只管设计软件就变成自己的产品了。

        从事嵌入式软件开发的缺点是:
       (1)入门起点较高,所用到的技术往往都有一定难度,若软硬件基础不好,特别是操
作系统级软件功底不深,则可能不适于此行。
       (2) 这方面的企业数量要远少于企业计算类企业。特别是从事嵌入式的小企业数量较
多 ( 小 企 业 要 搞 自 己 的 产 品 创 业 ) , 知 名 大 公 司 较 少 ( 搞 嵌 入 式 的 大 公 司 主 要 有
Intel、Motorola、TI、Philip、Samsung、Sony、Futjtum、Bell-Alcatel、意法半导体、Microtek、研华、
华为、中兴通信、上广电等制造类企业)。这些企业的习惯思维方式是到电子、通信等偏硬专
业找人。
       (3)有少数公司经常要硕士以上的人搞嵌入式,主要是基于嵌入式的难度。但大多数
公司也并无此要求,只要有经验即可。

        若学习嵌入式,显然应偏重于嵌入式软件,特别是嵌入式操作系统方面。对于搞嵌入式
软件的人,最重要的技术显然是(实际上很多公司的招聘广告上就是这样写的):
      (1) 掌握主流嵌入式微处理器的结构与原理。
      (2) 必须掌握一个嵌入式操作系统 。
      (3) 必须熟悉嵌入式软件开发流程并至少做过一个嵌入式软件项目。

    嵌入式软件方面最重要的课程包括:
      (1) 嵌入式微处理器结构与应用:
        这是一门嵌入式硬件基础课程,目前国内已有少部分高校 IT 专业用这门课取代了传统

“微机原理与接口”课程,因为讲 x86 微机原理与接口很难找到实际用处,只为教学而已。

我们说过,嵌入式是软硬件结合的技术,搞嵌入式软件的人应对

ARM 处理器工作原理和

接口技术有充分了解,包括

ARM 的 汇编指令系统。若不了解处理器原理,怎么能控制硬件

工作,怎么能写出节省内存又运行高速的最优代码(嵌入式软件设计特别讲究时空效率)
怎么能写出驱动程序(驱动程序都是与硬件打交道的)?有些同学觉得嵌入式处理器课程
较枯燥,这主要是硬件课程都较抽象的原因,还有同学对

ARM 汇编不感兴趣,以为嵌入

式开发用

C 语言就足够了,其实不应仅是将汇编语言当成一个程序设计语言,学汇编主要

是为了掌握处理器工作原理的。一个不熟悉汇编语言的人,怎么能在该处理器写出最优的

C

语言代码。在嵌入式开发的一些关键部分,有时还必须写汇编,如

Bootloader 等(可能还包

BSP)。特别是在对速度有极高要求的场合(如 DSP 处 理器的高速图像采集和图像解压

缩),目前主要还要用汇编写程序。当您在一个嵌入式公司工作时,在查看描述原理的手册
时,可能很多都是用汇编描述的,这是因为很多硬件设计人员只会写或者喜欢用汇编描述
此时您就必须看懂汇编程序,否则软硬件人员可能就无法交流。另外,很多嵌入式职位招聘
时都要求熟悉汇编。
      (2) 嵌入式操作系统类课程:
        除了 WinCE 的实时性稍差外,大多数嵌入式操作系统的实时性都很强,所以也可称为
实时操作系统(

RTOS: Real Time Operating System)。从事嵌入式的人至少须掌握一个嵌入