第1章 概述 1
1.1 计算技术延伸 1
1.1.1 从开尔文设想到现代计算技术出现 1
1.1.2 计算机技术的发展 2
1.1.3 通信与网络技术发展 4
1.2 理解嵌入式(计算)系统 6
1.2.1 计算装置的“可嵌入”发展过程 6
1.2.2 嵌入式(计算)系统的内涵 8
1.2.3 相关术语辨析 10
1.3 嵌入式系统的组成与特点 12
1.3.1 体系结构与组成 12
1.3.2 应用及技术特点 13
1.4 发展趋势 16
1.5 知识体系小结 18
习题 19
第2章 嵌入式硬件基础 20
2.1 硬件基础 20
2.1.1 器件术语 20
2.1.2 电路术语与符号 23
2.1.3 基本元件与逻辑 25
2.2 嵌入式系统硬件组成 30
2.2.1 硬件基本架构模型 30
2.2.2 核心逻辑与子系统 32
2.3 典型嵌入式系统硬件形式 38
2.3.1 基于通用计算机扩展的嵌入式硬件 38
2.3.2 基于领域标准模块集成的嵌入式硬件 39
2.3.3 针对具体应用设计的嵌入式硬件 41
2.4 硬件设计基本方法 42
2.4.1 Protel EDA软件 42
2.4.2 电路设计基本流程 45
2.4.3 电磁兼容性问题 47
2.4.4 低功耗问题 51
2.4.5 嵌入式硬件设计示例 52
2.5 小结 60
习题 61
第3章 嵌入式处理器 62
3.1 处理器模型与逻辑体系 62
3.1.1 处理器基本组成模型 62
3.1.2 处理器的基本逻辑体系 65
3.2 嵌入式处理器类型及特点 70
3.2.1 嵌入式微控制器 70
3.2.2 嵌入式微处理器 72
3.2.3 数字信号处理器 73
3.2.4 可编程逻辑器件 77
3.2.5 片上系统 84
3.2.6 多核、众核处理器 88
3.3 典型嵌入式处理器体系 95
3.3.1 ARM架构 95
3.3.2 MIPS架构 110
3.3.3 PowerPC架构 115
3.4 性能评价指标 124
3.5 小结 126
习题 126
第4章 嵌入式存储技术 127
4.1 基本存储体系与模型 127
4.1.1 嵌入式系统存储体系 127
4.1.2 存储器结构模型 128
4.1.3 存储器基本操作流程 129
4.1.4 存储器技术指标 130
4.2 存储器分类及特性 131
4.2.1 随机访问存储器 132
4.2.2 只读存储器 145
4.2.3 混合存储器 150
4.3 存储器测试与验证 165
4.3.1 可读写存储器的测试 166
4.3.2 只读存储器测试 167
4.4 小结 169
习题 169
第5章 最小系统外围电路设计 170
5.1 电源电路 170
5.1.1 电源电路设计方法 170
5.1.2 延伸:电源管理与低功耗设计 174
5.2 复位电路 179
5.2.1 上电复位 179
5.2.2 手动复位 184
5.2.3 看门狗复位 186
5.2.4 软件复位 187
5.3 时钟电路 191
5.3.1 信号源:振荡电路原理 191
5.3.2 多时钟管理 196
5.3.3 延伸:时钟管理与低功耗设计 201
5.4 电路抖动与消抖 202
5.4.1 抖动现象与危害 202
5.4.2 优化硬件消除抖动 203
5.4.3 软件消抖方式 205
5.5 小结 208
习题 208
第6章 接口、总线与网络扩展 209
6.1 通用I/O与串行总线 209
6.1.1 GPIO 209
6.1.2 SPI 213
6.1.3 SDIO 222
6.1.4 I2S/IIS 226
6.1.5 I2C/IIC 232
6.1.6 UART与USART 237
6.2 典型工业总线、背板总线及网络 249
6.2.1 CAN总线 249
6.2.2 实时工业以太网 259
6.2.3 VPX总线 264
6.3 无线接口与网络 274
6.3.1 ZigBee 274
6.3.2 蓝牙 280
6.3.3 Wi-Fi 292
6.3.4 NFC 295
6.4 小结 300
习题 300
第7章 嵌入式软件结构与基础软件 302
7.1 计算系统的启动与运行过程 302
7.1.1 通用计算机的引导和启动过程 302
7.1.2 嵌入式系统的引导与启动过程 303
7.2 嵌入式软件体系与结构 305
7.2.1 基于裸机的嵌入式软件 306
7.2.2 基于嵌入式操作系统的软件结构 307
7.3 基础软件组件 308
7.3.1 ROM Monitor 308
7.3.2 Boot Loader 313
7.3.3 BSP 320
7.3.4 虚拟机监控程序 332
7.4 小结 339
习题 339
第8章 嵌入式操作系统及其服务机制 341
8.1 架构与模型 341
8.1.1 微内核、超微内核架构 341
8.1.2 功能模型 343
8.2 服务机制与特性 346
8.2.1 基本概念 346
8.2.2 关于实时 357
8.2.3 内核服务机制 362
8.3 典型嵌入式操作系统 379
8.3.1 RTX51 379
8.3.2 μC/OS 380
8.3.3 嵌入式Linux系列 382
8.3.4 VxWorks 387
8.3.5 Windows嵌入式操作系统 389
8.3.6 其他嵌入式操作系统 396
8.4 小结 401
习题 402
第9章 嵌入式软件组件 403
9.1 嵌入式图形库与图形组件 403
9.1.1 μC/GUI与emWin 403
9.1.2 Nano-X Window 405
9.1.3 MiniGUI 407
9.1.4 QT 413
9.1.5 可编程图形界面硬件模块 418
9.2 嵌入式文件系统 419
9.2.1 JFFS/JFFS2 420
9.2.2 Yaffs/Yaffs2 422
9.2.3 UBIFS 425
9.2.4 只读文件系统 428
9.2.5 RAM文件系统 430
9.3 嵌入式数据库 432
9.3.1 SQLite 432
9.3.2 Berkeley DB 434
9.3.3 eXtremeDB 435
9.4 嵌入式网络协议栈 437
9.5 小结 438
习题 438
第10章 嵌入式应用软件设计方法 439
10.1 嵌入式软件典型结构 439
10.1.1 轮转结构 439
10.1.2 前后台软件结构 442
10.1.3 函数队列调度结构 444
10.1.4 基于嵌入式操作系统的软件结构 445
10.2 中断与数据共享问题 447
10.2.1 中断服务程序设计 447
10.2.2 消除数据共享问题 451
10.3 嵌入式软件设计机制 458
10.3.1 可重入代码设计 458
10.3.2 软件看门狗方法 462
10.3.3 避免频繁地创建、取消任务 465
10.3.4 基于状态机方法设计软件逻辑 466
10.3.5 FPGA IP核开发流程 466
10.3.6 生成可执行的嵌入式软件 469
10.4 软件工程方法 477
10.4.1 模型驱动的开发方法:从V模型到Y模型 477
10.4.2 软硬件协同设计 479
10.4.3 制定编码规范 480
10.5 小结 482
习题 482
第11章 调试、测试与仿真方法 483
11.1 嵌入式软件调试 483
11.1.1 基于宿主机的调试 484
11.1.2 ROM Monitor软件调试 486
11.1.3 ROM仿真器 487
11.1.4 ICE在线仿真器 488
11.1.5 JTAG调试 490
11.2 嵌入式软件测试 492
11.2.1 基本测试方法与指标 493
11.2.2 测试工具的使用 498
11.3 系统仿真验证技术 502
11.3.1 计算机仿真方法及其原理 503
11.3.2 可视化技术 505
11.4 小结 507
习题 507
参考文献 508
后记 513