《CORTEX-M3+UCOS-II 嵌入式系统开发入门与应用》
作者:华清远见
第 1 章 走进 ARM 微处理器
本章简介
第一片 ARM 处理器的开发距今已近 20 年了,在这 20 年中它已经发展成为世
界领先的 32 位嵌入式处理器核。第一片 ARM 核是由 Acorn Computers Limited 公
司在 1983~1985 年开发的。这是一个总部设在剑桥的小型英国公司,当时大约有
400 名职工,处理器是使用很简单的设计工具设计的。行为模型是以 BASIC 写的
寄存器传输级描述,而且需用手工转换成逻辑图。
专业始于专注 卓识源于远见
‐ 2 ‐
ARM 公司本身不生产芯片,靠转让设计许可由合作伙伴公司来生产各具特色的芯片。ARM 商业模式的强
大之处在于其价格合理,在全世界范围的合作伙伴超过 100 个,其中包括许多半导体的著名公司。ARM 公
司专注于设计,其内核耗电少、成本低、功能强,特有 16/32 位双指令集。ARM 已成为移动通信、手持计
算和多媒体数字消费等嵌入式解决方案的 RISC 实际标准。
1.1 ARM 体系结构的源头
—
ARM 公司
1990 年 11 月,ARM 成立于英国,原名 Advanced RISC Machine 有限公司,是苹果电脑、Acorn 电脑集团
和 VLSI Technology 的合资企业。Acorn 曾推出世界首个商用单芯片 RISC 处理器,而苹果电脑当时希望将
RISC 技术应用于自身系统,ARM 的微处理器新标准因此应运而生。ARM 成功地研制了首个低成本 RISC
架构,迅速在市场上崭露头角。与此同时 RISC 结构的竞争对手都着眼于提高性能,发展高端工作站处理
器的 RISC 结构。
1991 年 ARM 推出首颗嵌入式 RISC 核心
—
ARM6™系列处理器,不久 VLSI 率先获得授权,一年后夏普
和 GEC Plessey 也成为授权用户。1993 年德州仪器和 Cirrus Logic 亦签署了授权协议,从此 ARM 的知识产
权产品和授权用户都急剧扩大。1993 年 Nippon Investment and Finance (NIF)成为 ARM 股东后,ARM
开始向全球拓展,分别在亚洲和欧洲等设立了办事处。1998 年 4 月 ARM 在伦敦证券交易所和纳斯达克交
易所上市。
现如今的 ARM 公司,已发展成为一家全球性大公司,在 3 大洲 8 个国家设有分支机构,ARM 中国-安谋
咨询上海有限公司也在 2002 年 7 月在中国上海成立。
1.2 ARM 处理器的发展历程
ARM 处理器当前有 7 个产品系列:ARM7、ARM9、ARM9E、ARM10E、ARM11、SecurCore 和 Cortex
系列。其中 Cortex 系列为最近推出的产品,Cortex A8 的性能已达到 2000MIPS。进一步产品来自于合作伙
伴,例如 Intel Xscale 微体系结构和 StrongARM 产品。
根据适用的领域不同,ARM 处理器分为 3 类。
嵌入式实时系统应用处理器:主要应用于对实时性要求较高的系统,如网络存储、自动化控制、工业
监控等领域。
应用系统平台处理器:该系列处理器常和操作系统相结合,应用于消费电子、音视频处理等对计算性
能要求较高的领域。
安全应用系列处理器:该系列处理器主要应用于智能卡、SIM 卡、缴费终端等领域。SecurCore 系列是
专门为安全设备而设计的。
表 1.1 所示为各系列所包含的不同处理器及各处理器的特点。
表 1.1 各系列所包含的不同处理器及其特点
Cache 大小
是否存在紧耦
合内存
内存管理 总线类型
是否支持
Thumb
是否支持
DSP
是否支持
Jazelle
应用系列处理器
Cortex-A8
可配
-
MMU + TrustZ
one
AMBA 3 AXI
是 是 是
Cortex-A9
(MPCore)
16KB/64KB
MMU + TrustZ
one
AMBA 3 AXI
是 是 是
Cortex-A9
(单核)
16KB/64KB
MMU + TrustZ
one
AMBA 3 AXI
是 是 是
ARM11
MPCore
可配
-
MMU + cache
coherency
1 × 或 2 ×
AMBA AXI
是 是 是
专业始于专注 卓识源于远见
‐ 3 ‐
ARM1136J
(F)S
可配 是
MMU 5 × AHB
是 是 是
ARM1136JZ
(F)S
可配 是
MMU + TrustZ
one
4 × AHB
是 是 是
ARM720T
否 否 否
续表
Cache 大小
是否存在紧耦
合内存
内存管理 总线类型
是否支持
Thumb
是否支
持 DSP
是否支持
Jazelle
ARM920T 16KB/16KB - MMU AHB
是 否 否
ARM922T 8KB/8KB - MMU AHB
是 否 否
ARM926EJ-S
可配 是
MMU 2 × AHB
是 是 是
嵌入式处理器
Cortex-M0
是 否 否
Cortex-M1
是
AMBA AHB
Lite + APB
是 否 否
Cortex-M3 - - MPU
3 × AHB
Lite + APB
是 否 否
Cortex R4
0KB~64KB 可配
MPU AMBA 3 AXI
是 是 否
ARM1156T2(F)
-S
可配 是
MPU 3 × AXI
是 是 否
ARM7EJ-S - - -
是 是 是 是
ARM7TDMI - - -
是 是 否 否
ARM7TDMI-S - - -
是 是 否 否
ARM946E-S
可配 是
MPU AHB
是 是 否
ARM966E-S -
是
- AHB
是 是 否
ARM968E-S n/a
是
DMA AHB-Lite
是 是 否
安全系列处理器
SC300 MPU
是 否 否
SC100 MPU
是 否 否
SC200 MPU
是 是 是
1.3 ARM 体系结构
ARM 体系结构的发展经历了下面几个关键时期。
ARMv4:目前 ARM 支持的最老版本的体系结构,它只支持 32 位的 ARM 指令,在这之前的体系结构
已经被 ARM 公司废除。这一体系结构的处理器包括 ARM
TM
和 Intel 的 StrongARM。
ARMv4T:ARMv4T 结构增加了 Thumb 指令支持,它继承了 ARMv4 结构的所有优点,并且可以产生
密度更高的 Thumb 代码。
ARMv5TE:1999 年,ARM 发布了带有 DSP 指令的 ARMv5TE 架构。该结构不但在原有架构上增加了
新的 Thumb 指令,并且在 ARM 架构中引入了 DSP 处理,增加了 ARM 在多媒体市场的竞争力。
ARMv5TEJ:2000 年,ARM 发布的 ARMv5TEJ 架构引入了具有 Java 处理能力的 Jazelle 技术,摆脱了
ARM 对软 Java 虚拟机的依赖,为 ARM 进军手持移动设备奠定了基础。
专业始于专注 卓识源于远见
‐ 4 ‐
ARMv6:ARMv6 体系结构正式发布于 2001 年,该架构不但支持单指令多数据处理(SIMD,Single
Instruction Multiple Data)指令,而且还引入了 Thumb-2 和 TrustZone 技术。该架构第一款成熟处理器为
ARM1136J(F)-S, 2002 年正式上市,随后 ARM 公司于 2003 年相继发布了 ARM1156T2(F)-S 和
ARM1176JZ(F)-S 处理器。
ARMv7:ARMv7 处理器以全新的 Cortex 命名问世,并且根据应用的领域不同,分为 3 个独立方向同
时发展
—
支持虚拟内存管理的 A 系列,具有更高实时性的 R 系列和针对微控制领域和低端应用的 M 系
列。
图 1.1 所示为 ARM 体系结构的发展过程。
图 1.1 ARM 体系结构的发展过程
1.3.1 ARM Cortex 处理器技术特点
ARM Cortex 系列处理器采用全新的 ARM v7 架构,共分为 Cortex-M、Cortex-R 和 Cortex-A3 类。
ARM v7 架构是在 ARM v6 架构的基础上衍生而来的。该架构采用了 32-bit 指令和 16-bit 指令相混合的
Thumb-2 技术,该技术是在 ARM 的 Thumb 代码压缩技术的基础上发展起来的,并且保证了对现存 ARM
解决方案的完全兼容。Thumb-2 技术比纯 32 位代码少使用 31%的内存,减小了系统开销。同时能够提供
比已有的基于 Thumb 技术的解决方案高出 38%的性能。
ARM v7 架构还采用了 NEON 技术,将 DSP 和媒体处理能力提高了近 4 倍,并支持改良的浮点运算,满足
下一代 3D 图形、游戏物理应用以及传统嵌入式控制应用的需求。
此外,ARM v7 架构还支持改良的运行环境,以迎合不断增加的 JIT(Just In Time 实时生产)和 DAC(Dynamic
Adaptive Compilation,动态自适应编译)技术的使用。
同时,ARM v7 架构在设计时充分考虑到了与早期的 ARM 处理器的软件兼容性。ARM Cortex-M 系列支持
的 Thumb-2 指令集(Thumb 指令集的扩展集),完全兼容为 ARMv7 体系结构之前的处理器编写的代码。
ARM Cortex-M 系列处理器通过一个前向的转换方式与 ARM Cortex-R 系列微处理器完全兼容。ARM
Cortex-M 系列系统代码(如实时操作系统)可以很容易地移植到基于 ARM Cortex-R 系列的系统上。ARM
Cortex-A 和 Cortex-R 系列处理器还支持 ARM 32 位指令集,向后完全兼容早期的 ARM 处理器,包括从
1995
年发布的 ARM7TDMI 处理器到 2002 年发布的 ARMll 处理器系列。
1.3.2 ARM Cortex 系列处理器比较
专业始于专注 卓识源于远见
‐ 5 ‐
1.ARMCortexM 处理器技术特点
ARM Cortex-M3 处理器是为存储器和处理器的尺寸对产品成本影响极大的各种应用专门开发设计的,其
结构如图 1.2 所示。它整合了多种技术,减少使用内存,并在极小的 RISC 内核上提供低功耗和高性能。
ARM Cortex-M3 处理器是使用门数最少的 ARM CPU,相对于过去的设计大大减小了芯片面积,可减小
装置的体积或采用更低成本的工艺进行生产。仅 33 000 门的内核,其性能可达 l.2DMIPS/MHz。此外,
基本系统外设还具备高度集成化的特点,集成了许多紧耦合系统外设,合理利用了芯片空间,使系统满
足了下一代产品的控制需求。
ARM Cortex-M3 处理器不仅使用了先进的哈佛微架构,执行 32 位的 Thumb-2 指令集,同时包含高效的系
统外设
—
Nested Vectored Interrupt Controller(NVIC)和 Arbiter 总线。Cortex-M3 处理器的技术方案在测
试和实例应用中表现出较高的性能:在台机电 180nm 工艺下,芯片性能达 1.2 DMIPS/MHz,时钟频率高
达 l00MHz。Cortex-M3 处理器还实现了 Tail- Chaining 中断技术。该技术是一项完全基于硬件的中断处理
技术,最多可减少 12 个时钟周期数,在实际应用中可减少 70%的中断处理时间。同时,该架构还推出了
新的单线调试技术,避免使用多引脚进行 JTAG 调试,并全面支持 RealView 编译器和 RealView 调试产品。
先进的 Realview 工具向设计者提供模拟、创建虚拟模型、编译软件、调试、验证和测试等基于 ARM v7
架构的系统功能。
图 1.2 ARM Cortex-M3 处理器结构
综上所述,为微控制器应用而开发的 Cortex-M3 系列处理器与其他 ARM 处理器相比具有以下特点。
实现单周期 Flash 应用最优化。
准确快速的中断处理。中断处理不超过 12 周期,使用末尾连锁(Tail-chaining)机制仅用 6 个周期。
拥有低功耗时钟门控(Clock Gating)的 3 种睡眠模式。
具有单周期乘法和乘法累加指令。
Thumb-2 混合的 16/32 位固有指令集,无模式切换。
包括数据观察点和 Flash 补丁在内的高级调式功能。
可以使用原子位操作。在一个单一指令中读取/修改/编写数据某一 bit。
1.25DMIPS/MHz 的处理速度(ARM7 为 0.9DMIPS/MHz,而 ARM9 为 1.1DMIPS/MHz),使其在低功耗
的处理器市场上占有一席之地。