第1章 概述 1
1.1 嵌入式系统 1
1.1.1 嵌入式系统的定义 1
1.1.2 嵌入式系统的发展历史 1
1.1.3 嵌入式计算机系统与通用计算机系统 2
1.2 嵌入式系统的组成 3
1.2.1 嵌入式系统的硬件组成 3
1.2.2 嵌入式系统的软件组成 5
1.3 嵌入式系统的主要应用领域 6
1.4 嵌入式处理器 7
1.4.1 嵌入式处理器分类 7
1.4.2 嵌入式处理器现状及发展趋势 9
1.5 嵌入式操作系统 11
1.5.1 嵌入式操作系统分类 11
1.5.2 实时操作系统 12
1.5.3 嵌入式操作系统的特点 14
1.5.4 目前市场上流行的嵌入式操作系统 15
1.6 嵌入式系统的开发 18
1.6.1 嵌入式系统设计流程 18
1.6.2 嵌入式系统开发中的一些问题 20
本章要点 28
习题 28
第2章 ARM及其编程模型 29
2.1 ARM简介 29
2.2 RISC体系结构 30
2.3 ARM体系结构 30
2.3.1 ARM体系结构的版本 30
2.3.2 ARM体系结构的变种及版本命名格式 32
2.3.3 ARM处理器系列 34
2.4 ARM微处理器的编程模型 38
2.4.1 ARM处理器支持的数据类型 38
2.4.2 ARM处理器的工作状态 39
2.4.3 ARM处理器的工作模式 40
2.4.4 ARM状态下的寄存器组织 40
2.5 ARM的异常中断 44
2.5.1 ARM体系结构所支持的异常类型 45
2.5.2 异常的响应及返回 45
2.5.3 各类异常及返回 47
2.6 ARM7TDMI处理器内核简介 50
2.6.1 ARM7TDMI介绍 51
2.6.2 ARM7TDMI处理器核的硬件接口 53
本章要点 57
习题 58
第3章 ARM指令集 59
3.1 ARM指令集概述 59
3.1.1 ARM指令的编码格式 59
3.1.2 ARM指令的条件码域 60
3.1.3 指令流水线 60
3.2 ARM寻址方式 61
3.3 ARM指令分类介绍 64
3.3.1 数据处理指令 64
3.3.2 分支指令 71
3.3.3 存储器访问指令 73
3.3.4 程序状态寄存器与通用寄存器之间的传送指令 78
3.3.5 协处理器指令 79
3.3.6 异常中断产生指令 81
3.4 Thumb指令集 82
3.4.1 Thumb指令集概述 82
3.4.2 Thumb寄存器和ARM寄存器之间的关系 83
3.4.3 Thumb指令分类介绍 84
本章要点 94
习题 94
第4章 嵌入式程序设计 95
4.1 汇编语言程序结构 95
4.1.1 ARM编译模式与开发环境 95
4.1.2 ARM汇编语言的伪操作、伪指令与宏指令 98
4.1.3 CodeWarrior编译器下的伪操作与伪指令 99
4.2 ARM汇编语言程序设计 106
4.2.1 ARM汇编中的文件格式 106
4.2.2 ARM汇编语法格式 106
4.2.3 ARM汇编程序设计 110
4.2.4 ARM与Thumb之间的状态转换及函数的互相调用 118
4.3 C语言与汇编语言混合编程 120
4.3.1 C程序与汇编程序的相互调用规则 120
4.3.2 内嵌汇编程序设计 123
4.3.3 C语言函数和ARM汇编语言函数间互相调用 127
本章要点 128
习题 128
第5章 ARM7嵌入式最小系统设计 130
5.1 系统设计概述 130
5.2 S3C44B0X嵌入式微处理器 131
5.2.1 S3C44B0X引脚及信号描述 132
5.2.2 S3C44B0X特性 135
5.2.3 ARM7嵌入式存储器体系 139
5.2.4 S3C44B0X的存储控制器 141
5.3 S3C44B0X嵌入式最小系统硬件电路 148
5.3.1 电源、复位、时钟电路和JTAG接口 148
5.3.2 Flash存储器接口电路 149
5.3.3 SDRAM存储器接口电路 150
5.4 S3C44B0X的存储器接口设计 151
5.4.1 Flash存储器设计 151
5.4.2 SDRAM存储器设计 157
5.5 S3C44B0X的中断控制器介绍与设计 162
5.5.1 中断控制器概述 162
5.5.2 中断式键盘的软硬件设计 169
5.5.3 中断式键盘的应用编程 171
5.6 S3C44B0X嵌入式系统的启动程序 174
5.6.1 BootLoader介绍 174
5.6.2 启动程序设计实例 175
本章要点 182
习题 182
第6章 S3C44B0X嵌入式系统通用接口设计 183
6.1 S3C44B0X的通用I/O端口 183
6.1.1 S3C44B0X的I/O端口 183
6.1.2 S3C44B0X芯片与端口相关的寄存器 185
6.1.3 应用实例 186
6.2 串行通信接口 188
6.2.1 概述 188
6.2.2 S3C44B0X的串行通信单元 189
6.2.3 UART操作 189
6.2.4 UART寄存器 194
6.2.5 串行通信的应用与编程 198
6.3 定时器 200
6.3.1 概述 200
6.3.2 S3C44B0X PWM定时器 201
6.3.3 PWM定时器工作原理 201
6.3.4 PWM定时器操作 202
6.3.5 PWM定时器的特殊功能寄存器 205
6.3.6 PWM定时器的应用编程 209
6.4 LCD控制器 210
6.4.1 概述 210
6.4.2 液晶显示屏原理 211
6.4.3 S3C44B0X LCD控制器 212
6.4.4 开发实例设计 218
6.4.5 参考程序 220
本章要点 223
习题 223
第7章 μC/OS-Ⅱ多任务操作系统与开发 224
7.1 μC/OS-Ⅱ操作系统内核结构 224
7.1.1 μC/OS-Ⅱ操作系统主要特点 224
7.1.2 μC/OS-Ⅱ操作系统的任务与调度 226
7.1.3 μC/OS-Ⅱ初始化与启动 238
7.2 μC/OS-Ⅱ操作系统任务管理 240
7.2.1 创建任务与任务堆栈 240
7.2.2 任务的操作 251
7.3 μC/OS-Ⅱ操作系统任务间通信与同步 256
7.3.1 任务间的通信与同步概述 256
7.3.2 基于消息邮箱的任务间通信 256
7.3.3 基于信号量任务间通信 258
本章要点 263
习题 263
第8章 μC/OS-Ⅱ操作系统程序设计与移植 265
8.1 μC/OS-Ⅱ操作系统程序设计方法 265
8.1.1 μC/OS-Ⅱ操作系统的数据类型 265
8.1.2 μC/OS-Ⅱ操作系统程序设计 265
8.2 μC/OS-Ⅱ操作系统扩展 270
8.2.1 μC/OS-Ⅱ操作系统内核扩展 270
8.2.2 程序设计综合实例 272
8.3 μC/OS-Ⅱ操作系统的移植 290
8.3.1 μC/OS-Ⅱ操作系统移植规划 290
8.3.2 μC/OS-Ⅱ操作系统移植过程 291
8.4 μC/OS-Ⅱ操作系统移植测试 297
本章要点 299
习题 299
第9章 ADS集成开发环境介绍与使用 300
9.1 ARM Developer Suite 300
9.1.1 ADS和RVDS介绍 300
9.1.2 ARM硬件仿真器 302
9.2 ADS集成开发环境使用说明 303
9.2.1 ADS的命令行与开发工具 303
9.2.2 ADS 1.2安装与系统配置 312
9.2.3 ADS工程项目管理 325
9.2.4 代码编译与加载调试 332
9.2.5 ADS与实验平台的连接 339
本章要点 339
习题 340
附录A ARM指令集和Thumb指令集速查表 341
附录B 伪操作与伪指令 349
参考文献 354
参考网站 354