第1章 嵌入式系统概述 1
1.1 嵌入式系统的基本概念 1
1.1.1 嵌入式系统的定义 1
1.1.2 嵌入式系统的发展史 2
1.1.3 嵌入式系统的特点 4
1.2 嵌入式系统的分类 6
1.3 嵌入式处理器 7
1.4 嵌入式系统的组成 10
1.5 评估嵌入式系统处理器的主要指标 14
1.6 嵌入式系统的应用 15
1.7 嵌入式系统的发展趋势 16
思考题 18
第2章 ARM微处理器硬件结构 19
2.1 计算机体系结构分类 19
2.2 ARM的版本及系列 20
2.2.1 ARM体系结构版本 20
2.2.2 ARM处理器系列 22
2.3 ARM微处理器结构 25
2.3.1 ARM和Thumb状态 25
2.3.2 ARM微处理器采用的相关技术 25
2.3.3 ARM7和ARM9硬件结构 31
2.4 存储系统机制 39
2.4.1 ARM存储系统 40
2.4.2 ARM的高速缓冲存储器(Cache) 42
2.4.3 ARM的存储管理单元(MMU) 45
2.4.4 存储器映射的输入/输出 54
思考题 54
第3章 ARM寻址方式与指令系统 56
3.1 ARM编程模型 56
3.1.1 处理器模式 56
3.1.2 处理器工作状态 57
3.1.3 寄存器组织 57
3.1.4 异常中断 59
3.2 ARM指令格式及其寻址方式 62
3.2.1 ARM指令的一般格式 62
3.2.2 条件域〈cond〉 63
3.2.3 寻址方式 64
3.3 ARM指令集 68
3.3.1 数据处理指令 68
3.3.2 跳转指令 75
3.3.3 Load/Store指令 76
3.3.4 程序状态寄存器指令 84
3.3.5 协处理器指令 85
3.3.6 异常中断指令 86
3.4 Thumb指令集 88
3.4.1 数据处理指令 88
3.4.2 跳转指令 89
3.4.3 Load/Store指令 90
3.4.4 软件中断指令 91
3.5 汇编语言源程序格式 91
3.5.1 汇编语言程序的结构 91
3.5.2 汇编语言的行构成 93
3.5.3 伪操作 96
3.6 汇编语言上机过程 109
3.6.1 编辑汇编语言源程序 111
3.6.2 编译汇编语言源程序 112
3.6.3 连接装配汇编程序 114
3.6.4 汇编程序的运行 117
3.6.5 汇编程序的调试 118
思考题 120
第4章 嵌入式操作系统 122
4.1 嵌入式操作系统概述 122
4.1.1 操作系统的发展 123
4.1.2 嵌入式操作系统的特点 123
4.1.3 嵌入式操作系统与通用操作系统的区别 124
4.2 嵌入式操作系统的相关概念 125
4.2.1 代码临界段 125
4.2.2 资源与共享资源 126
4.2.3 互斥(Mutex) 126
4.2.4 任务与任务切换 126
4.2.5 内核 126
4.2.6 调度 127
4.2.7 堆和栈 127
4.3 常见的嵌入式操作系统 128
4.3.1 Palm OS 128
4.3.2 Windows CE 129
4.3.3 VxWorks 130
4.3.4 μC/OS-II 131
4.3.5 Linux 131
4.4 嵌入式实时操作系统 132
4.4.1 实时操作系统的必要性 132
4.4.2 实时操作系统与通用操作系统的区别 133
4.4.3 嵌入式实时操作系统 135
4.4.4 何时需要RTOS 136
4.5 嵌入式Linux操作系统 136
4.5.1 认识Linux操作系统 136
4.5.2 嵌入式Linux的优势 138
4.5.3 嵌入式Linux的实时性 138
4.5.4 嵌入式Linux的发展方向 139
4.5.5 嵌入式文件系统简介 140
第5章 ARM接口设计技术 143
5.1 键盘接口 143
5.1.1 键盘概述 143
5.1.2 用ARM芯片实现键盘接口 144
5.1.3 行扫描法获取键值的程序 145
5.2 LED显示器接口 148
5.2.1 概述 148
5.2.2 用ARM芯片S3C44B0X实现LED显示接口 150
5.3 LCD显示器接口 153
5.3.1 概述 153
5.3.2 S3C44B0X的内部LCD控制器 154
5.3.3 LCD应用实例 162
5.4 触摸屏 163
5.4.1 触摸屏的工作原理 163
5.4.2 触摸屏的驱动芯片ADS7843 164
5.4.3 触摸屏的接口 166
5.5 通信接口 168
5.5.1 UART异步串行接口 168
5.5.2 USB接口 181
5.5.3 以太网接口 185
5.5.4 IIC接口 196
5.5.5 CAN总线接口 198
5.6 中断接口 201
5.6.1 概述 201
5.6.2 控制中断的寄存器 204
5.6.3 外部中断的应用 210
5.7 A/D和D/A转换 212
5.7.1 A/D(模/数)转换器 212
5.7.2 D/A(数/模)转换器 219
5.8 ARM的JTAG接口 221
5.8.1 JTAG的基本知识 221
5.8.2 ARM的JTAG调试结构 222
5.8.3 ARM7TDMI内核的JTAG扫描链结构 223
5.8.4 ARM7TDMI中通过JTAG对外设的访问 224
思考题 225
第6章 嵌入式系统设计技术 226
6.1 嵌入式系统设计的特点 226
6.2 嵌入式系统的组成 228
6.3 嵌入式系统的设计流程 231
6.3.1 需求分析阶段 232
6.3.2 规格说明阶段 233
6.3.3 体系结构设计 234
6.3.4 设计硬件构件和软件构件 238
6.3.5 系统集成和测试 238
6.4 设计示例:车载GPS终端系统的设计 238
6.4.1 统一建模语言UML及其特点和组成 240
6.4.2 UML在车载GPS终端设计中的应用 248
思考题 252
第7章 嵌入式实验平台 253
7.1 Samsung S3C44B0X微处理器 253
7.1.1 Samsung S3C44B0X简介 253
7.1.2 Samsung S3C44B0X特性 254
7.1.3 Samsung S3C44B0X引脚分布及引脚定义 257
7.1.4 基于Samsung S3C44B0X的嵌入式结构 260
7.2 UP-NETARM3000嵌入式平台 261
7.2.1 系统组成 261
7.2.2 硬件资源 262
7.2.3 系统安装 263
7.3 基于UP-NETARM3000平台的实验实例 265
7.3.1 开发环境与基础编程 265
7.3.2 键盘与LED驱动实验 268
7.3.3 电机控制实验 270
7.3.4 LCD实验 272
附录A S3C44B0X端口引脚定义 274
参考文献 278