第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 AM29LV 160D芯片介绍 160
9.2.2 AM29LV 160D字编程操作 161
9.2.3 AM29LV 160D扇区/块擦除操作 162
9.2.4 AM29LV 160D芯片擦除操作 163
9.2.5 AM29LV 160D与S5PC100的接口电路 163
9.2.6 AM29LV 160D存储器的程序设计 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 S5PC 100 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 S5PC 100看门狗定时器 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 S5PC100A/D转换器 200
11.2.1 S5PC100A/D转换器概述 200
11.2.2 S5PC100A/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章 CAM I F接口技术 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