第1章 嵌入式系统概述 1
1.1 嵌入式系统 1
1.1.1 漫谈嵌入式系统 1
1.1.2 嵌入式系统的定义 3
1.1.3 嵌入式系统的特点 4
1.1.4 嵌入式系统的发展 7
1.1.5 嵌入式系统的应用领域 9
1.2 嵌入式系统的构成 11
1.2.1 硬件系统的基本结构 12
1.2.2 软件系统的基本结构 14
1.3 嵌入式系统开发 16
1.3.1 嵌入式系统开发的一般环节 16
1.3.2 嵌入式系统开发的产业链 20
1.4 推荐读物和网站 22
1.5 习题 23
第2章 硬件技术基础 24
2.1 计算机体系结构简介 24
2.2 微处理器 26
2.2.1 微处理器的分类 26
2.2.2 用户可见寄存器 29
2.2.3 指令系统与汇编语言 32
2.2.4 RISC和CISC 34
2.2.5 多字节存储 36
2.2.6 常见的嵌入式微处理器 38
2.3 存储器 41
2.3.1 层次化存储模型 41
2.3.2 虚拟内存机制 51
2.4 总线 59
2.4.1 总线概述 59
2.4.2 常见的总线介绍 60
2.5 输入输出模块 70
2.5.1 概述 70
2.5.2 访问外设方式 70
2.5.3 轮询 73
2.5.4 中断 74
2.5.5 DMA 84
2.6 需要了解的硬件设计图 86
2.7 推荐读物和网站 89
2.8 习题 90
第3章 嵌入式软件开发的概念和方法 93
3.1 软件开发流程 93
3.1.1 编码阶段 94
3.1.2 构建阶段 95
3.1.3 部署阶段 106
3.2 环境搭建 108
3.2.1 开发机和目标机 108
3.2.2 选择编程语言 109
3.2.3 选择开发工具 112
3.2.4 建立连接 113
3.3 一个实例 115
3.3.1 环境搭建 115
3.3.2 硬件初始化 117
3.3.3从汇编语言到C语言 120
3.3.4 实现控制台终端 121
3.3.5 图形界面入门 124
3.3.6 中断处理 127
3.3.7 启用虚拟内存 131
3.4 代码优化 136
3.4.1 运行速度优化 137
3.4.2 代码尺寸优化 139
3.4.3 低功耗优化 139
3.4.4 编译器自动优化 140
3.5 推荐读物和网站 141
3.6 习题 142
第4章 嵌入式操作系统 144
4.1 嵌入式操作系统简介 144
4.2 嵌入式操作系统的功能 145
4.2.1 处理机管理 145
4.2.2 同步 148
4.2.3 内存管理 149
4.2.4 文件系统 151
4.3 常见的嵌入式操作系统 153
4.3.1 嵌入式Linux 153
4.3.2 Windows CE 156
4.3.3 VxWorks 158
4.3.4 μC/OSⅡ 162
4.4 嵌入式操作系统的移植 164
4.4.1 硬件抽象层 164
4.4.2 系统定制与裁剪 165
4.4.3 引导程序 166
4.4.4 操作系统移植实例 169
4.5 推荐读物和网站 190
4.6 习题 190
第5章 软件调试技术 192
5.1 软件调试概述 192
5.1.1 软件调试的目的 192
5.1.2 影响调试的外围因素 193
5.2 常见的调试方法 194
5.2.1 指令集模拟器 194
5.2.2 驻留监控程序 196
5.2.3 在线仿真器 199
5.2.4 JTAG仿真器 201
5.2.5 其他方法 202
5.3 GDB调试器 204
5.3.1 简介 204
5.3.2 GDB的RSP协议 206
5.3.3 GDB Stub的移植 207
5.4 推荐读物和网站 211
5.5 习题 212
第6章 嵌入式系统开发案例 214
6.1 案例介绍 214
6.2 系统的设计 214
6.3 关键算法设计 216
6.4 系统的实现 218
6.5 系统开发实例 219
6.6 推荐读物和网站 220
6.7 题 220
附录A Device Emulator 221
参考文献 224