第1章 嵌入式系统概述 1
1.1 嵌入式系统的基本概念 1
1.2 嵌入式系统的特点 3
1.3 嵌入式系统的应用 6
1.4 嵌入式系统的开发 9
1.4.1 嵌入式系统开发考虑的要素 9
1.4.2 软硬件协同设计 9
1.4.3 嵌入式系统硬件开发 10
1.4.4 嵌入式软件开发的特点和技术挑战 13
1.4.5 嵌入式软件开发环境 14
1.4.6 嵌入式应用软件开发过程 17
1.4.7 嵌入式系统的开发流程 21
习题 23
第2章 嵌入式系统的结构 24
2.1 嵌入式系统的体系结构 24
2.1.1 嵌入式系统体系结构简介 24
2.1.2 嵌入式系统体系结构的重要性 26
2.1.3 嵌入式系统体系结构模型 27
2.2 嵌入式系统的流水线结构 28
2.3 嵌入式系统的存储器结构 31
2.4 嵌入式系统的编程结构 33
习题 35
第3章 嵌入式系统的指令结构及指令系统 35
3.1 嵌入式处理器寻址方式 36
3.2 指令集介绍 38
3.2.1 ARM微处理器的指令的分类与格式 38
3.2.2 指令的条件域 40
3.3 ARM指令集 40
3.3.1 跳转指令 41
3.3.2 数据处理指令 42
3.3.3 乘法指令与乘加指令 47
3.3.4 程序状态寄存器访问指令 50
3.3.5 加载/存储指令 51
3.3.6 批量数据加载/存储指令 53
3.3.7 数据交换指令 54
3.3.8 移位指令(操作) 54
3.3.9 协处理器指令 56
3.3.10 异常产生指令 58
3.4 Thumb指令集 58
习题 59
第4章 以ARM为核心的嵌入式系统结构 59
4.1 ARM核概述 61
4.1.1 ARM公司简介 61
4.1.2 ARM核的特点 62
4.2 ARM内核的基本结构 63
4.2.1 ARM内核 63
4.2.2 ARM扩展功能块 64
4.2.3 ARM启动方式 67
4.3 ARM处理器模式 68
4.4 ARM的存储器结构 69
4.4.1 ARM存储方法 69
4.4.2 存储空间管理单元MMU 70
4.5 ARM的编程结构 72
4.5.1 ARM微处理器的工作状态 72
4.5.2 指令长度及数据类型 72
4.6 ARM的寄存器结构 73
4.6.1 ARM状态下的寄存器组织 73
4.6.2 Thumb状态下的寄存器组织 74
4.6.3 ARM寄存器 74
4.7 ARM的流水线及时序 78
4.7.1 ARM流水线 78
4.7.2 ARM时序 79
4.8 ARM的中断与异常 80
4.8.1 ARM异常类型 80
4.8.2 异常的响应及返回 81
4.8.3 异常的描述 82
4.8.4 异常的处理 84
习题 85
第5章 ARM系统中的存储器设计与管理5.1 ARM存储器系统概述 86
5.2 ARM存储器系统结构 86
5.2.1 ARM存储数据类型和存储格式 87
5.2.2 ARM存储器层次简介 88
5.3 ARM存储器配置 88
5.3.1 存储器映射 88
5.3.2 系统初始化 90
5.3.3 地址映射模式 92
5.3.4 其他调试方法 93
5.4 ARM存储器访问与扩展 95
5.4.1 S3C44B0X存储控制器 95
5.4.2 在S3C44B0X中存储器扩展 105
5.5 ARM存储器管理及应用编程 109
5.5.1 S3C44B0X芯片简介 110
5.5.2 S3C44B0X芯片存储空间划分 110
5.5.3 Flash的接口设计 111
5.5.4 SDRAM的接口设计 114
5.5.5 硬件管理软件设计 118
习题 121
第6章 ARM系统中的接口设计与管理6.1 概述 122
6.2 UART接口设计 123
6.3 IIC接口设计 126
6.4 SPI接口设计 126
6.5 USB接口设计 128
6.5.1 USB接口背景 128
6.5.2 USB接口原理 129
6.5.3 USB总线优缺点 130
6.5.4 USB系统拓扑结构 131
6.5.5 USB总线数据传输 132
6.5.6 USB典型设计与应用 132
6.6 RJ45接口设计 134
6.6.1 RJ45接口简介 134
6.6.2 10M/100M以太网接口电路 134
6.7 JTAG接口设计 139
6.8 其他总线接口设计 142
6.8.1 寻址空间 142
6.8.2 电源管理设计 143
6.8.3 RESET电路设计 145
6.8.4 频率电路设计 145
习题 146
第7章 ARM系统的I/O端口设计与管理7.1 概述 147
7.2 ARM核I/O端口配置 148
7.2.1 ARM7中的I/O端口配置 148
7.2.2 ARM9中的I/O端口配置 149
7.3 ARM核I/O端口功能描述 154
7.4 ARM核I/O端口寄存器控制 155
7.4.1 ARM7中的S3C4510B I/O端口寄存器控制 155
7.4.2 ARM9中的S3C241X I/O端口寄存器控制 157
7.5 ARM核I/O端口应用编程 175
习题 177
第8章 ARM系统中的中断系统 178
8.1 概述 178
8.2 ARM系统中断控制器 181
8.3 ARM系统中断源 183
8.4 ARM系统中断模式 185
8.5 ARM系统中断控制器的控制寄存器 185
8.5.1 S3C44B0X中断控制器的控制寄存器 186
8.5.2 S3C4510B中断控制器的控制寄存器 191
8.5.3 S3C2410X中断控制器的控制寄存器 193
8.6 ARM系统中断应用编程 201
习题 208
第9章 ARM系统中的人机接口技术 210
9.1 概述 210
9.2 ARM系统中的键盘接口 211
9.2.1 键盘接口 211
9.2.2 常见的键盘接口 214
9.2.3 实例 216
9.3 ARM系统中的LCD接口 220
9.3.1 LCD接口 220
9.3.2 S3C44B0X LCD控制器 222
9.3.3 S3C2410X LCD控制器 230
9.3.4 应用实例 261
9.4 ARM系统中的PS/2接口 268
9.4.1 PS/2接口和协议 268
9.4.2 PS/2接口鼠标的工作模式和协议数据包格式 270
9.4.3 PS/2接口鼠标设计与实现 271
9.5 ARM系统中的人机接口应用 273
习题 278
第10章 ARM系统软件开发环境与开发工具10.1 概述 279
10.1.1 嵌入式系统开发所面临的问题 279
10.1.2 开发环境 280
10.1.3 选择合适的嵌入式系统软硬件调试工具 285
10.2 常用ARM系统软件开发工具介绍 286
10.2.1 开发工具综述 286
10.2.2 如何选择开发工具 294
10.3 常用ARM系统软件开发环境介绍 295
10.3.1 建立ARM系统软件开发环境 295
10.3.2 RealView MDK集成开发环境的使用 297
习题 328
第11章 ARM嵌入式操作系统 329
11.1 概述 329
11.1.1 嵌入式操作系统基本概念及特点 329
11.1.2 嵌入式操作系统解析 331
11.1.3 实时操作系统解析 332
11.1.4 目前最流行的嵌入式操作系统 333
11.2 ARM实时操作系统 337
11.2.1 基本概念 337
11.2.2 ARM实时操作系统特征 339
11.2.3 流行的ARM实时操作系统 340
11.3 μC/OS-Ⅱ操作系统 341
11.3.1 μC/OS-Ⅱ的主要特点 341
11.3.2 μC/OS-Ⅱ内核工作原理 342
11.4 μCLinux操作系统 345
11.4.1 μCLinux简介 345
11.4.2 μCLinux架构 346
11.4.3 μCLinux的设计特征 347
11.5 WinCE 5.0操作系统 349
11.5.1 Windows CE简介 349
11.5.2 Windows CE的结构 350
11.5.3 Windows CE的特点 351
11.5.4 Windows CE实时性 353
11.5.5 Windows CE 5.0的新特性 354
习题 355
第12章 开发具有自主产权的实时操作系统 355
12.1 概述 356
12.2 开发自主产权实时操作系统的必要性 357
12.3 实时操作系统中断管理技术 358
12.3.1 简介 358
12.3.2 中断管理模式 360
12.3.3 嵌入式内核接管中断的处理机制 361
12.3.4 中断管理模型 363
12.4 实时操作系统存储器管理技术 364
12.4.1 对内存分配的要求 365
12.4.2 对内存分配的策略 365
12.4.3 内存动态分配管理 366
12.5 实时操作系统人机接口管理技术 370
12.5.1 键盘的管理策略 370
12.5.2 LED/LCD的管理策略 371
12.6 实时操作系统应用实例 372
习题 385
第13章 系统移植技术 387
13.1 概述 387
13.2 μC/OS-Ⅱ操作系统移植 387
13.2.1 移植的目标系统 388
13.2.2 开发工具 389
13.2.3 μC/OS-Ⅱ移植 390
13.2.4 测试移植代码 401
13.3 μCLinux操作系统移植 402
13.3.1 创建开发环境 402
13.3.2 编译与移植μCLinux 404
13.4 WinCE 5.0操作系统移植 408
13.4.1 Windows CE操作系统简介 408
13.4.2 Windows CE操作系统架构 409
13.4.3 Windows CE Boot Loader开发 411
13.4.4 Windows CE的OAL 412
13.4.5 Windows CE操作系统的创建和调试 415
习题 417
参考文献 418