目录 1
第1章 嵌入式系统概述 1
1.1 嵌入式系统的产生和发展 1
1.2 嵌入式系统的概念 3
1.2.1 嵌入式系统的定义 3
1.2.2 嵌入式系统的特点 3
1.2.3 嵌入式系统的组成结构 6
1.2.4 嵌入式系统的分类 7
1.3 嵌入式系统的应用领域 11
1.4 嵌入式系统的发展趋势 12
思考与练习题 14
第2章 嵌入式处理器 15
2.1 引言 15
2.2 嵌入式处理器概述 15
2.2.1 嵌入式处理器的分类 16
2.2.2 典型的嵌入式处理器 17
2.3 ARM处理器基础 20
2.3.1 ARM简介 20
2.3.2 ARM处理器系列 22
2.3.3 ARM处理器体系结构 28
2.3.4 ARM处理器应用选型 33
2.4 ARM指令系统 34
2.4.1 ARM编程模型 34
2.4.2 ARM寻址方式 44
2.4.3 ARM指令集 48
2.4.4 Thumb指令集 62
2.5 ARM程序设计基础 72
2.5.1 ARM汇编语句格式 73
2.5.2 ARM汇编程序格式 73
2.5.3 汇编语言编程实例 74
2.5.4 汇编语言与C语言的混合编程 76
思考与练习题 83
第3章 嵌入式硬件平台 86
3.1 引言 86
3.2 嵌入式硬件平台概述 86
3.3 总线 87
3.3.1 总线协议 88
3.3.2 DMA 90
3.3.3 总线配置 91
3.3.4 总线实例 92
3.4 存储设备 92
3.4.1 嵌入式系统存储器子系统的结构 92
3.4.2 RAM 94
3.4.3 ROM 96
3.4.4 Flash Memory 97
3.5 I/O设备 98
3.5.1 定时器/计数器 99
3.5.2 模/数转换器和数/模转换器 100
3.5.3 人机接口设备 100
3.6 通信设备 103
3.6.1 通用异步收发器 103
3.6.2 USB设备 106
3.6.3 Ethernet设备 112
3.7.2 时钟 113
3.7 其他 113
3.7.1 电源 113
3.7.3 复位 114
3.7.4 中断 116
思考与练习题 117
第4章 BootLoader与设备驱动 118
4.1 引言 118
4.2 BootLoader 119
4.2.1 BootLoadder概述 119
4.2.2 BootLoader的典型结构 120
4.2.3 实例分析 123
4.3 设备驱动 134
4.3.1 设备驱动概述 134
4.3.2 LCD驱动控制实例 138
思考与练习题 143
第5章 嵌入式操作系统 144
5.1 引言 144
5.2 嵌入式操作系统概述 145
5.2.1 嵌入式实时操作系统 145
5.2.2 典型的嵌入式操作系统 145
5.3.2 任务 149
5.3.1 多进程和多线程 149
5.3 操作系统的基本概念 149
5.3.3 任务切换 151
5.3.4 内核 151
5.3.5 任务调度 151
5.3.6 任务间的通信与同步 153
5.3.7 操作系统的结构和功能 156
5.4 μC/OS-Ⅱ简介 156
5.4.1 μC/OS-Ⅱ概述 156
5.4.2 μC/OS-Ⅱ的特点 157
5.4.3 μC/OS-Ⅱ的软件体系结构 158
5.5.1 临界段 159
5.5 μC/OS-Ⅱ内核结构 159
5.5.2 任务 160
5.5.3 任务控制块OS_TCB 161
5.5.4 任务调度 162
5.5.5 任务管理 162
5.5.6 中断服务 163
5.5.7 时钟节拍与时间管理 164
5.5.8 任务间同步与通信的管理 165
5.5.9 内存管理 168
5.5.10 μC/OS-Ⅱ的初始化 169
5.6.1 μC/OS-Ⅱ的移植条件 170
5.5.11 μC/OS-Ⅱ的启动 170
5.6 μC/OS-Ⅱ在ARM上的移植 170
5.6.2 μC/OS-Ⅱ的移植步骤 171
5.6.3 测试移植代码 176
5.7 基于μC/OS-Ⅱ构建的TCP/IP/PPP协议栈 176
5.7.1 嵌入式协议栈概述 176
5.7.2 选择协议栈 177
5.7.3 嵌入式TCP/IP协议栈 177
5.7.4 基于μC/OS-Ⅱ的TCP/IP/PPP协议栈 179
思考与练习题 181
6.2.1 设计范型 182
6.2 程序设计方法 182
第6章 嵌入式应用程序设计 182
6.1 引言 182
6.2.2 编程模型 185
6.3 程序设计技术 186
6.3.1 消息 186
6.3.2 任务和任务间同步 187
6.3.3 绘图函数 188
6.3.4 控件 189
6.4 嵌入式程序优化 190
6.4.1 编译过程 190
6.4.2 执行时间优化 194
6.4.3 能量优化 198
6.4.4 长度优化 199
思考与练习题 201
第7章 基于网络的嵌入式系统设计 202
7.1 引言 202
7.2 分布式嵌入式系统 202
7.2.1 系统概述 202
7.2.2 OSI模型 203
7.2.3 网络结构 204
7.2.4 网络编程 204
7.2.5 设计技术 206
7.3 嵌入式系统网络 208
7.3.1 I2C总线 208
7.3.2 CAN总线 211
7.3.3 Ethernet 214
7.3.4 GPRS 215
7.3.5 蓝牙技术 218
7.3.6 Internet 221
7.4 基于网络的设计示例 223
7.4.1 远程温度检测系统 223
7.4.2 基于VoIP和蓝牙的无线电话系统 226
7.4.3 机顶盒 229
思考与练习题 231
第8章 嵌入式系统开发 233
8.1 引言 233
8.2 嵌入式系统的开发工具 233
8.2.1 开发工具概述 233
8.2.2 ADS简介 234
8.2.3 使用ADS创建工程 238
8.2.4 使用AXD调试代码 245
8.3.1 嵌入式系统调试简介 248
8.3.2 ARM调试系统概述 248
8.3 嵌入式系统的调试方法 248
8.3.3 基于Angel的调试系统 250
8.3.4 基于JTAG的调试系统 254
8.4 其他实用工具 256
8.4.1 Source Insight 256
8.4.2 SkyEye 257
思考与练习题 260
第9章 系统设计技术 261
9.1 引言 261
9.2 设计流程 261
9.2.1 嵌入式系统的开发过程 261
9.2.2 设计流程 265
9.3 系统设计的形式化方法 268
9.3.1 UML简介 268
9.3.2 结构描述 271
9.3.3 行为描述 276
9.4 需求分析与规格说明 278
9.4.1 需求分析 278
9.4.2 规格说明 278
9.5 系统分析与体系结构设计 281
9.6 质量保证 282
思考与练习题 284
参考文献 285