第1章 ARM技术简介 1
1.1 ARM处理器简介 1
1.1.1 ARM7系列微处理器 1
1.1.2 ARM9系列微处理器 2
1.1.3 ARM9E系列微处理器 2
1.1.4 ARM10E系列微处理器 3
1.1.5 ARM920T简介 3
1.1.6 SecurCore(可靠内核技术)系列微处理器 4
1.1.7 StrongARM(超强性能ARM技术)系列微处理器 5
1.2 ARM体系结构的发展 5
1.2.1 ARM体系结构的发展 5
1.2.2 ARM11处理器的内核特点 6
1.2.3 DSP功能 6
1.3 ARM体系结构的存储器格式 6
1.4 习题与练习 8
第2章 ADS 1.2开发环境创建与简介 9
2.1 ADS 1.2开发环境创建 9
2.1.1 ADS 1.2概述 9
2.1.2 ADS 1.2的安装 11
2.2 ADS集成开发环境的使用 13
2.2.1 建立一个新工程 13
2.2.2 开发环境设置 14
2.2.3 在ADS 1.2下进行仿真、调试 18
2.2.4 其他开发环境介绍 19
2.3 用AXD进行代码仿真、调试 19
2.3.1 AXD简介 19
2.3.2 JTAG概述 22
2.3.3 Nor Flash和Nand Flash的区别和使用 23
2.3.4 烧写Flash 24
2.3.5 程序的运行 30
2.4 ARM C语言程序的基本规则和系统初始化程序 31
2.4.1 ARM使用C语言编程基本规则 31
2.4.2 初始化程序和开发环境设置 33
2.5 习题与练习 34
第3章 ARM9芯片S3C2410的片上资源 35
3.1 S3C2410处理器介绍 35
3.1.1 AMBA、AHB、APB总线特点 36
3.1.2 S3C2410处理器体系结构 37
3.1.3 S3C2410处理器管理系统 37
3.1.4 S3C2410处理器存储器映射 37
3.1.5 S3C2410处理器时钟和电源管理 38
3.2 S3C2410处理器片上资源的定义和使用 40
3.3 编程参考软件包2410TEST 42
3.4 习题与练习 47
第4章 S3C2410的中断系统 49
4.1 S3C2410的处理器中断 49
4.2 中断控制 50
4.2.1 程序状态寄存器的F位和I位 50
4.2.2 中断模式(INTMOD) 50
4.2.3 中断挂起寄存器(INTPND)和中断源挂起寄存器(SRCPND) 51
4.2.4 中断屏蔽寄存器(INTMSK) 51
4.2.5 中断优先寄存器(PRIORITY) 51
4.3 S3C2410中断源 53
4.4 中断控制专用寄存器 53
4.4.1 IRQ偏移寄存器(INTOFFSET) 55
4.4.2 外部中断控制寄存器(EXTINTn) 55
4.4.3 外部中断屏蔽寄存器(EINTMASK) 55
4.5 中断控制程序编写步骤 55
4.5.1 主程序工作 55
4.5.2 中断服务程序工作 57
4.5.3 中断服务程序示例 57
4.6 本章实验例程 60
4.6.1 实验步骤 60
4.6.2 中断程序、中断初始化 62
4.6.3 中断服务程序 63
4.6.4 系统初始化程序 64
4.6.5 主程序 65
4.7 习题与练习 66
第5章 S3C2410的I/O口和I/O口操作 67
5.1 S3C2410 I/0口描述 67
5.2 I/0端口控制寄存器 68
5.2.1 端口A控制寄存器(GPACON、GPADAT)和功能配置 68
5.2.2 端口B控制寄存器(GPBCON、GPBDAT和GPBUP)和功能配置 69
5.2.3 端口C控制寄存器(GPCCON、GPCDAT和GPCUP)和功能配置 70
5.2.4 端口D控制寄存器(GPDCON、GPDDAT和GPDUP)和功能配置 72
5.2.5 端口E控制寄存器(GPECON、GPEDAT和GPEUP)和功能配置 73
5.2.6 端口F控制寄存器(GPFC0N、GPFDAT和GPFUP)和功能配置 74
5.2.7 端口G控制寄存器(GPGC0N、GPGDAT和GPGUP)和功能配置 75
5.2.8 端口H控制寄存器(GPHCON、GPHDAT和GPHUP)和功能配置 77
5.3 I/O口操作步骤 78
5.3.1 上拉寄存器和控制寄存器设置 78
5.3.2 I/O口编程示例 78
5.4 本章实验例程 79
5.4.1 实验目的和步骤 79
5.4.2 参考程序 81
5.5 习题与练习 83
第6章 S3C2410的串口UART及编程 84
6.1 S3C2410的串口UART概述 84
6.1.1 S3C2410异步串行通信(UART)单元 84
6.1.2 波特率的产生 84
6.1.3 UART通信操作 85
6.2 UART的控制寄存器 85
6.2.1 UART行控制寄存器ULCONn 85
6.2.2 UART控制寄存器UCONn 85
6.2.3 UART FIFO控制寄存器UFCONn 86
6.2.4 UART MODEM控制寄存器UMCONn 86
6.2.5 发送寄存器UTXH和接收寄存器URXH 87
6.2.6 发送和接收状态寄存器UTRSTATn 87
6.2.7 波特率分频寄存器UBRDIV 87
6.2.8 UART单元各寄存器的定义 87
6.3 UART通信程序编写 90
6.3.1 通信程序编写步骤 90
6.3.2 通信程序编写示例 90
6.4 本章实验例程 104
6.4.1 实验目的和原理 104
6.4.2 实验操作 105
6.5 实验参考程序 106
6.6 红外数据通信简介 107
6.6.1 红外数据通信 107
6.6.2 红外线模式数据通信程序 109
6.7 习题与练习 117
第7章 ADC和触摸屏控制 118
7.1 触摸屏结构和工作原理 118
7.2 S3C2410的触摸屏控制 119
7.3 触摸屏控制程序编写 123
7.4 本章实验例程 126
7.4.1 实验目的和原理 126
7.4.2 实验操作 127
7.4.3 实验程序 127
7.5 习题与练习 131
第8章 S3C2410的实时时钟(RTC) 132
8.1 实时时钟结构和工作原理 132
8.1.1 S3C2410的实时时钟单元 132
8.1.2 S3C2410的实时时钟寄存器 133
8.2 实时时钟的编程 135
8.2.1 程序编写步骤 135
8.2.2 程序示例 135
8.3 本章实验例程 138
8.3.1 实验目的和原理 138
8.3.2 实验操作 138
8.3.3 实验程序 139
8.4 习题与练习 146
第9章 S3C2410的LCD显示 147
9.1 汉字显示原理 147
9.1.1 汉字和字符显示原理 147
9.1.2 汉字字符集概述 149
9.1.3 汉字的内码 149
9.1.4 内码转换为区位码 149
9.2 字模提取与小字库建立 150
9.2.1 用C语言提取字模和建立小字库 150
9.2.2 用Delphi提取字模和建立小字库 154
9.2.3 通用字模提取程序MinFonBase使用说明 166
9.3 S3C2410显示控制特点 167
9.3.1 STN LCD显示器 167
9.3.2 TFT LCD显示器 167
9.3.3 LCD控制器特点 168
9.4 S3C2410的LCD控制信号和外部引脚 168
9.4.1 S3C2410 STN的视频操作 169
9.4.2 S3C2410 TFT LCD的视频操作 174
9.4.3 LCD专用控制寄存器 176
9.5 S3C2410的LCD驱动程序 182
9.5.1 S3C2410的系统资源 182
9.5.2 LCD驱动程序 184
9.5.3 S3C2410的汉字和图形显示 191
9.6 LCD驱动编程例程 212
9.6.1 LCD驱动编程简单做法 212
9.6.2 LCD显示程序编写示例 213
9.7 本章实验例程 230
9.7.1 实验目的和原理 230
9.7.2 实验操作 231
9.7.3 实验结果 231
9.7.4 实验程序 232
9.8 习题与练习 251
第10章 直接存储器存取(DMA)控制 253
10.1 DMA基本知识 253
10.2 S3C2410的DMA控制器 255
10.3 DMA编程示例 256
10.3.1 头文件定义和函数声明 256
10.3.2 DMA内存传送程序 256
10.4 本章实验例程 262
10.4.1 实验目的和原理 262
10.4.2 实验操作 263
10.4.3 DMA实验程序 264
10.5 习题与练习 269
第11章 脉宽调制(PWM)及S3C2410的PWM控制 270
11.1 PWM定时器概述 270
11.1.1 S3C2410定时器特性 272
11.1.2 定时器操作示例 273
11.1.3 死区生成器 274
11.2 PWM定时器控制寄存器 274
11.2.1 定时器配置寄存器0 274
11.2.2 定时器配置寄存器1 275
11.2.3 定时器减法缓冲寄存器(TCNTBn)和比较缓冲寄存器(TCMPBn) 276
11.2.4 定时器控制寄存器 276
11.2.5 定时器观察寄存器 277
11.3 PWM定时器软件编程 278
11.3.1 编程步骤 278
11.3.2 编程示例 278
11.4 本章实验例程 279
11.4.1 实验目的和内容 279
11.4.2 实验原理 279
11.4.3 实验操作 281
11.4.4 实验程序 282
11.5 习题与练习 286
第12章 看门狗(Watchdog)电路 287
12.1 看门狗的功能及工作原理 287
12.1.1 S3C2410的看门狗控制 287
12.1.2 看门狗定时器寄存器 288
12.2 看门狗电路的编程 290
12.3 本章实验例程 290
12.3.1 实验目的和原理 290
12.3.2 实验操作 291
12.3.3 Watchdog实验程序 291
12.4 习题与练习 293
第13章 双向二线制串行总线(I2C)及S3C2410的I2C控制 294
13.1 I2C接口以及EEPROM 294
13.2 I2C总线的读/写控制逻辑 295
13.3 EEPROM读/写操作 296
13.3.1 AT24C04结构与应用简述 296
13.3.2 AT24CXX的数据操作格式 296
13.4 S3C2410处理器I2C接口 297
13.4.1 S3C2410 I2C接口简介 297
13.4.2 使用S3C2410 I2C总线读/写方法 299
13.5 I2C总线编程 300
13.6 本章实验例程 300
13.6.1 实验目的和原理 300
13.6.2 实验操作 300
13.6.3 I2C实验程序框图、实验结果 301
13.6.4 参考程序 302
13.7 习题与练习 306
第14章 数字音频信号(I2S)介绍和S3C2410的I2S控制 307
14.1 数字音频信号(I2S)介绍 307
14.2 I2S控制寄存器 309
14.3 WAV声音格式文件 310
14.4 I2S控制程序编写 311
14.5 本章实验例程 315
14.5.1 实验目的和原理 315
14.5.2 实验操作 315
14.5.3 实验程序 316
14.6 习题与练习 325
第15章 串行外设接口(SPI)介绍 326
15.1 SPI接口概述 326
15.2 SPI接口控制寄存器 329
15.2.1 SPI控制寄存器(SPICONn) 329
15.2.2 SPI状态寄存器(SPSTAn) 330
15.2.3 SPI引脚控制寄存器(SPPINn) 330
15.2.4 SPI波特率预分频寄存器(SPIPREn) 331
15.2.5 SPI发送数据寄存器(SPTDATn) 331
15.2.6 SPI接收数据寄存器(SPRDATn) 331
15.3 SPI编程示例 332
15.3.1 编程步骤 332
15.3.2 示例程序 332
15.4 本章实验例程 333
15.4.1 实验目的和原理 333
15.4.2 实验操作 333
15.4.3 实验程序 334
15.5 习题与练习 337
第16章 S3C2410的A/D、D/A转换控制 338
16.1 S3C2410的A/D、D/A转换控制 338
16.1.1 A/D转换控制寄存器 338
16.1.2 A/D转换控制程序的编制步骤 339
16.1.3 A/D转换控制程序示例 340
16.2 本章实验例程 340
16.2.1 实验目的和原理 340
16.2.2 实验操作 341
16.2.3 实验程序 341
16.3 习题与练习 343
参考文献 344