目 录 
第 1 章 计算机系统基础知识 · 1 
1.1 嵌入式计算机系统概述 · 1. 
1.2 数据表示  4. 
1.2.1 进位计数制及转换  4. 
1.2.2 数值型数据的表示  6. 
1.2.3 其他数据的表示  10. 
1.2.4 校验码 · 13. 
1.3 算术运算和逻辑运算 · 17. 
1.3.1 算术运算 · 17. 
1.3.2 逻辑运算 · 20. 
1.4 计算机硬件组成及主要部件 
功能  22. 
1.4.1 中央处理单元 22. 
1.4.2 存储器 · 25. 
1.4.3 总线 · 35. 
1.4.4 输入/输出控制  38. 
1.5 计算机体系结构· 42. 
1.6 可靠性与系统性能评测基础 
知识  49. 
1.6.1 计算机可靠性 49. 
1.6.2 计算机系统的性能评价  52. 
第 2 章 嵌入式系统硬件基础知识  56 
2.1 数字电路基础  56 
2.1.1 信号特征 · 56. 
2.1.2 组合逻辑电路和时序逻辑 
电路 · 56. 
2.1.3 信号转换 · 60. 
2.1.4 可编程逻辑器件  62. 
2.2 嵌入式微处理器基础 · 63 
2.2.1 嵌入式微处理器的结构和 
类型 · 65. 
2.2.2 嵌入式微处理器的异常与 
中断 · 71. 
2.3 嵌入式系统的存储体系 · 74. 
2.3.1 存储系统的层次结构  74. 
2.3.2 内存管理单元  74. 
2.3.3 RAM 和 ROM 的种类与 
选型 · 75. 
2.3.4 高速缓存(Cache)  78. 
2.3.5 其他存储设备  80. 
2.4 嵌入式系统 I/O  83. 
2.4.1 通用输入/输出接口 · 83. 
2.4.2 模数/数模接口 · 84. 
2.4.3 键盘、显示、触摸屏等 
接口基本原理与结构  85. 
2.4.4 嵌入式系统音频、视频 
接口 · 87. 
2.4.5 输入/输出控制 · 89. 
2.5 定时器和计数器 · 89. 
2.5.1 硬件定时器 · 89. 
2.5.2 软件定时器 · 90. 
2.5.3 可编程间隔定时器  90. 
2.6 嵌入式系统总线及通信接口 · 91. 
2.6.1 PCI、PCI-E 等接口基本 
原理与结构 · 91. 
2.6.2 USB、串口等基本原理与 
结构 · 94. 
2.6.3 以太网、WLAN 等基本 
原理与结构 · 99.
嵌入式系统设计师教程(第 2 版) 
IV 
IV 
2.6.4 Rapid IO 等基本原理与 
结构 · 105. 
2.7 嵌入式 SoC  106. 
2.7.1 Virtex 系列  106. 
2.7.2 Spartan 系列  107. 
第 3 章 嵌入式硬件设计  108 
3.1 嵌入式系统电源管理 · 108. 
3.2 电子电路设计  111. 
3.2.1 电子电路设计基础知识  111. 
3.2.2 PCB 设计基础知识 · 116. 
3.2.3 电子电路测试基础知识  129. 
3.3 Cadence PCB 系统设计  130. 
3.3.1 原理图设计输入工具  131. 
3.3.2 PCB 设计系统 · 133. 
3.3.3 自动和交互布线工具  134. 
3.3.4 库管理 · 134. 
3.3.5 约束管理器 · 135. 
第 4 章 嵌入式系统软件基础知识  136 
4.1 嵌入式软件基础· 136 
4.1.1 嵌入式系统 · 136. 
4.1.2 嵌入式软件 · 139. 
4.1.3 嵌入式软件分类  141. 
4.1.4 嵌入式软件体系结构  141. 
4.1.5 设备驱动层 · 144. 
4.1.6 嵌入式中间件 146. 
4.2 嵌入式操作系统概述 · 146. 
4.2.1 嵌入式操作系统的分类  149. 
4.2.2 常见的嵌入式操作系统  152. 
4.3 任务管理  155. 
4.3.1 多道程序技术 156. 
4.3.2 进程、线程和任务  157. 
4.3.3 任务的实现 · 159. 
4.3.4 任务的调度 · 162. 
4.3.5 实时系统调度 167. 
4.3.6 任务间的同步与互斥  169. 
4.3.7 任务间通信 · 176. 
4.4 存储管理  178. 
4.4.1 存储管理概述  178. 
4.4.2 实模式与保护模式  179. 
4.4.3 分区存储管理  179. 
4.4.4 地址映射 · 184. 
4.4.5 页式存储管理  188. 
4.4.6 虚拟存储管理  193. 
4.5 设备管理  197. 
4.5.1 设备管理基础  197. 
4.5.2 I/O 控制方式 · 198. 
4.5.3 I/O 软件 · 201. 
4.6 文件系统  203. 
4.6.1 嵌入式文件系统概述  204. 
4.6.2 文件和目录 · 205. 
4.6.3 文件系统的实现  207. 
4.6.4 典型嵌入式文件系统 
介绍 · 210. 
4.7 嵌入式数据库  212. 
4.7.1 嵌入式系统对数据库的 
特殊要求 · 212. 
4.7.2 典型嵌入式数据库介绍  213. 
第 5 章 嵌入式系统设计与开发  215 
5.1 嵌入式软件开发概述 · 215. 
5.1.1 嵌入式应用开发的过程  215. 
5.1.2 嵌入式软件开发的特点  216. 
5.1.3 嵌入式软件开发的挑战  217. 
5.2 嵌入式软件开发环境 · 218. 
5.2.1 宿主机和目标机  219. 
5.2.2 嵌入式软件开发工具  221. 
5.2.3 集成开发环境  227. 
5.3 嵌入式软件开发 · 232. 
5.3.1 嵌入式平台选型  232. 
5.3.2 软件设计 · 233. 
5.3.3 特性设计技术  238.
目 录 
V 
V 
5.3.4 嵌入式软件的设计约束  241. 
5.3.5 编码 · 244. 
5.3.6 下载和运行 · 247. 
5.4 嵌入式软件移植· 247. 
5.4.1 无操作系统的软件移植  248. 
5.4.2 有操作系统的软件移植  249. 
5.4.3 应用软件的移植  250. 
第 6 章 嵌入式程序设计  252 
6.1 程序设计语言基础 · 252. 
6.1.1 程序设计语言概述  252. 
6.1.2 程序设计语言的分类和 
特点 · 253. 
6.1.3 程序设计语言的基本成分  256. 
6.1.4 程序设计语言的翻译基础  260. 
6.2 汇编语言程序设计 · 271. 
6.2.1 汇编语言概述 271. 
6.2.2 汇编语言程序 271. 
6.3 C 程序设计基础 · 276. 
6.3.1 C 程序基础  276. 
6.3.2 函数 · 291. 
6.3.3 存储管理 · 294. 
6.3.4 指针 · 297. 
6.3.5 栈与队列 · 306. 
6.3.6 C 程序内嵌汇编  312. 
6.4 C++程序设计基础 · 313. 
6.4.1 面向对象基本概念  313. 
6.4.2 C++程序基础  316. 
6.4.3 类与对象 · 319. 
6.4.4 继承与多态 · 326. 
6.4.5 异常处理 · 330. 
6.4.6 类库 · 332. 
第 7 章 嵌入式系统的项目开发与 
维护知识 · 334 
7.1 系统开发过程和项目管理 · 334. 
7.1.1 系统生存周期  334. 
7.1.2 过程模型 · 336. 
7.1.3 过程评估 · 342. 
7.1.4 工具与环境 · 344. 
7.1.5 项目管理 · 347. 
7.1.6 质量保证 · 351. 
7.2 系统分析知识  354. 
7.2.1 系统需求的定义  355. 
7.2.2 需求分析的基本任务  355. 
7.2.3 需求建模 · 355. 
7.3 系统设计知识  356. 
7.3.1 系统概要设计  357. 
7.3.2 系统详细设计  357. 
7.3.3 系统设计原则  358. 
7.3.4 软硬件协同设计方法  360. 
7.4 结构化分析与设计方法 · 362. 
7.4.1 结构化分析方法  363. 
7.4.2 结构化设计方法  366. 
7.4.3 结构化程序设计方法  370. 
7.5 面向对象分析与设计方法 · 370. 
7.5.1 面向对象分析与设计  370. 
7.5.2 UML 构造块  372. 
7.5.3 设计模式 · 377. 
7.6 系统实施知识  385. 
7.6.1 软硬件平台搭建  386. 
7.6.2 系统测试 · 386. 
7.6.3 系统调试 · 388. 
7.7 系统运行与维护 · 389. 
7.7.1 系统运行管理  389. 
7.7.2 系统维护概述  390. 
7.7.3 系统评价 · 393 
第 8 章 嵌入式系统软件测试 · 395 
8.1 软件测试概述  395 
8.1.1 软件测试的定义  395. 
8.1.2 软件测试的发展  396.
嵌入式系统设计师教程(第 2 版) 
VI 
VI 
8.1.3 软件测试与软件开发的 
关系 · 398. 
8.2 嵌入式软件测试技术 · 398 
8.2.1 测试过程 · 399. 
8.2.2 测试方法 · 403. 
8.2.3 测试类型 · 410. 
8.2.4 测试工具 · 416. 
8.2.5 测试环境 · 417. 
8.3 软件测试实践  419 
8.3.1 面向对象的软件测试  419. 
8.3.2 基于模型的软件测试  420. 
8.3.3 基于模型开发软件的测试  421. 
8.3.4 分布式软件测试  421. 
8.3.5 测试实例 · 422. 
第 9 章 嵌入式系统安全性基础 
知识  434 
9.1 计算机信息系统安全概述 · 434. 
9.1.1 信息系统安全 434. 
9.1.2 网络安全 · 435. 
9.1.3 风险管理 · 437. 
9.2 信息安全基础  439. 
9.2.1 数据加密原理 439. 
9.2.2 数据加密算法 439. 
9.2.3 认证算法 · 442. 
9.3 安全威胁防范  444. 
9.3.1 防治计算机病毒  444. 
9.3.2 认证 · 447. 
9.3.3 数字签名 · 448. 
9.3.4 报文摘要 · 449. 
9.3.5 数字证书 · 450. 
9.4 嵌入式系统安全方案 · 452. 
9.4.1 智能卡安全技术  452. 
9.4.2 USB-Key 技术 · 452. 
9.4.3 智能终端的安全技术  453. 
9.4.4 行业工控系统安全  454. 
第 10 章 标准化、信息化与知识 
产权基础知识 · 456 
10.1 标准化基础知识 · 456. 
10.1.1 概述 · 456. 
10.1.2 信息技术标准化  462. 
10.1.3 标准化组织  464. 
10.1.4 ISO 9000 标准简介  466. 
10.1.5 ISO/IEC 15504 过程评估 
标准简介 · 468. 
10.1.6 嵌入式系统相关标准 
简介 · 469. 
10.2 信息化基础知识 · 470. 
10.2.1 概述 · 470. 
10.2.2 信息化发展趋势  471. 
10.2.3 信息化应用  474. 
10.3 知识产权基础知识 · 475. 
10.3.1 概述 · 476. 
10.3.2 计算机软件著作权  478. 
10.3.3 计算机软件的商业 
秘密权 · 490. 
10.3.4 专利权概述  492. 
10.3.5 企业知识产权的保护  496. 
第 11 章 嵌入式系统设计案例分析  498 
11.1 嵌入式系统总体设计 · 498. 
11.1.1 嵌入式系统设计概述  499. 
11.1.2 案例分析 504. 
11.2 嵌入式系统硬件设计 · 536. 
11.2.1 嵌入式系统硬件设计 
概述 · 536. 
11.2.2 嵌入式系统软硬件协同 
设计 · 537. 
11.2.3 案例分析 537. 
11.3 嵌入式系统应用设计案例 · 569