第1章 ARM 微处理器概述………………………………………………………… 1
1.1 ARM 及相关技术简介……………………………………………………… 1
1.2 ARM 微处理器的应用领域及特点………………………………………… 2
1.3 ARM 微处理器系列………………………………………………………… 2
1.4 ARM 微处理器结构………………………………………………………… 13
1.5 ARM 微处理器的应用选型………………………………………………… 14
1.6 本章小结……………………………………………………………………… 16
1.7 练习题……………………………………………………………………… 16
第2章 ARM 微处理器的编程模型……………………………………………… 17
2.1 ARM 微处理器的工作状态………………………………………………… 17
2.2 ARM 体系结构的存储器格式……………………………………………… 18
2.3 指令长度和数据类型………………………………………………………… 19
2.4 处理器模式…………………………………………………………………… 19
2.5 寄存器组织…………………………………………………………………… 19
2.5.1 ARM 状态下的寄存器组织…………………………………………… 19
2.5.2 Thumb状态下的寄存器组织………………………………………… 22
2.5.3 程序状态寄存器………………………………………………………… 23
2.6 异 常………………………………………………………………………… 25
2.7 本章小结……………………………………………………………………… 29
2.8 练习题………………………………………………………………………… 29
第3章 ARM 微处理器的指令系统……………………………………………… 31
3.1 ARM 微处理器的指令集概述……………………………………………… 31
3.2 ARM 指令的寻址方式……………………………………………………… 33
3.3 ARM 指令集………………………………………………………………… 35
3.3.1 跳转指令………………………………………………………………… 35
3.3.2 数据处理指令…………………………………………………………… 37
3.3.3 乘法指令与乘加指令…………………………………………………… 41
3.3.4 程序状态寄存器访问指令……………………………………………… 43
3.3.5 加载/存储指令………………………………………………………… 44
3.3.6 批量数据加载/存储指令……………………………………………… 46
3.3.7 数据交换指令…………………………………………………………… 46
3.3.8 移位指令(操作)………………………………………………………… 47
3.3.9 协处理器指令…………………………………………………………… 48
3.3.10 异常产生指令………………………………………………………… 50
3.4 Thumb指令及应用………………………………………………………… 50
3.5 本章小结……………………………………………………………………… 51
3.6 练习题………………………………………………………………………… 52
第4章 ARM 程序设计基础……………………………………………………… 53
4.1 ARM 汇编器所支持的伪指令……………………………………………… 53
4.1.1 符号定义伪指令………………………………………………………… 53
4.1.2 数据定义伪指令………………………………………………………… 55
4.1.3 汇编控制伪指令………………………………………………………… 58
4.1.4 其他常用的伪指令……………………………………………………… 59
4.2 汇编语言的语句格式………………………………………………………… 64
4.2.1 在汇编语言程序中常用的符号………………………………………… 64
4.2.2 汇编语言程序中的表达式和运算符…………………………………… 65
4.3 汇编语言的程序结构………………………………………………………… 68
4.3.1 汇编语言的程序结构…………………………………………………… 68
4.3.2 汇编语言的子程序调用………………………………………………… 69
4.3.3 汇编语言程序示例……………………………………………………… 69
4.4 汇编语言模块的结构………………………………………………………… 72
4.4.1 汇编语言源文件的编排………………………………………………… 72
4.4.2 ARM 汇编语言模块的示例…………………………………………… 73
4.4.3 调用子例程……………………………………………………………… 74
4.4.4 条件执行………………………………………………………………… 75
4.4.5 使用条件执行及其示例………………………………………………… 76
4.4.6 Q 标记………………………………………………………………… 79
4.4.7 汇编语言与C/C++的混合编程…………………………………… 79
4.5 本章小结……………………………………………………………………… 80
4.6 练习题………………………………………………………………………… 81
第5章 ARM C语言程序设计基础………………………………………………… 82
5.1 嵌入式系统中的C语言编程基础………………………………………… 82
5.2 伪指令在嵌入式程序设计中的应用………………………………………… 83
5.3 嵌入式C语言程序设计中的函数及函数库……………………………… 86
5.4 嵌入式程序设计中常用的C语言语句…………………………………… 86
5.5 汇编语言与C/C++的混合编程………………………………………… 89
5.6 ATPCS规则………………………………………………………………… 93
5.7 本章小结……………………………………………………………………… 95
5.8 练习题………………………………………………………………………… 95
第6章 S3C6410系统设计与调试………………………………………………… 97
6.1 系统设计概述………………………………………………………………… 97
6.2 S3C6410概述………………………………………………………………… 98
6.2.1 S3C6410及片内外围简介……………………………………………… 98
6.2.2 S3C6410的引脚分布及信号描述…………………………………… 100
6.2.3 外部存储器接口……………………………………………………… 105
6.2.4 串行通信……………………………………………………………… 107
6.2.5 显示器控制…………………………………………………………… 109
6.3 存储器映射………………………………………………………………… 112
6.4 系统控制器………………………………………………………………… 113
6.4.1 时钟源………………………………………………………………… 114
6.4.2 锁相环………………………………………………………………… 115
6.4.3 ARM 和AXI/AHB/APB总线时钟发生器………………………… 116
6.4.4 MFC时钟发生器……………………………………………………… 118
6.4.5 显示时钟发生器(POST,LCD和Scaler)…………………………… 119
6.4.6 时钟开/关控制………………………………………………………… 120
6.5 S3C6410复位信号………………………………………………………… 120
6.5.1 温复位………………………………………………………………… 120
6.5.2 软件复位……………………………………………………………… 123
6.5.3 看门狗复位…………………………………………………………… 124
6.6 寄存器描述………………………………………………………………… 126
6.6.1 部分SFR寄存器……………………………………………………… 126
6.6.2 PLL控制寄存器……………………………………………………… 128
6.6.3 时钟源控制寄存器…………………………………………………… 130
6.7 系统的硬件选型与单元电路设计………………………………………… 132
6.7.1 电源电路……………………………………………………………… 132
6.7.2 晶振电路与复位电路………………………………………………… 132
6.7.3 Flash存储器接口电路……………………………………………… 133
6.7.4 SDRAM 接口电路…………………………………………………… 135
6.7.5 串行接口电路………………………………………………………… 139
6.7.6 I2C接口电路………………………………………………………… 140
6.7.7 JTAG接口电路……………………………………………………… 141
6.7.8 S3C6410与LCD接口设计…………………………………………… 142
6.8 硬件系统的调试…………………………………………………………… 147
6.8.1 电源、晶振及复位电路………………………………………………… 148
6.8.2 S3C6410及JTAG接口电路………………………………………… 148
6.8.3 SDRAM 接口电路的调试…………………………………………… 149
6.8.4 Flash接口电路的调试……………………………………………… 150
6.9 印刷电路板的设计注意事项……………………………………………… 151
6.9.1 电源质量与分配……………………………………………………… 151
6.9.2 同类型信号线的分布………………………………………………… 151
6.10 本章小结…………………………………………………………………… 152
6.11 练习题……………………………………………………………………… 152
第7章 通用GPIO 编程…………………………………………………………… 153
7.1 GPIO功能介绍…………………………………………………………… 153
7.2 S3C6410芯片的GPIO控制器详解……………………………………… 153
7.2.1 S3C6410GPIO常用寄存器分类…………………………………… 153
7.2.2 S3C6410I/O口常用寄存器详解…………………………………… 155
7.3 S3C6410GPIO的应用…………………………………………………… 175
7.3.1 电路连接……………………………………………………………… 175
7.3.2 寄存器设置…………………………………………………………… 175
7.4 本章小结…………………………………………………………………… 176
7.5 练习题……………………………………………………………………… 176
第8章 部件工作原理与编程示例………………………………………………… 177
8.1 嵌入式系统的程序设计方法……………………………………………… 177
8.2 UART控制器……………………………………………………………… 178
8.2.1 UART的工作方式…………………………………………………… 179
8.2.2 相关寄存器…………………………………………………………… 182
8.3 UART 接口应用举例……………………………………………………… 190
8.4 矢量中断控制器…………………………………………………………… 195
8.5 中断调用方法……………………………………………………………… 205
8.6 PWM 定时器……………………………………………………………… 207
8.6.1 PWM 的操作方式…………………………………………………… 209
8.6.2 S3C6410中的特殊功能寄存器……………………………………… 214
8.6.3 TINT_CSTAT ……………………………………………………… 218
8.7 RTC实时时钟……………………………………………………………… 219
8.7.1 RTC寄存器描述……………………………………………………… 221
8.7.2 RTC寄存器编程举例………………………………………………… 225
8.8 I2C总线接口……………………………………………………………… 226
8.8.1 I2C总线接口概述…………………………………………………… 226
8.8.2 I2C总线接口操作模式……………………………………………… 227
8.8.3 多主控器I2C总线控制寄存器(IICCON)…………………………… 231
8.8.4 I2C总线寄存器编程举例…………………………………………… 232
8.9 DMA 控制器……………………………………………………………… 234
8.9.1 DMA 控制器的特性………………………………………………… 235
8.9.2 DMA 源……………………………………………………………… 236
8.9.3 DMA 接口…………………………………………………………… 237
8.9.4 程序员的模式………………………………………………………… 240
8.9.5 DMA 寄存器描述…………………………………………………… 241
8.10 SPI控制器………………………………………………………………… 249
8.10.1 概 述………………………………………………………………… 249
8.10.2 SPI的操作…………………………………………………………… 250
8.10.3 SPI传输格式………………………………………………………… 252
8.10.4 SPI接口编程示例…………………………………………………… 256
8.11 BootLoader简介………………………………………………………… 262
8.11.1 BootLoader简介…………………………………………………… 262
8.11.2 启动方法……………………………………………………………… 264
8.11.3 检测系统的内存映射………………………………………………… 267
8.12 本章小结…………………………………………………………………… 269
8.13 练习题……………………………………………………………………… 270
第9章 S3C6410综合应用设计实例……………………………………………… 271
9.1 基于S3C6410光敏传感器系统设计实例………………………………… 271
9.1.1 基本原理……………………………………………………………… 271
9.1.2 协调器程序下载方法………………………………………………… 274
9.1.3 节点程序烧写和节点测试…………………………………………… 276
9.1.4 硬件电路原理图和部分程序代码…………………………………… 277
9.2 基于S3C6410温湿度传感器系统设计实例……………………………… 281
9.2.1 基本原理……………………………………………………………… 281
9.2.2 节点程序烧写和节点测试…………………………………………… 284
9.2.3 硬件电路原理图和部分程序代码…………………………………… 286
9.3 基于S3C6410电机和灯光传感器系统设计实例………………………… 294
9.3.1 基本原理……………………………………………………………… 294
9.3.2 节点程序烧写和节点测试…………………………………………… 294
9.2.3 硬件电路原理图和部分程序代码…………………………………… 296
9.4 基于S3C6410烟雾传感器系统设计实例………………………………… 298
9.4.1 基本原理……………………………………………………………… 298
9.4.2 节点程序烧写和节点测试…………………………………………… 298
9.4.3 硬件电路原理图和部分程序代码…………………………………… 300
9.5 基于S3C6410干簧管传感器系统实例…………………………………… 302
9.5.1 基本原理……………………………………………………………… 302
9.5.2 节点程序烧写和节点测试…………………………………………… 303
9.5.3 硬件电路原理图和部分程序代码…………………………………… 304
9.6 本章小结…………………………………………………………………… 306
9.7 练习题……………………………………………………………………… 307
第10章 RealView MDK 集成开发环境的使用………………………………… 308
10.1 RealView MDK集成开发环境组成介绍……………………………… 308
10.2 RealView MDK使用方法……………………………………………… 311
10.2.1 创建一个工程………………………………………………………… 311
10.2.2 编译、链接工程……………………………………………………… 313
10.3 程序调试…………………………………………………………………… 315
10.4 程序调试举例……………………………………………………………… 317
10.5 本章小结…………………………………………………………………… 321
10.6 练习题……………………………………………………………………… 321
参考文献……………………………………………………………………………… 322