第1章 嵌入式系统概述 1
1.1嵌入式系统简介 1
1.1.1嵌入式系统的基本概念 1
1.1.2嵌入式系统的特点 1
1.1.3嵌入式系统的发展 2
1.1.4嵌入式系统的应用领域 3
1.2嵌入式系统组成结构和开发应用概述 5
1.2.1嵌入式系统的组成结构 5
1.2.2嵌入式处理器 7
1.2.3嵌入式系统硬件平台 8
1.2.4嵌入式操作系统 10
1.2.5嵌入式系统应用软件 14
1.2.6嵌入式系统应用开发 15
习题 17
第2章 嵌入式微处理器的体系结构 18
2.1 ARM处理器概述 18
2.1.1 ARM处理器体系结构版本 18
2.1.2 ARM处理器家族 19
2.1.3 ARM产品命名规则 22
2.2 ARM内核结构 24
2.2.1 ARM7TDMI主处理器的逻辑结构 25
2.2.2 ARM9TDMI主处理器的通用内核结构 27
2.2.3 ARM920T内核 28
2.2.4 ARM启动方式 29
2.2.5 ARM处理器的运行模式 29
2.3 ARM中断与异常 30
2.3.1 ARM中断与异常类型 30
2.3.2中断与异常的响应和返回 31
2.3.3中断与异常入口向量 32
2.4 ARM的寄存器组织 32
2.4.1通用寄存器 33
2.4.2程序状态寄存器 33
2.4.3 ARM状态下的寄存器 35
2.5 ARM的协处理器接口 36
2.5.1 CP14协处理器 36
2.5.2 CP15协处理器 38
2.6 ARM的存储系统 45
2.6.1 ARM存储格式 45
2.6.2存储空间管理单元(MMU) 46
2.7 S3C2440A微处理器 57
2.7.1 S3C2440A的基本结构 57
2.7.2 S3C2440A微处理器的内部资源简介 58
2.7.3 S3C2440A芯片的封装 59
习题 59
第3章 嵌入式系统硬件平台的设计 61
3.1嵌入式系统硬件平台的基本组成与设计方法 61
3.1.1嵌入式系统硬件平台的基本组成 61
3.1.2嵌入式系统硬件平台的设计方法 63
3.1.3 S3C2440A教学实验板简介 63
3.1.4最小系统设计 65
3.1.5电源系统设计 65
3.1.6时钟电路设计 67
3.1.7复位电路设计 67
3.1.8细间距球栅阵列JTAG的内部结构 68
3.2核心系统设计 72
3.2.1 S3C2440A的存储控制器 72
3.2.2 NOR Flash存储系统设计 82
3.2.3 SDRAM接口电路设计 85
3.2.4 NAND FLASH存储系统设计 88
3.3数字输入/输出控制接口设计 98
3.3.1 S3C2440A的GPIO模块 98
3.3.2外部中断输入 100
3.3.3定时器接口 106
3.3.4数字输入/输出控制接口设计 110
3.4 LCD显示接口电路设计 111
3.4.1 LCD显示器的基本原理和特点 111
3.4.2 S3C2440A的LCD控制器 113
3.4.3 LCD接口电路设计 117
3.5触摸屏接口电路设计 121
3.5.1 S3 C2440 A的A/D转换器 121
3.5.2电阻式触摸屏的基本原理 125
3.5.3电阻式触摸屏接口及A/D转换器接口电路设计 126
3.6音频接口电路设计 127
3.6.1 S3 C2440 A的IIS总线接口控制器 127
3.6.2 UDA1341音频处理芯片 131
3.6.3音频接口电路设计 133
3.7串行通信接口电路设计 134
3.7.1串行通信基础 134
3.7.2 S3C2440A的通用异步收发器(UART) 136
3.7.3串行接口电路设计 141
3.8网络接口电路设计 143
3.8.1 DM9000AE芯片 144
3.8.2网络接口电路设计 146
3.9 SD卡接口电路设计 147
3.9.1 SD卡标准 147
3.9.2 S3C2440A的SD卡控制器 149
3.9.3 SD卡接口电路设计 154
3.10 USB接口电路设计 155
3.10.1 USB总线技术 156
3.10.2 S3C2440A的USB控制器 160
3.10.3 USB接口电路设计 162
3.11嵌入式硬件平台使用前的准备 163
3.11.1嵌入式硬件平台使用前的知识准备 163
3.11.2嵌入式系统应用环境的搭建 164
3.11.3嵌入式硬件平台的连接与使用 167
习题 173
第4章 ARM指令系统及汇编语言程序设计基础 174
4.1 ARM指令基础 174
4.1.1 ARM指令的编码与助记符 174
4.1.2 ARM指令寻址方式 176
4.2 ARM指令系统 180
4.2.1 ARM指令分类 180
4.2.2数据处理指令 180
4.2.3数据加载与存储指令 186
4.2.4分支指令 190
4.2.5程序状态寄存器访问指令 192
4.2.6协处理器指令 193
4.2.7异常中断产生指令 194
4.2.8 ARM指令与Thumb指令 195
4.3汇编语言程序基础 196
4.3.1汇编语言程序格式 196
4.3.2汇编语言程序中常用的符号 197
4.3.3汇编语言程序中表达式和运算符 199
4.4 ARM伪指令 200
4.4.1数据定义伪指令 201
4.4.2符号定义伪指令 202
4.4.3汇编控制伪指令 204
4.4.4信息报告伪指令 205
4.4.5其他常用的伪指令 207
4.5汇编语言程序设计基础 212
4.5.1汇编语言程序设计的基本过程 212
4.5.2简单汇编程序设计 213
4.5.3条件控制汇编程序设计 213
4.5.4异常和中断编程 215
4.5.5模块化程序设计 226
4.5.6汇编语言程序设计举例 232
4.6汇编语言程序设计实践 239
4.6.1汇编语言程序编译调试过程 239
4.6.2汇编语言程序的编辑 240
4.6.3汇编语言程序的编译连接 244
4.6.4汇编语言程序的调试 255
4.6.5目标代码的下载 265
习题 267
第5章 嵌入式系统的BSP技术 269
5.1嵌入式系统的BSP技术 269
5.1.1 BSP的基本概念 269
5.1.2 BSP的组成结构 269
5.1.3 BSP的基本特点与功能 271
5.2 WinCE 5.0的BSP 272
5.2.1 Boot Loader 272
5.2.2 OAL 279
5.2.3设备驱动程序 284
5.2.4配置文件 284
5.3 WinCE操作系统下的BSP开发 294
5.3.1 BSP的开发流程 294
5.3.2克隆参考BSP 295
5.3.3 Boot Loader设计与实现 295
5.3.4 OAL开发 296
5.3.5为新的硬件编写设备驱动程序 296
5.3.6发布BSP 296
习题 297
第6章 嵌入式操作系统基础 298
6.1操作系统的基本概念 298
6.1.1操作系统概述 298
6.1.2操作系统的发展 300
6.1.3操作系统的基本特征和基本结构 302
6.1.4操作系统的主要功能 306
6.1.5操作系统的分类 308
6.2嵌入式操作系统 310
6.2.1嵌入式操作系统及其主要特点 310
6.2.2常用的嵌入式操作系统简介 311
6.2.3嵌入式操作系统的分类 314
6.2.4典型嵌入式操作系统分析 314
6.2.5嵌入式操作系统的发展趋势 319
6.3 WinCE嵌入式操作系统 319
6.3.1 WinCE概述 319
6.3.2 WinCE的体系结构 320
6.3.3 WinCE的应用系统开发支持 324
6.3.4 WinCE的系统API调用机制 325
6.4 WinCE的处理器管理 326
6.4.1 WinCE的进程 326
6.4.2 WinCE的线程 328
6.4.3 WinCE的线程同步 331
6.4.4 WinCE进程间的通信 339
6.5 WinCE的内存管理 345
6.5.1 WinCE的内存管理 346
6.5.2 WinCE虚拟内存的分配与回收 350
6.5.3 WinCE逻辑内存的分配与回收 353
6.6 WinCE的设备管理 355
6.6.1 WinCE设备管理模式 355
6.6.2 WinCE的注册表 356
6.6.3 WinCE设备的管理 358
6.7 WinCE的存储管理与文件系统 361
6.7.1 WinCE的对象存储 362
6.7.2 WinCE的存储管理器 364
习题 366
第7章 嵌入式系统开发应用基础 368
7.1嵌入式系统开发概述 368
7.1.1嵌入式系统开发考虑的要素 368
7.1.2嵌入式系统开发的特点 371
7.1.3嵌入式系统开发的基本流程 372
7.2嵌入式软件开发环境建立 374
7.2.1嵌入式软件开发语言 374
7.2.2嵌入式软件开发工具 375
7.3 WinCE内核的裁剪与定制 378
7.3.1添加BSP 378
7.3.2定制平台 378
7.3.3生成操作系统镜像 379
7.3.4导出SDK 379
7.4编写第一个简单的WinCE应用程序 381
7.4.1 WinCE应用程序的特点 381
7.4.2编写第一个WinCE应用程序 381
7.4.3编译和运行WinCE应用程序 382
7.5键盘、输入笔和菜单 383
7.5.1键盘 383
7.5.2输入笔和触摸屏 385
7.5.3菜单 386
7.5.4应用示例 388
7.6屏幕绘图 391
7.6.1屏幕绘图基础 392
7.6.2绘制位图 395
7.6.3线条与形状 398
7.6.4写文本 400
7.6.5屏幕绘图示例 403
7.7窗口、控件和对话框 407
7.7.1子窗口 407
7.7.2常用控件 407
7.7.3对话框 413
7.7.4应用示例 414
7.8综合实例 419
7.9控制类应用实例 423
7.9.1简易温度控制系统 423
7.9.2系统硬件介绍 423
7.9.3系统软件介绍 424
7.9.4小结 425
习题 425
第8章 WinCE设备驱动开发 427
8.1 WinCE设备驱动简介 427
8.1.1驱动的概念 427
8.1.2驱动的种类 427
8.2 WinCE设备驱动程序开发 430
8.2.1 WinCE设备驱动程序开发简介 431
8.2.2设备管理器 432
8.2.3中断处理 433
8.2.4 DMA处理 434
8.2.5电源管理 436
8.3流接口驱动程序开发 440
8.3.1流接口驱动简介 440
8.3.2驱动开发的步骤 444
8.3.3流接口驱动的开发 444
8.3.4 DS18B20驱动开发 456
8.3.5驱动的动态加载 461
8.3.6测试工具CETK简介 465
8.4串口驱动及其应用简介 468
8.4.1串口驱动程序 468
8.4.2串口操作 479
8.4.3串口应用 484
习题 490
第9章 嵌入式系统实验指导 491
9.1嵌入式系统基础实验部分 491
9.1.1跑马灯实验 491
9.1.2中断实验 496
9.1.3实时时钟实验 499
9.1.4 ADC实验 502
9.1.5 LCD显示实验 505
9.1.6触摸屏控制实验 512
9.1.7 IIC总线实验 516
9.2 ARM中级实验部分 523
9.2.1 Windows CE5.0开发环境的搭建 523
9.2.2编译和烧写WinCE内核实验 527
9.2.3 EVC上的HelloWorld实验 532
9.2.4简单的控件应用——简易计算器 535
9.2.5简单的绘图——产生波形 540
9.3 ARM高级实验部分 544
9.3.1流接口驱动实验 544
附录 549
参考文献 571