描述
开 本: 16开纸 张: 胶版纸包 装: 平装-胶订是否套装: 否国际标准书号ISBN: 9787115317414丛书名: 高等院校嵌入式人才培养规划教材
作者刘洪涛是著名的嵌入式金牌讲师
本书可作为高等院校或高等职业院校电子、通信、自动化、计算机等专业的ARM体系结构、接口技术课程的教材,也可作为相关嵌入式开发人员的参考书。
第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 商业版嵌入式操作系统 6
1.3.2 开源版嵌入式操作系统 7
1.4 嵌入式系统开发概述 8
小结 13
思考与练习 13
第2章 ARM技术概述 14
2.1 ARM体系结构的技术特征及发展 14
2.1.1 ARM公司简介 14
2.1.2 ARM技术特征 15
2.1.3 ARM体系结构的发展 16
2.2 ARM微处理器简介 18
2.2.1 ARM7处理器系列 19
2.2.2 ARM9处理器系列 19
2.2.3 ARM9E 处理器系列 20
2.2.4 ARM11处理器系列 20
2.2.5 SecurCore处理器系列 20
2.2.6 StrongARM和Xscale处理器系列 21
2.2.7 MPCore处理器系列 21
2.2.8 Cortex处理器系列 21
2.3 ARM微处理器结构 23
2.4 ARM微处理器的应用选型 23
2.4.1 ARM芯片选择的一般原则 24
2.4.2 选择一款适合教学的ARM芯片 24
2.5 Cortex-A8内部功能及特点 28
2.6 数据类型 28
2.6.1 ARM的基本数据类型 28
2.6.2 浮点数据类型 29
2.6.3 存储器大/小端 29
2.7 Cortex-A8内核工作模式 30
2.8 Cortex-A8存储系统 31
2.8.1 协处理器 32
2.8.2 存储管理单元 33
2.8.3 高速缓冲存储器 33
2.8.4 NEON技术 34
2.8.5 安全域(TrustZone) 34
2.9 流水线 34
2.9.1 流水线的概念与原理 34
2.9.2 流水线的分类 35
2.9.3 影响流水线性能的因素 36
2.10 寄存器组织 37
2.11 程序状态寄存器 39
2.12 SAMSUNG S5PC100处理器介绍 41
小结 43
思考与练习 43
第3章 ARM的指令集合 44
3.1 ARM指令集 44
3.1.1 数据操作指令 44
3.1.2 乘法指令 51
3.1.3 Load/Store指令 53
3.1.4 跳转指令 59
3.1.5 状态操作指令 62
3.1.6 协处理器指令 63
3.1.7 异常产生指令 65
3.2 ARM指令的寻址方式 67
小结 71
思考与练习 71
第4章 GNU汇编伪指令集 72
4.1 GNU汇编器的平台无关伪指令 72
4.1.1 伪指令概念 72
4.1.2 符号定义伪指令 73
4.1.3 数据定义伪指令 74
4.1.4 汇编控制伪操作 76
4.1.5 杂项伪操作 78
4.2 GNU汇编器支持的ARM伪指令 80
4.2.1 ADR伪指令 80
4.2.2 ADRL伪指令 80
4.2.3 LDR伪指令 81
4.3 ARM汇编语言的程序结构 82
4.3.1 汇编语言的程序格式 82
4.3.2 汇编语言的子程序调用 82
4.3.3 过程调用标准AAPCS/ATPCS 83
4.3.4 汇编语言程序设计举例 84
4.4 汇编语言与C语言的混合编程 84
4.4.1 GNU内联汇编 85
4.4.2 C和汇编的混合编程 87
小结 88
思考与练习 89
第5章 ARM集成开发环境搭建 90
5.1 FS-JTAG仿真器介绍 90
5.2 开发环境搭建 91
5.2.1 开发工具的安装 91
5.2.2 创建一个新工程 93
5.2.3 调试工程 95
小结 96
思考与练习 96
第6章 GPIO编程 97
6.1 GPIO功能介绍 97
6.2 S5PC100芯片的GPIO控制器介绍 98
6.2.1 特性 98
6.2.2 GPIO分组预览 98
6.2.3 S5PC100的GPIO常用寄存器分类 98
6.2.4 S5PC100 I/O接口常用寄存器详解 99
6.3 S5PC100的GPIO的实例 100
6.3.1 电路原理 101
6.3.2 寄存器设置 101
6.3.3 程序编写 101
小结 102
思考与练习 102
第7章 ARM系统时钟及编程 103
7.1 S5PC100时钟域的划分 103
7.2 S5PC100时钟的产生过程分析 104
7.2.1 时钟的产生 104
7.2.2 模块对应的时钟域 105
7.3 S5PC100时钟源的选择 105
7.3.1 时钟来自于外部引脚 105
7.3.2 时钟来自于时钟管理单元(CMU) 106
7.4 S5PC100时钟的配置 106
7.5 S5PC100时钟配置寄存器描述 108
7.6 S5PC100时钟源配置示例 109
小结 110
思考与练习 110
第8章 ARM异常处理及编程 111
8.1 ARM异常中断处理概述 111
8.2 ARM体系异常种类 112
8.3 ARM异常的优先级 116
8.4 ARM处理器模式和异常 117
8.5 ARM异常响应和处理程序返回 117
8.5.1 中断响应的概念 117
8.5.2 ARM异常响应流程 118
8.5.3 从异常处理程序中返回 119
8.6 ARM系统中异常中断处理程序的安装 121
8.7 ARM的SWI异常中断处理程序设计 121
8.8 FIQ和IRQ异常中断程序设计 124
8.9 基于Cortex-A8内核的S5PC100异常程序设计 125
8.9.1 S5PC100中断机制分析 125
8.9.2 S5PC100中断处理程序实例 128
小结 132
思考与练习 132
第9章 串行通信接口 133
9.1 串行通信 133
9.1.1 串行通信与并行通信的概念 133
9.1.2 异步串行方式的特点 134
9.1.3 异步串行方式的数据格式 134
9.1.4 同步串行方式的特点 134
9.1.5 同步串行方式的数据格式 134
9.1.6 比特率、比特率因子与位周期 135
9.1.7 RS-232C串口规范 135
9.1.8 RS-232C接线方式 137
9.2 S5PC100异步串行通信 137
9.2.1 S5PC100串口控制器概述 137
9.2.2 S5PC100串口控制器寄存器 138
9.3 串口发送接收程序示例 142
9.3.1 电路连接 142
9.3.2 程序的编写 142
9.3.3 调试与运行程序 145
小结 145
思考与练习 145
第10章 PWM定时器 146
10.1 S5PC100 PWM定时器 146
10.1.1 PWM定时器概述 146
10.1.2 PWM定时器特点 147
10.1.3 PWM定时器的寄存器 148
10.1.4 PWM定时器示例 152
10.2 S5PC100看门狗定时器 154
10.2.1 S5PC100看门狗定时器概述 154
10.2.2 看门狗定时器寄存器 155
10.2.3 看门狗定时器程序编写 156
小结 157
思考与练习 157
第11章 A/D转换器 158
11.1 A/D转换器原理 158
11.1.1 A/D转换基础 158
11.1.2 A/D转换的技术指标 159
11.1.3 A/D转换器类型 160
11.1.4 A/D转换的一般步骤 164
11.2 S5PC100 A/D转换器 164
11.2.1 S5PC100 A/D转换器概述 164
11.2.2 S5PC100 A/D控制器寄存器 165
11.3 A/D转换器示例 167
11.3.1 电路连接 167
11.3.2 程序的编写 167
11.3.3 调试与运行结果 168
小结 168
思考与练习 168
第12章 实时时钟RTC 169
12.1 RTC介绍 169
12.2 RTC控制器 170
12.3 RTC控制器寄存器详解 170
12.4 RTC应用示例 173
小结 174
思考与练习 174
第13章 I2C总线 175
13.1 I2C总线 175
13.1.1 I2C总线介绍 175
13.1.2 I2C总线术语 176
13.1.3 I2C总线位传输 176
13.1.4 I2C总线数据传输 177
13.1.5 I2C总线寻址方式 177
13.1.6 快速和高速模式 178
13.2 I2C总线控制器 179
13.2.1 S5PC100下的I2C控制器介绍 179
13.2.2 I2C总线控制寄存器详解 179
13.3 I2C总线应用示例 180
13.3.1 电路原理分析 180
13.3.2 代码实现 182
小结 183
思考与练习 183
第14章 存储器接口 184
14.1 Flash ROM介绍 184
14.2 NOR Flash操作 186
14.2.1 AM29LV160D芯片介绍 186
14.2.2 AM29LV160D字编程操作 187
14.2.3 AM29LV160D扇区/块擦除操作 188
14.2.4 AM29LV160D芯片擦除操作 188
14.2.5 AM29LV160D与S5PC100的接口电路 189
14.2.6 AM29LV160D存储器的程序设计 190
14.3 NAND Flash操作 192
14.3.1 芯片介绍 192
14.3.2 读操作过程 193
14.3.3 擦除操作过程 194
14.3.4 写操作过程 195
14.4 S5PC100中NAND Flash控制器的操作 195
14.4.1 S5PC100中NAND Flash控制器概述 195
14.4.2 S5PC100中NAND Flash控制器寄存器详解 196
14.5 S5PC100 NAND Flash接口电路与程序设计 198
14.5.1 K9F2G080U和S5PC100的接口电路 198
14.5.2 S5PC100控制K9F2G080U的程序设计 198
小结 202
思考与练习 202
第15章 SPI接口 203
15.1 SPI总线协议理论 203
15.1.1 协议简介 203
15.1.2 协议内容 203
15.2 SPI控制器详解 205
15.2.1 S5PC100的SPI控制器简介 205
15.2.2 时钟源控制 206
15.2.3 寄存器详解 206
15.3 SPI接口应用示例 208
小结 214
思考与练习 214
第16章 DMA控制器 215
16.1 PL330原理概述 215
16.1.1 DMAC简述 215
16.1.2 S5PC100下的DMAC模型 216
16.1.3 PL330简述 217
16.2 PL330详解 219
16.2.1 PL330指令集 219
16.2.2 相关寄存器详解 223
16.3 S5PC100 PL330示例 224
小结 228
思考与练习 228
第17章 LCD接口技术 229
17.1 LCD控制器原理概述 229
17.1.1 LCD控制器介绍 229
17.1.2 S5PC100的 LCD控制器介绍 230
17.1.3 S5PC100的LCD控制器操作 231
17.1.4 LCD控制器寄存器 233
17.2 LCD控制器应用示例 237
小结 241
思考与练习 241
第18章 CAMIF接口技术 242
18.1O V9650介绍 242
18.1.1 芯片功能描述 242
18.1.2 OV9650物理参数 243
18.1.3 OV9650寄存器详解 244
18.2 SCCB总线 246
18.2.1 SCCB协议介绍 246
18.2.2 SCCB的总线编程 247
18.3 CAMIF接口详解 248
18.3.1 基于S5PC100的CAMIF接口介绍 248
18.3.2 S5PC100 CAMIF寄存器详解 250
18.3.3 CAMIF应用示例 253
小结 256
思考与练习 256
参考文献 257
评论
还没有评论。