1.1 嵌入式系统的发展趋势 1
1.1.1 什么是嵌入式系统 1
第1章 嵌入式系统简介 1
1.1.2 国内外发展概况 3
1.1.3 市场应用前景 6
1.2 嵌入式系统的特征与分类 8
1.2.1 嵌入式系统的特征 8
1.2.2 嵌入式系统的分类 9
1.3 嵌入式硬件软件简介 10
1.3.1 嵌入式硬件简介 10
1.3.2 嵌入式软件简介 12
1.3.3 嵌入式系统开发简介 13
习题 15
2.1 RTOS的概念 16
第2章 嵌入式实时操作系统概述 16
2.2 RTOS的起源和发展 18
2.2.1 RTOS的起源 18
2.2.2 RTOS的发展趋势 19
2.3 RTOS的特征 20
2.4 RTOS的组成 22
2.4.1 RTOS内核 22
2.4.2 嵌入式TCP/IP网络系统 24
2.4.3 嵌入式文件系统 24
2.5 RTOS的分类 25
习题 26
第3章 任务管理 27
3.1 RTOS任务的定义 27
3.2 RTOS任务状态及转换 28
3.3.1 概述 30
3.3 RTOS任务调度 30
3.3.2 实时调度算法分类 32
3.3.3 主要调度算法 32
3.4 RTOS任务的基本操作 34
3.4.1 任务创建 35
3.4.2 任务删除 36
3.4.3 任务挂起 36
3.4.4 任务唤醒 36
3.4.5 任务睡眠 37
3.4.6 关于任务扩展 37
3.5.1 任务控制块 38
3.5.2 任务控制块示例 38
3.5 RTOS任务的基本数据结构 38
3.6 RTOS优先级反转 39
3.6.1 优先级反转问题的提出 39
3.6.2 优先级反转问题的解决 40
习题 41
第4章 同步与通信 43
4.1 理解同步与通信 43
4.2 信号量 44
4.2.1 信号量定义 44
4.2.2 信号量的数据结构 45
4.2.3 信号量的基本操作 46
4.2.4 信号量应用举例 47
4.3 邮箱 49
4.3.1 邮箱定义 49
4.3.3 邮箱的基本操作 50
4.3.2 邮箱的数据结构 50
4.3.4 邮箱应用举例 51
4.4 消息队列 53
4.4.1 消息队列定义 53
4.4.2 消息队列的数据结构 53
4.4.3 消息队列的基本操作 54
4.4.4 消息队列应用举例 55
4.5 互斥体 56
4.5.1 互斥体定义 56
4.5.2 互斥体的数据结构 57
4.5.3 互斥体的基本操作 58
4.5.4 互斥体应用举例 59
习题 60
5.1.1 实时时钟 62
5.1 硬件时钟设备 62
第5章 时间管理 62
5.1.2 可编程间隔定时器 63
5.2 时钟管理 64
5.2.1 时钟粒度 64
5.2.2 时钟机制 64
5.3 定时器管理 65
5.4 时钟中断服务程序 69
习题 70
第6章 中断/异常管理 71
6.1 中断/异常的一些基本概念 71
6.2 中断系统的硬件结构 73
6.2.1 一般的中断硬件结构 73
6.2.2 中断硬件结构示例 74
6.3.1 中断检测与中断响应 76
6.3 中断处理过程 76
6.3.2 中断处理 77
6.4 用户中断服务程序 81
6.5 伪中断 82
6.6 中断评价指标 83
6.7 嵌入式中断机制特点 84
习题 85
第7章 内存管理 86
7.1 内存管理原理 86
7.2 固定尺寸内存池管理 87
7.2.1 固定尺寸内存池管理的特点 87
7.2.2 固定尺寸内存池管理的数据结构 88
7.2.3 固定尺寸内存池管理的基本操作 90
7.3.2 可变尺寸内存池管理的数据结构 91
7.3.1 可变尺寸内存池管理的特点 91
7.3 可变大小内存池管理 91
7.3.3 可变尺寸内存池的基本操作 94
习题 95
第8章 I/O管理 96
8.1 I/O管理的功能 96
8.2 I/O管理的基本方法 98
8.2.1 使用轮询的直接I/O 98
8.2.2 中断驱动I/O 99
8.2.3 存储映射I/O 100
8.2.4 直接内存访问 101
8.3 I/O管理系统的实现 101
8.3.1 I/O管理系统的实现思想 102
8.3.2 VxWorks下的I/O设备驱动实现 103
8.3.3 Linux下的设备驱动程序实现 106
8.4 常用I/O设备 111
8.4.1 串行通信设备 111
8.4.2 顺序访问的存储设备 112
8.4.3 随机存取设备 113
习题 114
第9章 其他子系统 115
9.1 文件系统 115
9.1.1 通用文件系统 115
9.1.2 闪存文件系统 116
9.1.3 内存文件系统 121
9.2 图形用户界面 121
9.2.1 基本知识 121
9.2.2 关键技术 122
9.2.3 开发工具 124
9.3 TCP/IP协议栈 127
9.3.1 TCP/IP协议简介 127
9.3.2 嵌入式TCP/IP协议栈 130
9.4 其他接口 132
9.4.1 Java虚拟机 132
9.4.2 嵌入式数据库 133
习题 137
第10章 嵌入式硬件介绍 138
10.1 嵌入式处理器 138
10.1.1 嵌入式微处理器 139
10.1.2 嵌入式微控制器 147
10.1.3 嵌入式片上系统 147
10.1.4 嵌入式DSP处理器 149
10.2 总线 150
10.2.1 ISA 151
10.2.2 PCI 152
10.2.3 I2C 152
10.2.4 CAN 153
10.2.5 AMBA 154
10.3 存储器 154
10.3.1 高速缓存 155
10.3.2 主存 155
10.3.3 外存 156
10.4 通信接口 157
10.4.1 USB总线 157
10.4.2 IEEE1394总线 158
10.4.3 IEEE802.11 160
10.4.4 蓝牙 161
10.4.5 IrDA 162
10.5 其他嵌入式设备 162
10.5.1 液晶显示 163
10.5.2 触摸屏 164
10.5.3 语音输入/输出设备 165
10.5.4 键盘 166
习题 168
第11章 主流RTOS介绍 169
11.1 TRON 169
11.1.1 概述 169
11.1.2 T-Kernel与TRON的关系 170
11.1.3 T-Engine的软件构成 170
11.1.4 T-Kernel的内核概要 171
11.1.5 同步与通信 171
11.1.6 中断/异常处理 172
11.1.7 内存管理 173
11.2 VxWorks 175
11.2.1 概述 175
11.2.2 VxWorks的特点 175
11.2.3 VxWorks的体系结构 176
11.2.4 Tonado集成开发环境 179
11.3 QNX 179
11.3.1 微内核概述 180
11.3.2 资源管理和路径名空间管理 182
11.3.3 QNX的可维护性 186
11.3.4 QNX的性能 187
11.4 μCLinux 187
11.4.1 μCLinux的内存管理 188
11.4.3 内存保护 189
11.4.2 μCLinux的内核结构 189
11.4.4 编程接口的改变 190
11.4.5 μCLinux的应用程序库 191
11.4.6 μCLinux的内核运行方式 191
11.4.7 μCLinux支持的文件系统 191
11.5 Windows CE 191
11.5.1 Windows CE的体系结构 192
11.5.2 基于Windows CE的产品 195
11.5.3 Windows CE定制开发 195
11.5.4 应用程序的开发 196
11.5.5 设备驱动程序的开发 196
11.5.6 Windows CE的内存使用 196
习题 197
12.1.1 实时在线仿真系统 198
第12章 应用开发 198
12.1 开发工具 198
12.1.2 高级语言编译器 199
12.1.3 源程序模拟器 199
12.1.4 实时多任务操作系统 200
12.1.5 集成开发环境 200
12.2 开发过程 201
12.2.1 选定开发平台 201
12.2.2 选定操作系统 204
12.2.3 系统的开发 207
12.2.4 系统的调试 215
习题 219
13.1 系统层开发范例 220
13.1.1 基于μCLinux的内核移植与驱动开发 220
第13章 应用开发范例 220
13.1.2 嵌入式Linux系统的设计和应用 229
13.1.3 基于VxWorks的DMA驱动程序开发范例 231
13.1.4 基于Windows CE的打印机驱动开发 234
13.1.5 开发具有动态电压调整功能的操作系统 236
13.1.6 基于龙芯-1号CPU的网络终端主板的开发 243
13.1.7 基于龙芯GS32I的嵌入式Linux系统的开发 246
13.2 应用层开发范例 249
13.2.1 基于μC/OS-Ⅱ的IDE行为状态机的设计与实现 249
13.2.2 嵌入式操作系统中的IC卡资源管理器 260
13.2.3 基于VxWorks的邮箱通信实现 264
13.2.4 基于TRON的应用开发 267
习题 276
参考文献 278