第1章 绪论 1
1.1 什么叫嵌入式系统 1
1.2 嵌入式系统的特点 2
1.2.1 嵌入式系统的要求 2
1.2.2 嵌入式系统的核心 3
1.2.3 嵌入式系统设计所面临的问题 4
1.3 嵌入式系统的设计过程 5
1.3.1 需求分析与规格说明 5
1.3.2 体系结构设计 7
1.3.3 构件设计 8
1.3.4 系统集成 8
第2章 嵌入式微处理器体系结构 9
2.1 ARM9简介 9
2.1.1 ARM9的结构特点 9
2.1.2 ARM9指令集特点 10
2.1.3 ARM9的工作模式 12
2.2 ARM9的存储组织结构 13
2.2.1 大端存储和小端存储 13
2.2.2 I/O接口的访问方式 15
2.2.3 内部寄存器 15
2.3 ARM9的异常 18
2.3.1 类型及向量地址 19
2.3.2 优先级 20
2.3.3 进入异常和退出异常 21
2.4 ARM9汇编指令 22
2.4.1 寻址方式 24
2.4.2 寄存器装载及存储指令 27
2.4.3 算术和逻辑指令 29
2.4.4 比较指令 33
2.4.5 分支指令 34
2.4.6 软件中断指令 35
第3章 嵌入式系统的存储系统 36
3.1 存储器组织及接口方式 36
3.1.1 随机存储器组织 37
3.1.2 只读存储器组织 38
3.2 存储器接口设计 40
3.2.1 SRAM的接口设计 40
3.2.2 DRAM的接口设计 42
3.2.3 NAND Flash的接口设计 42
3.3 高速缓存机制 45
3.3.1 高速缓存机制原理 45
3.3.2 数据替换策略 47
3.3.3 数据一致性 49
3.3.4 高速缓存性能分析 49
3.4 虚拟存储机制 51
3.4.1 虚拟内存技术原理 51
3.4.2 一个具体实例 52
第4章 嵌入式系统的接口设计 58
4.1 接口控制方式 58
4.1.1 程序查询方式 59
4.1.2 中断方式 60
4.1.3 I/O接口的寻址 62
4.2 通用并行I/O接口 63
4.2.1 GPIO的一般性原理 63
4.2.2 一个具体的GPIO 65
4.2.3 GPIO设计实例 68
4.3 定时/计数器部件 70
4.3.1 定时/计数器的原理 70
4.3.2 一个具体的定时器 71
4.3.3 定时器的设计实例 75
4.3.4 看门狗电路 76
4.4 人机接口 77
4.4.1 键盘接口设计 77
4.4.2 LED显示器接口设计 79
4.4.3 LCD显示器接口设计 82
第5章 嵌入式系统软件平台 87
5.1 嵌入式系统软件概述 88
5.1.1 嵌入式软件平台的发展 88
5.1.2 嵌入式软件开发特点 89
5.1.3 嵌入式Linux 91
5.2 嵌入式操作系统移植 96
5.2.1 启动引导程序的移植 96
5.2.2 Linux内核移植 98
5.3 文件系统移植 100
5.3.1 Linux文件系统结构及类型 100
5.3.2 Linux文件系统的原理 102
5.3.3 Linux文件系统的创建 104
5.4 设备驱动 106
5.4.1 设备管理机制 106
5.4.2 设备驱动原理 108
5.4.3 驱动程序开发实例 110
5.5 其他嵌入式操作系统 111
5.5.1 μC/OS-Ⅱ 111
5.5.2 VxWorks 119
第6章 嵌入式网络技术 140
6.1 分布式嵌入式系统结构 140
6.1.1 网络结构 141
6.1.2 通信方式 142
6.2 常规嵌入式系统网络 143
6.2.1 异步串行通信网络 143
6.2.2 I2C总线 160
6.2.3 CAN总线 164
6.3 USB网络 166
6.3.1 USB的概念及特点 166
6.3.2 USB总线体系结构 167
6.3.3 USB主机 171
6.3.4 USB设备 176
6.3.5 实例——S3C2410的USB接口部件 182
6.4 嵌入式TCP/IP网络 194
6.4.1 嵌入式TCP/IP协议实现的特点 195
6.4.2 以太网及TCP/IP协议 196
6.4.3 嵌入式TCP/IP实现 199
6.5 基于网络设计的性能分析 208
6.5.1 通信分析 208
6.5.2 系统性能分析 211
6.5.3 网络分配和调度 212
第7章 嵌入式系统设计和分析 214
7.1 系统设计的形式化方法 214
7.1.1 统一建模语言 214
7.1.2 结构描述 220
7.1.3 行为描述 221
7.2 嵌入式系统设计范型 221
7.2.1 状态机设计范型 221
7.2.2 循环队列设计范型 222
7.3 编程模型 223
7.3.1 数据流图 223
7.3.2 控制/数据流图 224
7.4 程序执行时间的分析与优化 224
7.4.1 执行时间的描述 225
7.4.2 性能分析 226
7.4.3 优化执行速度 230
7.5 能量和功率的分析与优化 231
7.5.1 程序功耗分析 231
7.5.2 功耗优化 233
7.6 程序长度的分析与优化 234
7.6.1 数据的影响 234
7.6.2 代码的影响 234
第8章 系统设计实例 236
8.1 实例一:数字式时钟 236
8.1.1 系统需求 236
8.1.2 规格说明 237
8.1.3 系统体系结构 240
8.1.4 构件设计与测试 241
8.2 实例二:医用心电仪 241
8.2.1 系统需求 241
8.2.2 需求分析 243
8.2.3 静态结构模型 247
8.2.4 动态行为模型 254
8.2.5 物理模型 264
8.2.6 小结 264
8.3 实例三:嵌入式Web服务器 265
8.3.1 嵌入式Web服务器结构 265
8.3.2 嵌入式Web服务器的设计 268
8.3.3 基于嵌入式Web的应用结构 270
8.3.4 基于嵌入式Web的应用程序设计 277
8.3.5 小结 288
附录A UML元素、关系、符号 289
参考文献 293