第1章 嵌入式系统概述 1
1.1 嵌入式系统基本概念 1
1.2 嵌入式系统组成 1
1.3 主流嵌入式操作系统 4
1.3.1 VxWorks 4
1.3.2 μC/OS-Ⅱ 4
1.3.3 Windows CE 5
1.3.4 嵌入式Linux 5
1.4 ARM处理器系列 6
1.5 S3C2440A处理器 7
1.5.1 S3C2440A简介 7
1.5.2 基本编程模型 10
1.5.3 ARM寄存器 11
1.5.4 ARM异常的种类 12
1.5.5 ARM异常的处理 12
1.6 ARM指令集介绍 13
1.6.1 ARM指令集概述 13
1.6.2 数据处理指令 13
1.6.3 分支指令 17
1.6.4 程序状态寄存器(PSR)传输指令 17
1.6.5 Load/Store指令 18
1.6.6 协处理器指令 18
1.6.7 异常中断指令 19
1.7 开发板简介 20
习题 20
第2章 WinCE平台构建 21
2.1 开发平台构建 21
2.1.1 Platform Builder简介 21
2.1.2 Platform Builder安装 21
2.1.3 板级支持包BSP 24
2.2 系统定制实验 26
2.2.1 WinCE 5.0系统定制 26
2.2.2 编译系统 30
2.2.3 Eboot下载 32
2.2.4 操作系统下载 32
2.3 SDK输出 34
2.4 WinCE 5.0调试 37
2.4.1 WinCE模拟器 37
2.4.2 WinCE 5.0调试 40
习题 43
第3章 WinCE应用程序开发 44
3.1 开发环境的构建 44
3.1.1 Visual Studio 2005的安装 44
3.1.2 SDK的安装 49
3.2 应用程序开发 51
3.2.1 新建项目 51
3.2.2 控件编程 53
3.2.3 进程编程 56
3.2.4 多线程编程 58
3.2.5 读写文件 60
3.2.6 访问注册表 62
3.2.7 网络编程 65
习题 72
第4章 时钟与定时器程序设计 73
4.1 时钟概述 73
4.1.1 系统时钟 73
4.1.2 时钟控制逻辑 75
4.1.3 慢速模式 76
4.1.4 系统时钟特殊寄存器 77
4.2 WatchDog 81
4.2.1 WatchDog定时器简介 81
4.2.2 看门狗定时器的特殊寄存器 81
4.3 PWM定时器 82
4.3.1 PWM定时器简介 82
4.3.2 PWM定时器特殊寄存器 84
4.3.3 PWM工作步骤与原理 84
4.4 实时时钟(RTC) 86
4.4.1 实时时钟简介 86
4.4.2 实时时钟特殊功能寄存器 87
4.5 PWM实验 88
4.5.1 系统时钟设置 88
4.5.2 实验测试 89
4.5.3 实验结果 91
4.6 RTC实验 91
4.6.1 实验测试 91
4.6.2 实验结果 95
4.7 定时器模块在WinCE中的程序设计——PWM输出实验 96
习题 102
第5章 GPIO接口与UART串口应用 103
5.1 S3C2440A的GPIO接口介绍 103
5.1.1 GPIO寄存器 103
5.1.2 寄存器地址 104
5.2 LED灯实验 104
5.2.1 硬件原理图 104
5.2.2 寄存器配置 105
5.2.3 实验测试 106
5.3 串口通信原理和简介 114
5.3.1 串口概述 114
5.3.2 S3C2440A串口简介 116
5.3.3 S3C2440A的串口操作 116
5.4 S3C2440A的UART特殊功能寄存器 118
5.4.1 UART控制寄存器 118
5.4.2 UART状态寄存器 119
5.5 UART通信测试实验 120
5.5.1 UART电路原理 120
5.5.2 UART初始化程序 121
5.5.3 UART测试程序 122
5.5.4 UART通信实验结果 125
5.6 基本接口模块 125
5.6.1 GPIO输出控制实验 125
5.6.2 串口控制实验 127
习题 134
第6章 存储器接口设计与WinCE BootLoader 135
6.1 存储器概述 135
6.1.1 半导体存储器介绍 135
6.1.2 动态随机存储器原理 136
6.1.3 NAND Flash存储原理 137
6.2 SDRAM内存管理 138
6.2.1 地址空间与地址映射 138
6.2.2 SDRAM工作原理 140
6.2.3 内存管理模块特殊寄存器 141
6.3 SDRAM测试实验 142
6.3.1 SDRAM存储器接口 142
6.3.2 初始化SDRAM 143
6.4 NAND Flash介绍 145
6.4.1 芯片介绍 145
6.4.2 NAND Flash读操作 147
6.4.3 NAND Flash擦除操作 147
6.4.4 NAND Flash写操作 147
6.5 NAND Flash控制器 148
6.5.1 S3C2440A的NAND Flash控制器特征 148
6.5.2 NAND Flash控制器的配置 149
6.5.3 NAND Flash控制器的特殊寄存器 150
6.6 NAND Flash测试实验 152
6.6.1 NAND Flash实验电路及原理 152
6.6.2 NAND Flash初始化 152
6.6.3 读NAND Flash函数 155
6.6.4 擦除NAND Flash函数 156
6.6.5 写NAND Flash函数 157
6.6.6 NAND Flash代码复制程序 158
6.6.7 Nand Flash实验 161
6.6.8 实验介绍 162
6.6.9 使用NAND Flash注意事项 162
6.6.10 实验主要代码 162
6.6.11 实验结果 166
6.7 WinCE BootLoader 167
6.7.1 WinCE 5.0 Stepldr 167
6.7.2 Eboot移植 169
习题 172
第7章 中断系统 173
7.1 中断概述 173
7.1.1 中断的定义及作用 173
7.1.2 中断源 173
7.1.3 中断向量与中断嵌套 173
7.1.4 中断处理过程 174
7.2 S3C2440A的中断系统 175
7.2.1 S3C2440A中断控制系统 175
7.2.2 S3C2440A中断源 175
7.2.3 S3C2440A中断控制寄存器 177
7.2.4 S3C2440A的IRQ中断处理过程 180
7.3 外部中断实验 181
7.3.1 C语言实现中断过程 181
7.3.2 外部中断寄存器配置 183
7.3.3 实验测试 184
7.3.4 实验结果 187
习题 187
第8章 ADC与触摸屏接口 188
8.1 ADC与触摸屏工作原理 188
8.1.1 ADC工作原理 188
8.1.2 触摸屏工作原理 188
8.2 S3C2440A的ADC及触摸屏接口 190
8.3 ADC与触摸屏接口特殊寄存器 191
8.4 触摸屏实验 193
8.4.1 触摸屏实验寄存器配置 193
8.4.2 实验测试 194
8.4.3 实验结果 197
习题 197
第9章 LCD程序设计 198
9.1 LCD基本概念 198
9.1.1 LCD的发展历史 198
9.1.2 LCD分类 199
9.1.3 LCD参数介绍 200
9.2 LCD工作原理 200
9.2.1 显示原理 201
9.2.2 LCD的驱动方式 201
9.3 S3C2440A的LCD模块 201
9.3.1 S3C2440A的LCD模块组成结构 201
9.3.2 S3C2440A的LCD控制器的特性 202
9.3.3 STN-LCD控制器配置 203
9.3.4 TFT-LCD控制器配置 208
9.4 S3C2440A的LCD控制器特殊寄存器 212
9.4.1 LCD控制器的控制寄存器LCDCON1/2/3/4/5 212
9.4.2 帧缓冲起始地址寄存器LCDSADDR1/2/3 214
9.4.3 视频显示寄存器 214
9.4.4 LCD中断控制寄存器 215
9.4.5 LCD寄存器设置向导 216
9.5 LCD实验 217
9.5.1 实验原理 217
9.5.2 寄存器配置 218
9.5.3 图片存储与显示 221
9.5.4 实验测试及结果 222
9.6 WinCE下的LCD接口实验 222
习题 224
第10章 DMA控制器介绍与应用 225
10.1 DMA控制器介绍 225
10.1.1 DMA控制器概述 225
10.1.2 DMA控制器原理 226
10.2 DMA控制器操作 227
10.2.1 DMA基本时序 227
10.2.2 查询/握手模式对比 227
10.2.3 DMA特殊寄存器 228
10.3 DMA编程与测试 228
10.3.1 DMA数据传输 228
10.3.2 DMA测试程序 231
10.3.3 DMA测试实验结果 232
习题 233
第11章 SD存储卡 234
11.1 SD存储卡的基本概念 234
11.1.1 SD存储卡概述 234
11.1.2 SD存储卡发展 234
11.1.3 SD存储卡特性 235
11.2 SD总线基本概念 236
11.2.1 SD总线结构 237
11.2.2 SD总线协议 237
11.3 S3C2440A的SD/MMC控制器 240
11.3.1 S3C2440A的SD/MMC控制器简介 240
11.3.2 S3C2440A的SD/MMC控制器操作 240
11.3.3 S3C2440A的SD/MMC控制器特殊寄存器 241
11.4 SD模块的编程与测试 244
11.4.1 SD实验电路及原理 244
11.4.2 SD模块初始化编程 244
11.4.3 SD命令传输编程 249
11.4.4 SD数据读/写编程 251
11.4.5 SD测试程序 257
11.4.6 SD测试实验结果 259
习题 259
第12章 WinCE 5.0驱动编写 260
12.1 WinCE 5.0驱动分类 260
12.1.1 驱动模型分类 260
12.1.2 驱动程序的体系结构 261
12.1.3 驱动加载方式 261
12.2 流接口驱动开发 262
12.2.1 接口函数分析 262
12.2.2 驱动编译设置 264
12.2.3 流接口驱动开发实例 264
12.3 动态加/卸载驱动 271
12.3.1 动态加/卸载驱动函数 271
12.3.2 动态加/卸载驱动实验 271
12.4 中断流驱动 274
12.4.1 S3C2440A中断控制系统 274
12.4.2 WinCE 5.0中断流驱动 276
12.4.3 应用程序读中断 284
习题 286
第13章 WinCE聊天程序和文件收发程序设计 287
13.1 WinCE聊天程序设计 287
13.1.1 新建工程 287
13.1.2 放置对话框控件 288
13.1.3 初始化套接字 289
13.1.4 消息处理 290
13.1.5 字符转换 291
13.1.6 添加事件处理程序 292
13.2 文件传输 296
13.2.1 添加CMessage类 296
13.2.2 添加CServerSocket类 297
13.2.3 添加CClientSocket类 299
13.2.4 添加对话框控件 301
13.2.5 创建套接字 303
13.2.6 添加线程函数 307
13.2.7 添加收发文件函数 309
13.2.8 消息处理 312
13.2.9 实验结果 315
习题 315
参考文献 316