丛书序
前 言
第1章 ARM CPU概述
1.1 ARM处理器概述 2
1.1.1 ARM Ltd.简介 2
1.1.2 ARM特点 2
1.1.3 ARM应用领域 3
1.2 ARM处理器系列 4
1.3 ARM编程技术 8
1.4 ARM系统开发的软硬件选择 11
1.4.1 开发ARM的硬件选择 11
1.4.2 开发ARM的软件选择 13
1.5 本章小结 15
1.6 习题 15
第2章 ARM系统结构
2.1 ARM内核基本结构 18
2.1.1 ARM内核 18
2.1.2 ARM扩展功能块 19
2.1.3 ARM启动方式 21
2.2 ARM处理器模式 22
2.3 ARM寄存器 22
2.3.1 通用寄存器 23
2.3.2 程序状态寄存器 24
2.3.3 ARM状态下的寄存器 26
2.3.4 Thumb状态下的寄存器 27
2.4 ARM指令寻址方式 28
2.5 ARM存储系统 30
2.5.1 ARM存储方法 30
2.5.2 存储空间管理单元MMU 31
2.6 ARM流水线与时序 32
2.6.1 ARM流水线 32
2.6.2 ARM时序 33
2.7 ARM中断与异常 34
2.7.1 ARM异常类型 34
2.7.2 异常的响应及返回 35
2.7.3 异常的描述 36
2.7.4 异常的处理 38
2.8 本章小结 38
2.9 习题 38
第3章 ARM指令系统
3.1 ARM指令系统概述 40
3.1.1 ARM指令的分类 40
3.1.2 ARM指令的条件域 42
3.2 ARM定点指令集 43
3.2.1 跳转与中断指令 43
3.2.2 数据处理指令 45
3.2.3 寄存器访问指令 54
3.2.4 加载、存储指令 56
3.2.5 协处理器指令 59
3.2.6 伪指令 61
3.3 ARM浮点指令集 64
3.4 ARM 32位指令应用实例 68
3.5 本章小结 69
3.6 习题 69
3.7 上机练习 70
第4章 Thumb指令系统
4.1 Thumb指令系统概述 74
4.1.1 Thumb特点 74
4.1.2 Thumb-2指令集 74
4.2 Thumb指令集 75
4.2.1 Thumb指令与ARM指令的区别 75
4.2.2 Thumb 跳转指令及软中断指令 76
4.2.3 Thumb 数据处理指令 77
4.2.4 Thumb加载、存储指令 83
4.2.5 Thumb 伪指令 86
4.3 Thumb 16位指令应用实例 87
4.4 ARM与Thumb混合编程实例 88
4.5 本章小结 89
4.6 习题 90
4.7 上机练习 90
第5章 ARM汇编语言程序设计
5.1 ARM汇编伪操作 94
5.1.1 ARM伪指令 94
5.1.2 ARM内置变量、预定义寄存器 97
5.2 ARM 汇编程序设计规范 99
5.2.1 汇编语句格式 99
5.2.2 标号 100
5.2.3 符号 101
5.2.4 表达式和运算符 102
5.2.5 段定义和宏定义 103
5.3 常用的ARM汇编子程序 105
5.4 ARM汇编程序设计实例 109
5.5 本章小结 112
5.6 习题 112
5.7 上机练习 113
第6章 ARM高级语言程序设计
6.1 ARM C/C++编程设计 116
6.1.1 文件结构 116
6.1.2 数据类型 119
6.1.3 表达式与基本语句 121
6.1.4 函数 124
6.2 ARM C/C++编程实例 126
6.3 ARM C/C++与汇编混合编程 131
6.3.1 ATPCS规则 131
6.3.2 内嵌汇编 133
6.3.3 C与汇编相互调用 138
6.4 ARM C与汇编混合编程实例 140
6.5 本章小结 142
6.6 习题 143
6.7 上机练习 143
第7章 ARM嵌入式设计初步
7.1 ARM嵌入式设计概述 146
7.1.1 嵌入式系统设计要求 146
7.1.2 嵌入式系统开发平台 147
7.2 印刷电路板PCB设计 148
7.2.1 PCB设计的一般原则 148
7.2.2 ARM系统中高频布线 150
7.3 ARM嵌入式软件开发 151
7.3.1 嵌入式软件的启动代码 151
7.3.2 嵌入式操作系统 153
7.4 ARM嵌入式软件开发过程 156
7.4.1 嵌入式软件的开发流程 156
7.4.2 交叉编译环境 157
7.4.3 编译、链接重定位和下载 158
7.4.4 调试 159
7.5 ARM嵌入式设计实例 161
7.6 本章小结 163
7.7 习题 163
7.8 上机练习 163
第8章 ARM系统开发
8.1 ARM开发工具概述 168
8.2 ARM Linux的GNU开发 170
8.2.1 Linux基础知识 170
8.2.2 GNU汇编器 172
8.2.3 GNU编译器 173
8.2.4 GNU make 175
8.2.5 GNU链接器 182
8.3 GNU开发ARM实例 183
8.4 ARM的ADS开发 185
8.4.1 ADS系统组成 185
8.4.2 Code Warrior IDE 187
8.4.3 命令行开发 195
8.4.4 ARM库函数 201
8.5 ADS开发ARM实例 203
8.6 本章小结 207
8.7 习题 207
8.8 上机练习 207
第9章 ARM系统调试
9.1 ARM调试方法概述 212
9.2 基于Linux的gdb调试 213
9.3 基于AXD的调试 218
9.4 辅助调试工具 223
9.5 ARM硬件调试实例 227
9.6 本章小结 231
9.7 习题 232
9.8 上机练习 232
第10章 ARM外围设备设计
10.1 ARM外围设备的设计方法 236
10.2 ARM外围设备编程 237
10.2.1 Flash的工作原理与编程 237
10.2.2 SDRAM的工作原理与编程 245
10.2.3 串口、以太网口的设计 249
10.2.4 其他相关模块设计 250
10.3 ARM外围设备设计实例 254
10.4 本章小结 261
10.5 习题 262
10.6 上机练习 262
第11章 ARM嵌入式Linux应用开发
11.1 嵌入式Linux开发流程 268
11.2 ARM嵌入式Linux开发 268
11.2.1 构造Linux下的ARM开发环境 269
11.2.2 安装Boot Loader 271
11.2.3 配置ARM Linux内核 284
11.2.4 创建根文件系统 288
11.2.5 构建嵌入式Linux系统的GUI环境 292
11.2.6 编写嵌入式Linux的设备驱动程序 294
11.3 ARM Linux开发实例 297
11.4 本章小结 300
11.5 习题 300
11.6 上机练习 301
附录A ARM芯片的应用选择
附录B ARM硬件原理图
附录C 术语汇编
附录D 部分思考练习题答案
参考文献