[小知识] 目前嵌入式处理器常见的有 ARM、PowerPC、MIPS、Motorola 68K、ColdFire(冷火)
等,但
ARM 占据了绝对主流(资料说手机中几乎 100%都是 ARM 处理器)。ARM 是一个只卖
知识产权的公司,目前获得购买了
ARM CPU 核授权许可的大公司很多,包括
Intel、Samsung、Amstel、Motorola、Philip 等,他们都在 ARM CPU 核的基础上进行了一些
外围扩展,形成自己的处理器(如
Samsung S3C2410,Motorola i.MXL9328 等处理器都
是采用
ARM 9 内核,指令一级是相同的)。而众多中小公司又购买了这些处理器,设计了各种
各样的开发板,如华恒等国内很多著名嵌入式公司都生产基于
Samsung S3C2410 的开发板,
供最终用户使用或供教学实验。在
ARM 这个食物链上,ARM 公司是大鱼,Intel、Samsung 等
公司是小鱼,而华恒等则是虾米,最终用户(想我们要采购嵌入式开发板的实验室)则是喂虾
米的。
Intel 早期生产的是低端 ARM(Strong ARM,相当于 ARM 7),现在转向主要生产高端
ARM(即 Intel Xscale 处理器,相当于 ARM 10,主要用在高端 PDA 上,如 HP 和 DELL 生产的
PDA 都采用 Intel Xscale,价格较高)。目前应用最多的是 ARM 7 和 ARM 9
两类处理器。
ARM
7 较便宜,可跑 uclinux(是一个不支持高级内存管理功能的嵌入式 Linux 系统) 、
Vxworks 、uc/os II 等实时操作系统,但因处理器不带内存管理单元 MMU(无内存分页和地址
映射机制,所以不能使用虚拟内存),所以不能跑
Windows CE,另外通用 Linux 中的某些内
存管理功能也不能用在
ARM 7 上。ARM 9 是一个带 MMU 功能的高端处理器,可跑 WinCE 或
通用
Linux 的大多数功能。以上是我的一点了解,可能有不对的地方。我们学院正在建设的嵌入
式实验室(
10 月底到货)包括 30 套 ARM 7 系统(拟采用 Samsung S3C44b0x 开发板,主
要用于嵌入式处理器结构、嵌入式
linux 课程实验),10 套 ARM 9 系统(拟采用 Samsung
S3C2410x 开发板,主要用于 Windows CE 课程建设),每套实验板都配了高速仿真器,价
格都很贵(比我们招标的
DELL PC 还贵),很容易损坏,同学应爱护使用。
(2) 嵌入式操作系统类课程
除了
WinCE 的实时性稍差外,大多数嵌入式操作系统的实时性都很强,所以也可称为实时操作
系统
Real Time Operating System.从事嵌入式的人至少须掌握一个嵌入式操作系统(当然掌
握两个更好
),这在嵌入式的所有技术中是最为关键的了。目前最重要的 RTOS 主要包括:
第一类、传统的经典
RTOS:最主要的便是 Vxworks 操作系统,以及其 Tornado 开发平台 。
Vxworks 因出现稍早,实时性很强(据说可在 1ms 内响应外部事件请求),并且内核可极微
(据说最小可
8K),可靠性较高等,所以在北美,Vxworks 占据了嵌入式系统的多半疆山。特
别是在通信设备等实时性要求较高的系统中,几乎非
Vxworks 莫属。Vxworks 的很多概念和
技术都和
Linux 很类似,主要是 C 语言开发。像 Bell-alcatel、Lucent、华为等通信企业在开发
产品时,
Vxworks 用得很多。但 Vxworks 因价格很高,所以一些小公司或小产品中往往用不
起。目前很多公司都在往嵌入式
Linux 转(听说华为目前正在这样转)。但无论如何,Vxworks
在一段长时间内仍是不可动摇的。与
Vxworks 类似的稍有名的实时操作系统还有
pSOS、QNX、Nucleus 等 RTOS。
第二类、嵌入式
Linux 操作系统:Linux 的前途除作为服务器操作系统外,最成功的便是在嵌入
式领域的应用,原因当然是免费、开源、支持软件多、呼拥者众,这样嵌入式产品成本会低 。
Linux 本身不是一个为嵌入式设计的操作系统,不是微内核的,并且实时性不强。目前应用在嵌
入式领域的
Linux 系统主要有两类:一类是专为嵌入式设计的已被裁减过的 Linux 系统,最常
用的是
uClinux(不带 MMU 功能),目前占较大应用份额,可在 ARM7 上跑;另一类是跑在
ARM 9 上的,一般是将 Linux 2.4.18 内核移植在其上,可使用更多的 Linux 功能(当然
uClinux 更可跑在 ARM 9 上)。很多人预测,嵌入式 Linux 预计将占嵌入式操作系统的 50%
以上份额,非常重要。缺点是熟悉
Linux 的人太少,开发难度稍大。另外,目前我们能发现很多