第1章 ARM微处理器概述 1
1.1 ARM—— Advanced RISC Machines 1
1.2 ARM微处理器的应用领域 1
1.3 ARM微处理器系列 2
1.3.1 ARM核的命名规则 2
1.3.2体系结构的发展 3
1.3.3 ARM微处理器系列 3
1.4 ARM微处理器结构 6
1.5 ARM处理器的选型 8
习题 12
第2章 S3C2410A处理器 14
2.1 S3C2410A处理器 14
2.2 S3C2410A特点 15
2.3 S3C2410A内部结构 19
2.4 S3C2410A引脚分布 20
2.5 S3C2410A的引脚名称及功能 20
2.5.1引脚名称 20
2.5.2引脚功能 24
2.6 S3C2410A的专用寄存器分区表 29
习题 30
第3章 处理器工作模式 31
3.1处理器工作状态、空间 31
3.1.1处理器工作状态 31
3.1.2切换状态 31
3.1.3存储空间的格式 31
3.1.4数据类型 32
3.2处理器工作模式 32
3.2.1寄存器 33
3.2.2 ARM状态寄存器集 34
3.2.3 Thumb状态寄存器集 34
3.2.4程序寄存器状态 37
3.3 ARM处理器异常 39
3.3.1异常中断向量 40
3.3.2异常中断特点 40
3.3.3中断延迟 43
习题 45
第4章 ARM指令集 46
4.1精简指令集RISC和复杂指令集CISC 46
4.2 ARM处理器寻址方式 47
4.3 ARM指令集 51
4.3.1指令格式 51
4.3.2 ARM存储器访问指令 53
4.3.3 ARM数据处理指令 60
4.3.4乘法指令 65
4.3.5 ARM跳转指令 66
4.3.6 ARM协处理器指令 67
4.3.7 ARM杂项指令 70
4.3.8 ARM伪指令 73
习题 76
第5章 Thumb指令集及程序设计 78
5.1 Thumb指令集概述 78
5.2 Thumb指令 79
5.2.1 Thumb存储器访问指令 79
5.2.2 Thumb数据处理指令 82
5.2.3 Thumb跳转指令 91
5.2.4 Thumb杂项指令 92
5.2.5 Thumb伪指令 93
5.3 ARM伪指令 94
5.3.1符号定义伪指令 94
5.3.2数据定义伪指令 97
5.3.3报告伪指令 102
5.3.4汇编控制伪指令 104
5.3.5杂项伪指令 107
5.4 ARM汇编程序设计 114
5.4.1 ARM汇编的一些规范 114
5.4.2简单程序设计 118
5.5 C与汇编混合编程 124
5.5.1内嵌汇编 124
5.5.2内嵌汇编的指令用法 126
5.5.3内嵌汇编器与armasm汇编器的差异 127
5.5.4 C与汇编相互调用 130
5.5.5 C程序调用汇编程序 131
5.5.6汇编程序调用C程序 132
习题 133
第6章 ARM程序设计 134
6.1.1循环程序的结构 134
6.1.2循环程序设计方法 135
6.1.3分支程序的设计 136
6.1.4 C程序中调用汇编程序 137
6.1.5 ARM状态与Thumb状态切换程序 138
6.1.6 SWI程序的编写 140
习题 145
第7章 存储器控制 146
7.1 S3C2410A存储控制器 146
7.2存储控制器的功能描述 149
7.2.1 Bank0总线宽度 149
7.2.2 S3C2410A与存储器的连接 149
7.2.3 S3C2410A的工作时序 152
7.3同步存储器K4S561632 154
7.3.1同步存储器K4S561632的特征 155
7.3.2功能方框图 156
7.3.3工作频率 156
7.3.4引脚配置 157
习题 158
第8章 NAND闪存芯片 159
8.1闪存的物理特性 159
8.2 K9F1208U0M NAND闪存特点 160
8.3 K9F1208U0M闪存引脚及功能 161
8.4 NAND闪存的内部组织、数据传送、内部逻辑结构 162
8.5 NAND闪存的指令设置 164
8.6 K9F120存储分布 164
8.7 K9F1208实现原理 165
8.7.1 NAND闪存的写入操作 165
8.7.2 NAND闪存的擦除和读操作 167
8.7.3读器件的ID号 169
8.7.4 S3C2410A的NAND闪存控制器 170
8.7.5 NAND闪存编程实现 171
习题 178
第9章 时钟与电源管理 179
9.1时钟与电源管理 179
9.2时钟的功能描述 179
9.3时钟锁相环 181
9.4时钟控制逻辑 182
9.5电源控制 185
9.6看门狗定时器 187
习题 189
第10章 脉宽调制定时器 190
10.1脉宽调制的基本知识 190
10.2 S3C2410A脉宽调制定时器 191
10.3定时器操作步骤 194
10.4脉宽调制 195
10.5脉宽调制定时器的应用 197
10.5.1脉宽调制应用电路图 197
10.5.2实现程序 198
习题 200
第11章 直接存储器访问 201
11.1 S3C2410A直接存储器访问控制器概述 201
11.2基本的DMA时序 202
11.3 S3C2410A DMA控制器的应用实例 205
习题 209
第12章 S3 C2410A液晶控制器和ADC控制器 210
12.1液晶屏的基本知识 210
12.1.1液晶概述 210
12.1.2液晶显示器的种类 210
12.1.3 STN屏和TFT屏比较 211
12.1.4 LCD屏的参数 212
12.2 S3C2410A液晶LCD控制器 212
12.2.1 S3C2410A支持STN和TFT显示器 212
12.2.2支持STN和TFT显示器的特点 212
12.2.3 S3C2410A液晶屏控制器的硬件特点 213
12.3液晶控制器内部结构及外部引脚 213
12.3.1液晶控制器内部结构 213
12.3.2外部引脚 214
12.4 S3C2410A的STN型LCD控制操作 215
12.4.1脉冲发生器 215
12.4.2视频操作 216
12.4.3抖动和帧频控制 217
12.4.4 LCD控制器显示扫描类型 218
12.4.5内存中显示数据格式 219
12.5时序要求 220
12.6 LCD应用编程 220
习题 224
第13章 S3C2410A触摸屏的控制 225
13.1触摸屏的概述 225
13.2触摸屏的主要类型 225
13.2.1电阻式触摸屏 225
13.2.2红外线触摸屏 227
13.2.3电容式触摸屏 228
13.2.4表面声波触摸屏 229
13.3 S3C2410A的ADC和触摸屏接口 231
13.3.1 S3C2410A触摸屏控制器的概述 231
13.3.2 S3C2410A触摸屏控制器内部结构 232
13.3.3 S3C2410A触摸屏接口举例 232
13.3.4功能描述 233
13.3.5触摸屏的应用编程 234
13.4 S3C2410A触摸屏的控制程序 235
习题 237
第14章 S3 C2410A硬件平台的设计 238
14.1 ARM9硬件平台概述 238
14.2硬件平台的逻辑结构 238
14.3硬件平台的组件 239
14.4存储器 242
14.4.1 NOR闪存 242
14.4.2 NAND闪存 242
14.4.3同步存储器SDRAM 243
14.5网络控制器 CS8900A 245
14.6 S3C2410A的硬件平台原理图 245
14.6.1 S3C2410A CPU模块 245
14.6.2同步存储器的连接 246
14.6.3 NOR闪存和 NAND闪存的连接 246
14.6.4网络控制器CS8900A的连接 251
14.6.5电源模块 251
14.6.6 LCD驱动模块及触摸屏控制连接 251
14.6.7 USB、网络接口及红外连接 251
14.6.8 VGA显示连接 257
14.6.9按键、LED灯和复位电路 257
14.6.10串行口 257
14.6.11硬件平台模块总图 257
习题 257
第15章 ARM ADS集成开发环境的使用 262
15.1 ADS集成开发环境组成介绍 262
15.1.1命令行开发工具 262
15.1.2 ARM运行时库 268
15.1.3 GUI开发环境 269
15.1.4实用程序 272
15.1.5支持的软件 272
15.2使用ADS创建工程 273
15.2.1建立一个工程 273
15.2.2编译和链接工程 277
15.2.3使用命令行工具编译应用程序 282
15.3用AXD进行代码调试 284
习题 288
附录A ARM指令集 289
附录B Thumb指令集 292
附录C 伪指令集 295
参考文献 299