第1章 嵌入式控制系统简介 1
1.1 单片机和嵌入式控制系统的定义和分类 1
1.1.1 单片机和嵌入式控制系统的定义 1
1.1.2 嵌入式控制系统的设计方法 2
1.1.3 嵌入式控制系统各种设计方法的特点 2
1.2 ARM处理器简介 4
1.2.1 ARM体系结构的发展 4
1.2.2 ARM体系结构的存储器格式 8
1.3 习题 9
第2章 ADS1.2 开发环境创建与简介 10
2.1 ADS1.2 开发环境创建 10
2.1.1 ADS1.2 概述 10
2.1.2 ADS1.2 的安装 12
2.2 ADS集成开发环境的使用 14
2.2.1 建立一个新工程 14
2.2.2 开发环境设置 14
2.2.3 其他开发环境介绍 18
2.3 用AXD进行代码仿真、调试 19
2.3.1 AXD简介 19
2.3.2 JTAG概述 21
2.3.3 Nor和Nand Flash的区别和使用 22
2.3.4 烧写Flash 24
2.4 ARM C语言程序的基本规则和系统初始化程序 24
2.4.1 ARM使用C语言编程基本规则 24
2.4.2 初始化程序和开发环境设置 25
2.5 习题 27
第3章 ARM9微处理器S3C2410资源 28
3.1 S3C2410处理器介绍 28
3.1.1 AMBA、AHB、APB总线特点 28
3.1.2 S3C2410处理器体系结构 30
3.1.3 S3C2410处理器管理系统 30
3.1.4 S3C2410处理器存储器映射 30
3.1.5 S3C2410处理器时钟和电源管理 31
3.2 S3C2410处理器片上资源的定义和使用 33
3.3 参考软件资源2410test.mcp 34
3.4 几个常用的输入/输出函数 39
3.5 def.h头文件 45
3.6 习题 46
第4章 S3C2410的I/O口和I/O口操作 47
4.1 S3C2410 I/O口描述 47
4.2 I/O端口控制寄存器 48
4.2.1 端口A控制寄存器和功能配置 48
4.2.2 端口B控制寄存器和功能配置 49
4.2.3 端口C控制寄存器和功能配置 50
4.2.4 端口D控制寄存器和功能配置 52
4.2.5 端口E控制寄存器和功能配置 53
4.2.6 端口F控制寄存器和功能配置 54
4.2.7 端口G控制寄存器和功能配置 55
4.2.8 端口H控制寄存器和功能配置 56
4.3 I/O口控制C语言编程实例 57
4.3.1 硬件电路 57
4.3.2 参考程序 58
4.4 习题 60
第5章 S3C2410的中断系统 61
5.1 S3C2410的中断源 61
5.2 S3C2410的中断处理 62
5.3 中断控制 63
5.3.1 中断模式(INTMOD)寄存器 63
5.3.2 中断挂起寄存器和中断源挂起寄存器 64
5.3.3 中断屏蔽寄存器(INTMSK) 66
5.3.4 中断优先级寄存器(PRIORITY) 66
5.4 子中断源的中断控制 69
5.5 中断向量设置 70
5.6 其他常用寄存器 70
5.7 中断程序编写中需注意的问题 72
5.8 中断实验和中断程序编写 74
5.9 习题 78
第6章 S3C2410的串口UART 79
6.1 S3C2410的串口UART概述 79
6.1.1 S3C2410串行通信(UART)单元 79
6.1.2 波特率的产生 79
6.1.3 UART通信操作 80
6.2 UART的控制寄存器 80
6.2.1 UART线路控制寄存器ULCONn(n=0~2) 80
6.2.2 UART控制寄存器UCONn(n=0~2) 81
6.2.3 UART FIFO控制寄存器UFCONn(n=0~2) 81
6.2.4 UART调制解调器控制寄存器UMCONn(n=0或1) 81
6.2.5 发送寄存器UTXHn(n=0~2)和接收寄存器URXHn(n=0~2) 82
6.2.6 UART TX/RX状态寄存器UTRSTATn(n=0~2) 82
6.2.7 S3C2410 UART使用的端口 82
6.3 UART通信程序例子 82
6.3.1 RS232接口电路 83
6.3.2 UART实验程序 83
6.4 习题 89
第7章 S3C2410的A/D、D/A转换控制 90
7.1 S3C2410的A/D、D/A转换控制 90
7.1.1 A/D转换控制寄存器(ADCCON) 90
7.1.2 A/D转换控制程序的编制步骤 91
7.2 参考程序 91
7.3 习题 94
第8章 触摸屏控制 95
8.1 触摸屏结构和工作原理 95
8.1.1 触摸屏工作原理 95
8.1.2 S3C2410的触摸屏控制 97
8.2 触摸屏控制程序 100
8.3 习题 102
第9章 S3C2410的实时时钟(RTC) 103
9.1 实时时钟在嵌入式系统中的作用 103
9.1.1 S3C2410的实时时钟单元 103
9.1.2 S3C2410的实时时钟寄存器 104
9.2 参考程序及说明 106
9.3 习题 112
第10章 直接存储器存取(DMA)控制 113
10.1 DMA基础知识 113
10.2 S3C2410的DMA控制器 115
10.3 DMA方式实现存储器到存储器的数据传送 117
10.3.1 头文件定义和函数声明 118
10.3.2 DMA方式实现存储器到存储器的数据传送 118
10.4 习题 123
第11章 S3C2410的PWM控制 124
11.1 PWM定时器概述 124
11.1.1 什么是脉宽调制 124
11.1.2 S3C2410的脉宽调制PWM控制 124
11.1.3 S3C2410定时器特性 126
11.1.4 定时器操作示例 127
11.1.5 死区生成器 127
11.2 PWM输出电平控制 128
11.2.1 PWM工作原理 128
11.2.2 PWM输出控制 129
11.3 PWM定时器控制寄存器 129
11.3.1 定时器配置寄存器0 129
11.3.2 定时器配置寄存器1 130
11.3.3 减法缓冲寄存器和比较缓冲寄存器 130
11.3.4 定时器控制寄存器 131
11.3.5 减法计数器观察寄存器 131
11.4 PWM参考程序 132
11.5 习题 138
第12章 S3C2410的看门狗电路控制 140
12.1 看门狗电路的功能及工作原理 140
12.1.1 S3C2410的看门狗控制 140
12.1.2 看门狗定时器控制寄存器 141
12.2 参考程序及说明 142
12.3 习题 143
第13章 S3C2410的I2C总线控制 144
13.1 I2C总线工作原理 144
13.2 EEPROM读/写操作 147
13.2.1 AT24C04结构与应用简述 147
13.2.2 设备地址(DADDR) 148
13.2.3 AT24CXX的数据操作格式 148
13.3 S3C2410处理器I2C接口 148
13.3.1 S3C2410 I2C接口简介 149
13.3.2 使用S3C2410 I2C总线读/写方法 150
13.4 S3C2410 I2C总线读/写参考程序编写 150
13.5 I2C实验程序 151
13.6 习题 155
第14章 I2S介绍和S3C2410的I2S控制 156
14.1 数字音频信号(I2S)介绍 156
14.2 数字音频计算机处理 157
14.2.1 采样频率和采样精度 157
14.2.2 音频编码 158
14.2.3 I2S数字音频接口 158
14.3 音频芯片UDA1341TS介绍 158
14.3.1 硬件结构 158
14.3.2 S3C2410和UDA1341TS的连接 160
14.3.3 UDA1341TS的软件编程 161
14.3.4 UDA1341TS DATA0编程 162
14.3.5 UDA1341TS DATA1编程 165
14.3.6 UDA1341TS控制寄存器STATUS编程 165
14.4 S3C2410中I2S总线控制寄存器 167
14.5 WAV声音格式文件 168
14.6 I2S实验参考程序 169
14.7 习题 177
第15章 串行外设接口(SPI)介绍 178
15.1 SPI接口及操作 178
15.1.1 SPI接口原理 178
15.1.2 SPI接口特性 180
15.2 SPI接口控制寄存器 180
15.2.1 SPI控制寄存器(SPICONn) 180
15.2.2 SPI状态寄存器(SPSTAn) 180
15.2.3 SPI引脚控制寄存器(SPPINn) 181
15.2.4 SPI波特率预分频寄存器(SPPREn) 181
15.2.5 SPI发送数据寄存器(SPTDATn) 182
15.2.6 SPI接收数据寄存器(SPRDATn) 182
15.2.7 SPI接口操作 182
15.2.8 SPI接口编程 182
15.2.9 SPI口的传输格式 183
15.2.10 SPI通信模式 184
15.3 参考程序 184
15.4 习题 188
第16章 S3C2410的人机界面设计 189
16.1 英文字符存储与显示原理 189
16.1.1 ASCII码 189
16.1.2 英文字符的显示 190
16.2 汉字在计算机中的表示和显示 191
16.2.1 汉字的内码和区位码 191
16.2.2 汉字的显示 192
16.2.3 其他西文字符在计算机中的存储和显示 193
16.2.4 屏幕上“打点” 194
16.2.5 字模提取与建立小字库概述 194
16.3 字模提取与建立小字库 195
16.3.1 用C语言提取字模和建立小字库 195
16.3.2 用Delphi提取字模和建立小字库 199
16.3.3 通用字模提取程序MinFonBase使用说明 209
16.4 S3C2410显示控制特点 210
16.4.1 STNLCD显示器 210
16.4.2 TFTLCD显示器 211
16.4.3 LCD控制器特点 211
16.5 S3C2410的LCD控制信号和外部引脚 211
16.5.1 LCD专用控制寄存器 213
16.5.2 LCD专用控制寄存器的设置 218
16.5.3 LCD屏幕“打点”程序 221
16.6 S3C2410的LCD驱动程序 224
16.6.1 S3C2410的LCD驱动程序编写步骤 225
16.6.2 利用S3C2410显示汉字与曲线 226
16.7 S3C2410在LCD驱动方面的其他应用 234
16.7.1 HD66421的硬件简介 235
16.7.2 HD66421的软件编程 236
16.7.3 HD66421与微处理器接口及驱动程序 240
16.8 在LCD屏上按一定格式显示汉字和曲线 252
16.9 S3C6410(ARM11)的汉字和曲线显示 253
16.9.1 S3C6410(ARM11)简介 253
16.9.2 S3C6410(ARM11)的汉字和曲线显示 254
16.10 习题 262
第17章 程序的调试、运行和烧写 263
17.1 VIVI软件的运行和使用 263
17.1.1 VIVI软件的运行 263
17.1.2 VIVI的几个常用命令 263
17.2 VIVI软件的安装 265
17.3 程序的调试运行 267
17.4 程序的烧写 275
17.5 习题 278
第18章 项目开发实例 279
18.1 实例目的和软硬件准备 279
18.1.1 实例目的 279
18.1.2 软硬件准备 279
18.2 字模提取、建小字库 279
18.2.1 汉字字模提取、建小汉字库 279
18.2.2 西文和数学符号字模提取 280
18.2.3 ASCII码字模处理、其他图形处理 282
18.3 项目构建 282
18.3.1 项目结构 282
18.3.2 main.c程序简单介绍 283
18.4 项目调试 284
18.4.1 开发环境设置 285
18.4.2 项目编译 289
18.4.3 项目调试 290
18.5 项目烧写(固化) 293
参考文献 296