第1章 ARM处理器概述 1
1.1 初识ARM 1
1.1.1 什么是ARM 1
1.1.2 ARM技术的特点及应用领域 2
1.2 ARM处理器简介 3
1.2.1 ARM体系结构的版本 3
1.2.2 ARM处理器核扩充标识 4
1.3 ARM处理器产品系列 5
1.3.1 ARM7系列 5
1.3.2 ARM9系列 5
1.3.3 ARM9E系列 6
1.3.4 ARM10E系列 6
1.3.5 ARM11系列 7
1.3.6 SecurCore系列 7
1.3.7 Xscale系列 7
1.3.8 其他系列处理器 8
1.4 ARM体系结构的发展 8
本章小结 10
思考题 11
第2章 ARM开发流程及交叉开发环境 12
2.1 ARM的一般开发流程 12
2.2 交叉开发环境简介 12
2.2.1 ARM集成开发环境ADS 13
2.2.2 ADS 1.2软件的安装 16
2.3 一个使用ADS 1.2开发的简单设计实例 19
2.3.1 使用CodeWarrior建立工程 19
2.3.2 向工程中添加源文件 23
2.3.3 调试前的配置 23
2.3.4 编译和连接 28
2.3.5 使用AXD进行代码调试 28
2.3.6 使用JTAG工具进行硬件调试 29
2.3.7 代码的下载和烧写 30
本章小结 30
思考题 30
第3章 ARM的编程模型及指令寻址方式 31
3.1 ARM处理器编程模型 31
3.1.1 处理器的工作状态 31
3.1.2 处理器模式 32
3.1.3 寄存器的组织结构 33
3.1.4 存储器和存储器映射I/O 40
3.1.5 异常 43
3.1.6 中断延迟 49
3.1.7 复位 49
思考题 50
3.2 ARM基本寻址方式 50
3.2.1 寄存器寻址 50
3.2.2 立即寻址 50
3.2.3 寄存器移位寻址 51
3.2.4 寄存器间接寻址 51
3.2.5 变址寻址 52
3.2.6 多寄存器寻址 52
3.2.7 堆栈寻址 53
3.2.8 块复制寻址 53
3.2.9 相对寻址 54
本章小结 54
思考题 54
第4章 ARM常用指令集及示例 55
4.1 ARM指令集概述 55
4.2 ARM常用指令集 56
4.2.1 数据传送指令 56
4.2.2 数据处理指令 64
4.2.3 乘法指令 76
4.2.4 跳转指令 80
4.2.5 协处理器及其他指令 83
思考题 88
4.3 ARM指令功能段示例 88
4.3.1 算术逻辑运算指令的应用 88
4.3.2 跳转指令的应用 90
4.3.3 Load/Store指令的应用 92
4.3.4 批量Load/Store指令的应用 94
4.3.5 信号量指令的应用 94
4.3.6 与系统相关的一些指令代码段 96
4.4 Thumb指令集简介 100
本章小结 102
思考题 102
第5章 ARM汇编语言程序设计 103
5.1 伪操作 103
5.1.1 符号定义伪操作 104
5.1.2 数据定义伪操作 106
5.1.3 汇编控制伪操作 110
5.1.4 其他常用的伪操作 112
5.2 ARM汇编语言伪指令 118
5.3 ARM汇编格式 121
5.3.1 ARM汇编语言的语句格式 122
5.3.2 ARM汇编语言的程序格式 129
5.4 ARM汇编语言程序设计举例 130
本章小结 139
思考题 139
第6章 C与ARM汇编语言的混合编程 140
6.1 内联汇编和嵌入式汇编程序 140
6.1.1 内联汇编程序 141
6.1.2 嵌入式汇编程序 149
6.1.3 内联汇编代码与嵌入式汇编代码之间的差异 156
6.2 在汇编程序中访问C全局变量 157
6.3 汇编程序及C程序的相互调用实例 158
6.4 ARM处理器上高效的C编程 162
本章小结 167
思考题 167
第7章 基于ARM的嵌入式系统设计实例 168
7.1 熟悉Linux开发环境 169
一、实验目的 169
二、实验内容 169
三、预备知识 169
四、实验设备及工具 169
五、实验原理 169
六、实验步骤 171
思考题 174
7.2 多线程应用程序设计 174
一、实验目的 174
二、实验内容 175
三、预备知识 175
四、实验设备及工具 175
五、实验原理 175
六、实验步骤 182
思考题 186
7.3 串行端口程序设计 186
一、实验目的 186
二、实验内容 186
三、预备知识 186
四、实验设备及工具 186
五、实验原理 187
六、实验步骤 193
思考题 194
7.4 嵌入式Web服务器实验 194
一、实验目的 194
二、实验内容 194
三、预备知识 194
四、实验设备及工具 194
五、实验原理 195
六、各个模块设计 199
七、实验步骤 205
思考题 205
7.5 基于TCP协议的网络传输实验 205
一、实验目的 205
二、实验内容 206
三、预备知识 206
四、实验设备及工具 206
五、实验原理 206
六、实验步骤 211
思考题 213
参考文献 214