第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
思考与练习题 15
第2章 嵌入式处理器 16
2.1 引言 16
2.2 嵌入式处理器概述 16
2.2.1 嵌入式处理器的分类 16
2.2.2 典型的嵌入式处理器 18
2.3 ARM处理器基础 22
2.3.1 ARM简介 22
2.3.2 ARM处理器系列 23
2.3.3 ARM处理器体系结构 30
2.3.4 ARM处理器应用选型 36
2.4 ARM指令系统 37
2.4.1 ARM编程模型 37
2.4.2 ARM寻址方式 46
2.4.3 ARM指令集 50
2.4.4 Thumb指令集 64
2.5 ARM程序设计基础 74
2.5.1 ARM汇编语句格式 75
2.5.2 ARM汇编程序格式 75
2.5.3 汇编语言编程实例 76
2.5.4 汇编语言与C语言的混合编程 78
思考与练习题 85
第3章 嵌入式硬件平台 88
3.1 引言 88
3.2 嵌入式硬件平台概述 88
3.3 总线 89
3.3.1 总线协议 90
3.3.2 DMA 92
3.3.3 总线配置 93
3.3.4 总线实例 94
3.4 存储设备 94
3.4.1 嵌入式系统存储器子系统的结构 94
3.4.2 RAM 96
3.4.3 ROM 98
3.4.4 Flash Memory 99
3.4.5 SD/TF存储卡 100
3.5 I/O设备 102
3.5.1 定时器/计数器 102
3.5.2 模/数转换器和数/模转换器 103
3.5.3 人机接口设备 103
3.6 通信设备 108
3.6.1 通用异步收发器 108
3.6.2 USB设备 111
3.6.3 Ethernet设备 116
3.6.4 Wi-Fi 117
3.7 其他 118
3.7.1 电源 118
3.7.2 时钟 118
3.7.3 复位 119
3.7.4 中断 121
思考与练习题 122
第4章 BootLoader与设备驱动 123
4.1 引言 123
4.2 BootLoader 124
4.2.1 BootLoader概述 124
4.2.2 BootLoader的典型结构 125
4.2.3 实例分析 128
4.3 设备驱动 139
4.3.1 设备驱动概述 139
4.3.2 LCD驱动控制实例 143
4.3.3 A/D转换功能驱动实例 148
4.3.4 IIS音频接口驱动实例 151
思考与练习题 157
第5章 嵌入式操作系统 158
5.1 引言 158
5.2 嵌入式操作系统概述 159
5.2.1 嵌入式实时操作系统 159
5.2.2 典型的嵌入式操作系统 160
5.3 操作系统的基本概念 164
5.3.1 多进程和多线程 164
5.3.2 任务 164
5.3.3 任务切换 166
5.3.4 内核 166
5.3.5 任务调度 166
5.3.6 任务间的通信与同步 168
5.3.7 操作系统的结构和功能 171
5.4 μC/OS-Ⅱ简介 171
5.4.1 μC/OS-Ⅱ概述 171
5.4.2 μC/OS-Ⅱ的特点 172
5.4.3 μC/OSⅡ的软件体系结构 173
5.5 μC/OS-Ⅱ内核结构 174
5.5.1 临界段 174
5.5.2 任务 175
5.5.3 任务控制块OS_TCB 176
5.5.4 任务调度 177
5.5.5 任务管理 177
5.5.6 中断服务 178
5.5.7 时钟节拍与时间管理 179
5.5.8 任务间同步与通信的管理 180
5.5.9 内存管理 183
5.5.10 μC/OS-Ⅱ的初始化 184
5.5.11 μC/OS-Ⅱ的启动 185
5.6 μC/OS-Ⅱ在ARM上的移植 185
5.6.1 μC/OS-Ⅱ的移植条件 185
5.6.2 μC/OS-Ⅱ的移植步骤 186
5.6.3 测试移植代码 191
5.7 基于μC/OS-Ⅱ构建的TCP/IP/PPP协议栈 191
5.7.1 嵌入式协议栈概述 191
5.7.2 选择协议栈 192
5.7.3 嵌入式TCP/IP协议栈 192
5.7.4 基于μC/OS-Ⅱ的TCP/IP/PPP协议栈 194
思考与练习题 196
第6章 嵌入式应用程序设计 197
6.1 引言 197
6.2 程序设计方法与技术 197
6.2.1 程序设计方法 197
6.2.2 程序设计技术 201
6.2.3 嵌入式程序优化 205
6.3 基于网络的嵌入式系统设计 215
6.3.1 分布式嵌入式系统 215
6.3.2 嵌入式系统网络 221
6.3.3 基于网络的设计示例 235
6.4 基于ARM11+FPGA的图像采集处理系统设计 243
6.4.1 系统总体结构 244
6.4.2 多路视频信号的采集、缓存和时序同步 244
6.4.3 视频信号的压缩编码 246
6.4.4 结论 246
思考与练习题 247
第7章 系统设计技术 248
7.1 引言 248
7.2 设计流程 248
7.2.1 开发过程 248
7.2.2 设计流程 252
7.3 需求分析与规格说明 255
7.3.1 需求分析 255
7.3.2 规格说明 255
7.4 系统分析与体系结构设计 258
思考与练习题 259
第8章 嵌入式系统开发调试方法 260
8.1 引言 260
8.2 嵌入式系统硬件开发基础及流程 260
8.2.1 电子元器件的封装 260
8.2.2 PCB基础知识 262
8.2.3 硬件设计调试中常用工具 266
8.3 嵌入式系统交互式开发调试工具 267
8.3.1 嵌入式系统集成开发环境 267
8.3.2 交互式开发调试方法 282
8.4 其他实用工具 290
8.4.1 Source Insight 290
8.4.2 SkyEye 291
思考与练习题 294
附录A 嵌入式专业词汇与缩略语 295
附录B ARM指令集列表 304
附录C Thumb指令集列表 306
附录D 汇编预定义变量及伪指令 309
附录E μC/OS-Ⅱ内核函数 314
参考文献 324