《ARM处理器开发详解》是2012年出版的图书,作者是刘洪涛,邹南。
基本介绍
- 作者:刘洪涛 / 邹南
- ISBN:9787121177149
- 页数:274
- 定价:49.00元
- 出版时间:2012-9
- 装帧:平装
- 副标题:ARM处理器开发详解
内容介绍
《高等院校嵌入式人才培养规划教材·ARM处理器开发详解:基于ARM Cortex-A8处理器的开发设计》内容简介:作为一种32位高性能、低成本的嵌入式RISC微处理器,ARM目前已经成为套用最广泛的嵌入式处理器。目前Cortex-A系列处理器已经占据了大部分中高端产品市场。《高等院校嵌入式人才培养规划教材·ARM处理器开发详解:基于ARM Cortex-A8处理器的开发设计》在全面介绍Cortex-A8处理器的体系结构、编程模型、指令系统及开发环境的同时,以基于Cortex-A8的套用处理器——S5PC100为核心,详细介绍了系统的设计及相关接口技术。接口技术涵盖了I/O、中断、串口、存储器、PWM、A/D、DMA、IIC、SPI、Camera、LCD等,并提供了大量的实验例程。
作品目录
第1章 嵌入式系统基础知识 1
1.1 嵌入式系统概述 1
1.1.1 嵌入式系统简介 1
1.1.2 嵌入式系统的特点 2
1.1.3 嵌入式系统的发展 3
1.2 嵌入式系统的组成 5
1.2.1 嵌入式系统硬体组成 5
1.2.2 嵌入式系统软体组成 6
1.3 嵌入式作业系统举例 6
1.3.1 商业版嵌入式作业系统 7
1.3.2 开源版嵌入式作业系统 7
1.4 嵌入式系统开发概述 8
1.5 学好微处理器在嵌入式学习中的重要性 14
1.6 本章小结 16
1.7 思考题 16
第2章 ARM技术概述 17
2.1 ARM体系结构的技术特徵及发展 17
2.1.1 ARM公司简介 17
2.1.2 ARM技术特徵 18
2.1.3 ARM体系架构的发展 19
2.2 ARM微处理器简介 20
2.2.1 ARM9 处理器系列 21
2.2.2 ARM9E 处理器系列 22
2.2.3 ARM11 处理器系列 22
2.2.4 SecurCore 处理器系列 23
2.2.5 StrongARM和Xscale 处理器系列 23
2.2.6 MPCore 处理器系列 23
2.2.7 Cortex处理器系列 24
2.2.8 最新ARM套用处理器发展现状 26
2.3 ARM 微处理器结构 27
2.4 ARM 微处理器的套用选型 27
2.4.1 ARM晶片选择的一般原则 28
2.4.2 选择一款适合ARM教学的CPU 28
2.5 CORTEX-A8内部功能及特点 31
2.6 数据类型 32
2.6.1 ARM的基本数据类型 32
2.6.2 浮点数据类型 33
2.6.3 存储器大/小端 33
2.7 CORTEX-A8核心工作模式 34
2.8 CORTEX-A8存储系统 35
2.8.1 协处理器(CP15) 36
2.8.2 存储管理单元(MMU) 37
2.8.3 高速缓冲存储器(Cache) 37
2.9 流水线 37
2.9.1 流水线的概念与原理 37
2.9.2 流水线的分类 38
2.9.3 影响流水线性能的因素 40
2.10 暂存器组织 40
2.11 程式状态暂存器 43
2.12 三星S5PC100处理器介绍 46
2.13 FS_S5PC100开发平台介绍 47
2.14 本章小结 49
2.15 练习题 50
第3章 ARM微处理器的指令系统 51
3.1 ARM处理器的定址方式 51
3.1.1 数据处理指令定址方式 51
3.1.2 记忆体访问指令定址方式 53
3.2 ARM处理器的指令集 55
3.2.1 数据操作指令 55
3.2.2 乘法指令 62
3.2.3 Load/Store指令 65
3.2.4 跳转指令 71
3.2.5 状态操作指令 74
3.2.6 协处理器指令 76
3.2.7 异常产生指令 80
3.2.8 其他指令介绍 81
3.3 本章小结 83
3.4 思考题 83
第4章 ARM彙编语言程式设计 85
4.1 GNU ARM彙编器支持的伪操作 85
4.1.1 伪操作概述 85
4.1.2 数据定义(Data Definition)伪操作 85
4.1.3 彙编控制伪操作 87
4.1.4 杂项伪操作 89
4.2 ARM彙编器支持的伪指令 89
4.2.1 ADR伪指令 89
4.2.2 ADRL伪指令 90
4.2.3 LDR伪指令 91
4.3 GNU ARM 彙编语言的语句格式 92
4.4 ARM 彙编语言的程式结构 94
4.4.1 彙编语言的程式格式 94
4.4.2 彙编语言子程式调用 95
4.4.3 过程调用标準AAPCS 95
4.4.4 彙编语言程式设计举例 97
4.5 彙编语言与C语言的混合编程 98
4.5.1 GNU ARM内联彙编 98
4.5.2 混合编程调用举例 100
4.6 本章小结 102
4.7 思考题 102
第5章 ARM开发及环境搭建 103
5.1 仿真器简介 103
5.1.1 FS-JTAG仿真器介绍 103
5.1.2 ULINK介绍 104
5.2 开发环境搭建 105
5.3 ECLIPSE FOR ARM 使用 108
5.4 编译工程 109
5.5 调试工程 110
5.5.1 配置FS-JTAG 调试工具 110
5.5.2 配置调试工具 111
5.6 本章小结 114
5.7 练习题 114
第6章 GPIO编程 115
6.1 GPIO功能介绍 115
6.2 S5PC100晶片的GPIO控制器详解 115
6.2.1 特性 115
6.2.2 GPIO分组预览 116
6.2.3 S5PC100的GPIO常用暂存器分类 116
6.2.4 GPIO功能描述 116
6.2.5 S5PC100 I/O接口常用暂存器详解 117
6.2.6 GPIO数据暂存器 118
6.3 S5PC100 GPIO的套用 118
6.3.1 电路连线 119
6.3.2 暂存器设定 119
6.3.3 程式编写 119
6.4 本章小结 120
6.5 练习题 120
第7章 ARM异常及中断处理 121
7.1 ARM异常中断处理概述 121
7.2 ARM体系异常种类 122
7.3 ARM异常的优先权 127
7.4 ARM处理器模式和异常 127
7.5 ARM异常回响和处理程式返回 128
7.5.1 中断回响的概念 128
7.5.2 ARM异常回响流程 128
7.5.3 从异常处理程式中返回 129
7.6 ARM的SWI异常中断处理程式设计 131
7.7 FIQ和IRQ中断 133
7.7.1 中断分支 133
7.7.2 S5PC100中断机制分析 134
7.7.3 S5PC100中断处理程式实例 138
7.8 本章小结 140
7.9 练习题 140
第8章 串列通信接口 141
8.1 串列通信概述 141
8.1.1 串列通信与并行通信概念 141
8.1.2 异步串列方式的特点 141
8.1.3 异步串列方式的数据格式 142
8.1.4 同步串列方式的特点 142
8.1.5 同步串列方式的数据格式 142
8.1.6 比特率、比特率因子与位周期 143
8.1.7 RS-232C串口规範 143
8.1.8 RS-232C接线方式 145
8.2 S5PC100异步串列通信 145
8.2.1 S5PC100串口控制器概述 145
8.2.2 UART暂存器详解 147
8.3 接口电路与程式设计 150
8.3.1 电路连线 150
8.3.2 程式编写 150
8.3.3 调试与运行结果 152
8.3.4 红外收发程式 154
8.4 本章小结 157
8.5 练习题 157
第9章 存储器接口 158
9.1 FLASH ROM介绍 158
9.2 NOR FLASH操作 160
9.2.1 AM29LV160D晶片介绍 160
9.2.2 AM29LV160D字编程操作 161
9.2.3 AM29LV160D扇区/块擦除操作 162
9.2.4 AM29LV160D晶片擦除操作 163
9.2.5 AM29LV160D与S5PC100的接口电路 163
9.2.6 AM29LV160D存储器的程式设计 164
9.3 NAND FLASH操作 166
9.3.1 晶片介绍 166
9.3.2 读操作过程 167
9.3.3 擦除操作过程 168
9.3.4 写操作过程 169
9.4 S5PC100中NAND Flash控制器的操作 170
9.4.1 S5PC100 NAND Flash控制器概述 170
9.4.2 S5PC100 NAND Flash控制器暂存器详解 170
9.5 S5PC100 NAND Flash接口电路与程式设计 172
9.5.1 K9F2G080U和S5PC100的接口电路 172
9.5.2 S5PC100控制K9F2G080U的程式设计 173
9.6 本章小结 176
9.7 练习题 176
第10章 定时器与RTC 177
10.1 S5PC100 PWM定时器 177
10.1.1 PWM定时器概述 177
10.1.2 PWM定时器特点 178
10.1.3 PWM定时器的暂存器 179
10.1.4 PWM定时器操作示例 184
10.2 S5PC100看门狗定时器 185
10.2.1 S5PC100看门狗定时器概述 185
10.2.2 看门狗定时器暂存器 186
10.2.3 看门狗定时器程式编写 187
10.3 RTC 190
10.3.1 RTC介绍 190
10.3.2 RTC控制器 190
10.3.3 RTC控制器暂存器详解 191
10.3.4 RTC测试例子 192
10.4 本章小结 193
10.5 练习题 193
第11章 A/D转换器 194
11.1 A/D转换器原理 194
11.1.1 A/D转换基础 194
11.1.2 A/D转换的技术指标 195
11.1.3 A/D转换器类型 196
11.1.4 A/D转换的一般步骤 200
11.2 S5PC100 A/D转换器 200
11.2.1 S5PC100 A/D转换器概述 200
11.2.2 S5PC100 A/D控制器暂存器 201
11.3 A/D转换器套用举例 203
11.3.1 电路连线 203
11.3.2 程式编写 203
11.3.3 调试与运行结果 204
11.4 本章小结 205
11.5 练习题 205
第12章 DMA(PL330)控制器 206
12.1 PL330原理概述 206
12.1.1 DMAC简述 206
12.1.2 S5PC100下的DMAC模型 207
12.1.3 PL330简述 208
12.2 PL330详解 209
12.2.1 PL330指令集 209
12.2.2 相关暂存器详解 215
12.3 S5PC100 PL330测试例子 217
12.4 本章小结 221
12.5 练习题 221
第13章 LCD接口设计 222
13.1 LCD控制器 222
13.1.1 LCD控制器介绍 222
13.1.2 S5PC100的 LCD控制器介绍 223
13.1.3 S5PC100的LCD控制器操作 224
13.1.4 LCD控制器暂存器 226
13.2 LCD控制器实例 231
13.3 本章小结 235
13.4 练习题 235
第14章 CAMIF接口技术 236
14.1 OV9650介绍 236
14.1.1 晶片功能描述 236
14.1.2 OV9650物理参数 237
14.1.3 OV9650暂存器详解 238
14.2 SCCB汇流排 240
14.2.1 SCCB协定介绍 240
14.2.2 SCCB的汇流排编程 241
14.3 CAMIF接口详解 242
14.3.1 基于S5PC100的CAMIF接口介绍 242
14.3.2 S5PC100 CAMIF暂存器详解 244
14.3.3 CAMIF操作案例 247
14.4 本章小结 251
14.5 练习题 251
第15章 SPI接口 252
15.1 SPI汇流排协定理论 252
15.1.1 协定简介 252
15.1.2 协定内容 252
15.2 SPI控制器详解 254
15.2.1 S5PC100的SPI控制器简介 254
15.2.2 时钟源控制 255
15.2.3 暂存器详解 255
15.3 SPI开发例子 257
15.4 本章小结 264
15.5 练习题 264
第16章 I2C接口 265
16.1 I2C汇流排 265
16.1.1 I2C汇流排介绍 265
16.1.2 I2C汇流排术语 265
16.1.3 I2C汇流排位传输 266
16.1.4 I2C汇流排数据传输 266
16.1.5 I2C汇流排定址方式 267
16.1.6 快速和高速模式 268
16.2 I2C汇流排控制器 269
16.2.1 S5PC100下的I2C控制器介绍 269
16.2.2 I2C汇流排控制暂存器详解 269
16.3 I2C汇流排的实际套用 270
16.3.1 套用分析 270
16.3.2 代码实现 272
16.4 本章小结 274
16.5 练习题 274
参考文献 275
1.1 嵌入式系统概述 1
1.1.1 嵌入式系统简介 1
1.1.2 嵌入式系统的特点 2
1.1.3 嵌入式系统的发展 3
1.2 嵌入式系统的组成 5
1.2.1 嵌入式系统硬体组成 5
1.2.2 嵌入式系统软体组成 6
1.3 嵌入式作业系统举例 6
1.3.1 商业版嵌入式作业系统 7
1.3.2 开源版嵌入式作业系统 7
1.4 嵌入式系统开发概述 8
1.5 学好微处理器在嵌入式学习中的重要性 14
1.6 本章小结 16
1.7 思考题 16
第2章 ARM技术概述 17
2.1 ARM体系结构的技术特徵及发展 17
2.1.1 ARM公司简介 17
2.1.2 ARM技术特徵 18
2.1.3 ARM体系架构的发展 19
2.2 ARM微处理器简介 20
2.2.1 ARM9 处理器系列 21
2.2.2 ARM9E 处理器系列 22
2.2.3 ARM11 处理器系列 22
2.2.4 SecurCore 处理器系列 23
2.2.5 StrongARM和Xscale 处理器系列 23
2.2.6 MPCore 处理器系列 23
2.2.7 Cortex处理器系列 24
2.2.8 最新ARM套用处理器发展现状 26
2.3 ARM 微处理器结构 27
2.4 ARM 微处理器的套用选型 27
2.4.1 ARM晶片选择的一般原则 28
2.4.2 选择一款适合ARM教学的CPU 28
2.5 CORTEX-A8内部功能及特点 31
2.6 数据类型 32
2.6.1 ARM的基本数据类型 32
2.6.2 浮点数据类型 33
2.6.3 存储器大/小端 33
2.7 CORTEX-A8核心工作模式 34
2.8 CORTEX-A8存储系统 35
2.8.1 协处理器(CP15) 36
2.8.2 存储管理单元(MMU) 37
2.8.3 高速缓冲存储器(Cache) 37
2.9 流水线 37
2.9.1 流水线的概念与原理 37
2.9.2 流水线的分类 38
2.9.3 影响流水线性能的因素 40
2.10 暂存器组织 40
2.11 程式状态暂存器 43
2.12 三星S5PC100处理器介绍 46
2.13 FS_S5PC100开发平台介绍 47
2.14 本章小结 49
2.15 练习题 50
第3章 ARM微处理器的指令系统 51
3.1 ARM处理器的定址方式 51
3.1.1 数据处理指令定址方式 51
3.1.2 记忆体访问指令定址方式 53
3.2 ARM处理器的指令集 55
3.2.1 数据操作指令 55
3.2.2 乘法指令 62
3.2.3 Load/Store指令 65
3.2.4 跳转指令 71
3.2.5 状态操作指令 74
3.2.6 协处理器指令 76
3.2.7 异常产生指令 80
3.2.8 其他指令介绍 81
3.3 本章小结 83
3.4 思考题 83
第4章 ARM彙编语言程式设计 85
4.1 GNU ARM彙编器支持的伪操作 85
4.1.1 伪操作概述 85
4.1.2 数据定义(Data Definition)伪操作 85
4.1.3 彙编控制伪操作 87
4.1.4 杂项伪操作 89
4.2 ARM彙编器支持的伪指令 89
4.2.1 ADR伪指令 89
4.2.2 ADRL伪指令 90
4.2.3 LDR伪指令 91
4.3 GNU ARM 彙编语言的语句格式 92
4.4 ARM 彙编语言的程式结构 94
4.4.1 彙编语言的程式格式 94
4.4.2 彙编语言子程式调用 95
4.4.3 过程调用标準AAPCS 95
4.4.4 彙编语言程式设计举例 97
4.5 彙编语言与C语言的混合编程 98
4.5.1 GNU ARM内联彙编 98
4.5.2 混合编程调用举例 100
4.6 本章小结 102
4.7 思考题 102
第5章 ARM开发及环境搭建 103
5.1 仿真器简介 103
5.1.1 FS-JTAG仿真器介绍 103
5.1.2 ULINK介绍 104
5.2 开发环境搭建 105
5.3 ECLIPSE FOR ARM 使用 108
5.4 编译工程 109
5.5 调试工程 110
5.5.1 配置FS-JTAG 调试工具 110
5.5.2 配置调试工具 111
5.6 本章小结 114
5.7 练习题 114
第6章 GPIO编程 115
6.1 GPIO功能介绍 115
6.2 S5PC100晶片的GPIO控制器详解 115
6.2.1 特性 115
6.2.2 GPIO分组预览 116
6.2.3 S5PC100的GPIO常用暂存器分类 116
6.2.4 GPIO功能描述 116
6.2.5 S5PC100 I/O接口常用暂存器详解 117
6.2.6 GPIO数据暂存器 118
6.3 S5PC100 GPIO的套用 118
6.3.1 电路连线 119
6.3.2 暂存器设定 119
6.3.3 程式编写 119
6.4 本章小结 120
6.5 练习题 120
第7章 ARM异常及中断处理 121
7.1 ARM异常中断处理概述 121
7.2 ARM体系异常种类 122
7.3 ARM异常的优先权 127
7.4 ARM处理器模式和异常 127
7.5 ARM异常回响和处理程式返回 128
7.5.1 中断回响的概念 128
7.5.2 ARM异常回响流程 128
7.5.3 从异常处理程式中返回 129
7.6 ARM的SWI异常中断处理程式设计 131
7.7 FIQ和IRQ中断 133
7.7.1 中断分支 133
7.7.2 S5PC100中断机制分析 134
7.7.3 S5PC100中断处理程式实例 138
7.8 本章小结 140
7.9 练习题 140
第8章 串列通信接口 141
8.1 串列通信概述 141
8.1.1 串列通信与并行通信概念 141
8.1.2 异步串列方式的特点 141
8.1.3 异步串列方式的数据格式 142
8.1.4 同步串列方式的特点 142
8.1.5 同步串列方式的数据格式 142
8.1.6 比特率、比特率因子与位周期 143
8.1.7 RS-232C串口规範 143
8.1.8 RS-232C接线方式 145
8.2 S5PC100异步串列通信 145
8.2.1 S5PC100串口控制器概述 145
8.2.2 UART暂存器详解 147
8.3 接口电路与程式设计 150
8.3.1 电路连线 150
8.3.2 程式编写 150
8.3.3 调试与运行结果 152
8.3.4 红外收发程式 154
8.4 本章小结 157
8.5 练习题 157
第9章 存储器接口 158
9.1 FLASH ROM介绍 158
9.2 NOR FLASH操作 160
9.2.1 AM29LV160D晶片介绍 160
9.2.2 AM29LV160D字编程操作 161
9.2.3 AM29LV160D扇区/块擦除操作 162
9.2.4 AM29LV160D晶片擦除操作 163
9.2.5 AM29LV160D与S5PC100的接口电路 163
9.2.6 AM29LV160D存储器的程式设计 164
9.3 NAND FLASH操作 166
9.3.1 晶片介绍 166
9.3.2 读操作过程 167
9.3.3 擦除操作过程 168
9.3.4 写操作过程 169
9.4 S5PC100中NAND Flash控制器的操作 170
9.4.1 S5PC100 NAND Flash控制器概述 170
9.4.2 S5PC100 NAND Flash控制器暂存器详解 170
9.5 S5PC100 NAND Flash接口电路与程式设计 172
9.5.1 K9F2G080U和S5PC100的接口电路 172
9.5.2 S5PC100控制K9F2G080U的程式设计 173
9.6 本章小结 176
9.7 练习题 176
第10章 定时器与RTC 177
10.1 S5PC100 PWM定时器 177
10.1.1 PWM定时器概述 177
10.1.2 PWM定时器特点 178
10.1.3 PWM定时器的暂存器 179
10.1.4 PWM定时器操作示例 184
10.2 S5PC100看门狗定时器 185
10.2.1 S5PC100看门狗定时器概述 185
10.2.2 看门狗定时器暂存器 186
10.2.3 看门狗定时器程式编写 187
10.3 RTC 190
10.3.1 RTC介绍 190
10.3.2 RTC控制器 190
10.3.3 RTC控制器暂存器详解 191
10.3.4 RTC测试例子 192
10.4 本章小结 193
10.5 练习题 193
第11章 A/D转换器 194
11.1 A/D转换器原理 194
11.1.1 A/D转换基础 194
11.1.2 A/D转换的技术指标 195
11.1.3 A/D转换器类型 196
11.1.4 A/D转换的一般步骤 200
11.2 S5PC100 A/D转换器 200
11.2.1 S5PC100 A/D转换器概述 200
11.2.2 S5PC100 A/D控制器暂存器 201
11.3 A/D转换器套用举例 203
11.3.1 电路连线 203
11.3.2 程式编写 203
11.3.3 调试与运行结果 204
11.4 本章小结 205
11.5 练习题 205
第12章 DMA(PL330)控制器 206
12.1 PL330原理概述 206
12.1.1 DMAC简述 206
12.1.2 S5PC100下的DMAC模型 207
12.1.3 PL330简述 208
12.2 PL330详解 209
12.2.1 PL330指令集 209
12.2.2 相关暂存器详解 215
12.3 S5PC100 PL330测试例子 217
12.4 本章小结 221
12.5 练习题 221
第13章 LCD接口设计 222
13.1 LCD控制器 222
13.1.1 LCD控制器介绍 222
13.1.2 S5PC100的 LCD控制器介绍 223
13.1.3 S5PC100的LCD控制器操作 224
13.1.4 LCD控制器暂存器 226
13.2 LCD控制器实例 231
13.3 本章小结 235
13.4 练习题 235
第14章 CAMIF接口技术 236
14.1 OV9650介绍 236
14.1.1 晶片功能描述 236
14.1.2 OV9650物理参数 237
14.1.3 OV9650暂存器详解 238
14.2 SCCB汇流排 240
14.2.1 SCCB协定介绍 240
14.2.2 SCCB的汇流排编程 241
14.3 CAMIF接口详解 242
14.3.1 基于S5PC100的CAMIF接口介绍 242
14.3.2 S5PC100 CAMIF暂存器详解 244
14.3.3 CAMIF操作案例 247
14.4 本章小结 251
14.5 练习题 251
第15章 SPI接口 252
15.1 SPI汇流排协定理论 252
15.1.1 协定简介 252
15.1.2 协定内容 252
15.2 SPI控制器详解 254
15.2.1 S5PC100的SPI控制器简介 254
15.2.2 时钟源控制 255
15.2.3 暂存器详解 255
15.3 SPI开发例子 257
15.4 本章小结 264
15.5 练习题 264
第16章 I2C接口 265
16.1 I2C汇流排 265
16.1.1 I2C汇流排介绍 265
16.1.2 I2C汇流排术语 265
16.1.3 I2C汇流排位传输 266
16.1.4 I2C汇流排数据传输 266
16.1.5 I2C汇流排定址方式 267
16.1.6 快速和高速模式 268
16.2 I2C汇流排控制器 269
16.2.1 S5PC100下的I2C控制器介绍 269
16.2.2 I2C汇流排控制暂存器详解 269
16.3 I2C汇流排的实际套用 270
16.3.1 套用分析 270
16.3.2 代码实现 272
16.4 本章小结 274
16.5 练习题 274
参考文献 275