第一篇基础知识篇
第1章ARM处理器及系统结构2
1.1ARM处理器概述2
1.1.1ARM公司简介2
1.1.2ARM特点3
1.1.3ARM应用领域3
1.2ARM处理器系列5
1.3ARM内核基本结构9
1.3.1ARM内核9
1.3.2ARM扩展功能块10
1.3.3ARM启动方式13
1.4ARM处理器运行模式14
1.5ARM寄存器14
1.5.1通用寄存器14
1.5.2程序状态寄存器16
1.5.3ARM状态下的寄存器18
1.5.4Thumb状态下的寄存器19
1.6ARM存储系统20
1.6.1ARM存储方法20
1.6.2存储空间管理单元(MMU)21
1.7ARM流水线与时序23
1.7.1ARM流水线23
1.7.2ARM时序23
1.8ARM中断与异常24
1.8.1ARM异常类型25
1.8.2异常的响应及返回25
1.8.3异常的描述26
1.8.4异常的处理28
第2章ARM编程基础29
2.1ARM指令系统29
2.1.1ARM指令介绍29
2.1.2ARM指令寻址方式31
2.1.3ARM指令集34
2.2ARM汇编语言设计46
2.2.1ARM汇编器所支持的伪指令46
2.2.2汇编语言的语句格式53
2.2.3汇编语言的程序结构57
2.3ARMC语言设计58
2.3.1优化C语言编程58
2.3.2C语言与汇编混合编程64
2.3.3ARMC/C++编译器69
第3章ARM开发环境与调试系统76
3.1ADS开发环境76
3.1.1CodeWarrior的使用76
3.1.2AXD的使用83
3.2SDT开发环境86
3.2.1SDT开发环境及特点86
3.2.2SDT调试环境86
3.2.3利用SDT软件编程实例87
3.3ARM体系中调试系统概述90
3.4用仿真器调试系统92
3.4.1初始化存储器92
3.4.2在线仿真92
3.4.3常见问题94
3.5基于Angel的调试系统95
3.5.1基于Angel的调试系统概述95
3.5.2使用Angel开发应用程序98
3.5.3Angel执行的操作103
3.5.4将Angel移植到特定的
3.5.4目标系统105
3.6基于JTAG的调试系统122
3.6.1调试接口JTAG介绍122
3.6.2基于JTAG的调试系统的
3.6.2特点125
3.6.3基于JTAG的调试系统
3.6.3结构126
3.6.4目标系统中的调试功能扩展
3.6.2部件127
3.6.5基于JTAG的调试过程128
第二篇常用模块设计实例篇
第4章ARM嵌入式开发平台的
第4章构建130
4.1实例说明130
4.2ARM系统体系结构130
4.2.1硬件体系结构131
4.2.2软件体系结构133
4.3硬件平台实现方法134
4.3.1硬件电路板设计134
4.3.2ARM硬件设计原则136
4.4软件开发方法137
4.4.1软件开发流程137
4.4.2软件开发环境构建138
4.5实例总结139
第5章DMA模块应用设计140
5.1实例内容和目标140
5.2DMA数据传输原理140
5.2.1DMA操作原理141
5.2.2外部DMA请求/应答协议142
5.2.3DMA传送方式143
5.2.4DMA的寄存器介绍144
5.3软件设计145
5.4实例总结148
第6章RTC模块应用设计149
6.1实例内容和目标149
6.2RTC工作原理149
6.2.1RTC的特性149
6.2.2RTC相关寄存器150
6.3硬件设计153
6.4软件设计153
6.4.1RTC初始化154
6.4.2RTC显示控制程序154
6.5实例总结156
第7章PWM模块应用设计157
7.1实例内容和目标157
7.2PWM工作原理158
7.2.1PWM的特性158
7.2.2PWM的工作原理158
7.2.3PWM的定时操作159
7.2.4PWM的特殊寄存器160
7.3实例软件设计163
7.3.1PWM启动163
7.3.2调制PWM164
7.3.3程序代码164
7.4实例总结165
第8章看门狗定时器模块设计166
8.1实例说明166
8.2看门狗工作原理166
8.2.1看门狗定时器操作166
8.2.2看门狗定时器特殊功能
8.2.2寄存器167
8.3实例软件设计168
8.4实例总结169
第9章中断处理模块设计170
9.1实例说明170
9.2中断处理与寄存器设置171
9.2.1ARM中断处理类型171
9.2.2ARM中断及相关寄存器172
9.3中断硬件模块图173
9.4软件程序设计174
9.4.1中断处理流程174
9.4.2中断程序设计174
9.4.3中断处理程序优化175
9.5实例总结176
第10章复位模块设计177
10.1实例说明177
10.2ARM复位原理177
10.2.1ARM复位源类型177
10.2.2复位工作原理178
10.3硬件电路设计179
10.3.1复位电路原理图179
10.3.2复位电路的调试180
10.4看门狗软件复位181
10.5实例总结183
第11章A/D变换模块设计184
11.1实例说明184
11.2A/D变换原理185
11.2.1A/D变换类型185
11.2.2A/D转换过程187
11.3硬件电路设计188
11.3.1A/D模块188
11.3.2D/A模块189
11.4A/D采样软件设计190
11.5实例总结192
第12章电源模块设计193
12.1实例说明193
12.2电源工作原理193
12.2.1系统工作状态193
12.2.2外设耗电考虑194
12.3电源线与地线设计196
12.4硬件电路设计198
12.4.1直流电压产生方法198
12.4.2电源模块电路原理图198
12.5电源的软件管理200
12.6实例总结201
第13章SDRAM模块设计202
13.1实例说明202
13.2SDRAM特点202
13.2.1SDRAM状态202
13.2.2SDRAM控制203
13.2.3SDRAM时序特点204
13.2.4地址空间分配205
13.3硬件电路设计206
13.3.1SDRAM芯片206
13.3.2SDRAM模块原理图207
13.4软件设计208
13.4.1SDRAM读写208
13.4.2SDRAM软件测试209
13.5实例总结216
第14章Nand-Flash/Nor-Flash
第14章存储模块设计217
14.1实例说明217
14.2Flash原理218
14.2.1Nand-Flash与Nor-Flash
14.3.3区别218
14.2.2Flash驱动220
14.3硬件电路设计220
14.3.1Nor-Flash的设计220
14.3.2Nand-Flash的设计..222
14.3.3Nor-Flash/Nand-Flash
14.3.3跳线选择223
14.4软件设计224
14.4.1Flash数据存储操作流程224
14.4.2程序代码说明224
14.5实例总结228
第15章通用I/O模块设计229
15.1实例说明229
15.2GPIO原理229
15.2.1GPIO设备驱动原理229
15.2.2如何驱动GPIO及对应
14.3.3设备231
15.3GPIO应用举例231
15.4GPIO设备程序开发232
15.4.1开发步骤232
15.4.2GPIO端口编程233
15.5实例总结234
第16章键盘模块设计235
16.1实例说明235
16.2键盘工作原理235
16.2.1常用键盘接口235
16.2.2行列式键盘工作原理236
16.2.3键盘扫描流程237
16.3硬件电路设计237
16.3.1ARM键盘接口237
16.3.2键盘电路原理图237
16.4软件设计238
16.4.1键盘扫描程序238
16.4.2键盘测试程序242
16.4.3键盘驱动243
16.5实例总结244
第17章LCD模块设计245
17.1实例说明245
17.2LCD工作原理246
17.2.1LCD显示模式246
17.2.2LCD显示地址247
17.2.3LCD读写时序247
17.3硬件电路设计249
17.3.1LCD显示电路249
17.3.2电路原理图250
17.4软件设计251
17.4.1LCD显示定位.结构与
14.3.3驱动251
17.4.2LCD显示流程253
17.4.3LCD显示与测试253
17.4.4LCD字模显示程序257
17.5实例总结259
第18章USB设备模块设计260
18.1实例说明260
18.2设计思路分析260
18.2.1USB工作原理260
18.2.2USB特点262
18.2.3USB传输方式263
18.3硬件电路设计263
18.3.1USB接口内部结构263
18.3.2端口描述265
18.3.3USB硬件原理图266
18.4软件设计267
18.4.1固件程序的设计268
18.4.2驱动程序设计268
18.5实例总结271
第19章以太网控制器模块设计272
19.1实例说明272
19.2以太网口工作原理273
19.3硬件电路设计274
19.3.1电路原理图274
19.3.2网卡芯片调试275
19.4软件设计276
19.4.1以太网口存储及初始化276
19.4.2发送数据包277
19.4.3接收数据包278
19.4.4程序代码279
19.5实例总结286
第20章I2C总线串行接口应用
第20章设计287
20.1实例说明287
20.2I2C设计原理287
20.2.1I2C主从模式287
20.2.2I2C工作原理288
20.3I2C硬件电路设计289
20.3.1I2C串口存储器289
20.3.2电路原理图290
20.4软件设计290
20.4.1I2C读写过程设计290
20.4.2程序代码说明292
20.5实例总结300
第21章UART异步串行接口模块
第21章设计301
21.1实例说明301
21.2串行通信原理301
21.2.1异步串行通信301
21.2.2同步串行通信302
21.2.3RS-232-C接口302
21.3硬件电路设计304
21.4软件设计305
21.4.1串口中断程序305
21.4.2串口调试程序代码306
21.5实例总结308
第22章ARP网络寻址模块设计309
22.1实例说明309
22.2ARP设计310
22.2.1ARP协议工作原理310
22.2.2硬件ARP实现311
22.3软件设计311
22.3.1ARP实现流程311
22.3.2ARP程序设计313
22.4实例总结317
第23章Boot-loader模块设计318
23.1实例说明318
23.2设计思路分析319
23.2.1Boot-loader原理320
23.2.2Boot-loader的stage1322
23.2.3Boot-loader的stage2323
23.3实现方法326
23.3.1Boot-loader的设置326
23.3.2Boot-loader程序设计327
23.3.3Boot-loader程序烧写330
23.4实例总结331
第24章基于Nand-Flash的文件
第24章系统设计332
24.1实例说明332
24.2根文件系统原理332
24.2.1Linux源文件的组织结构332
24.2.2文件系统指标334
24.2.3文件系统分类334
24.3根文件创建过程336
24.3.1配置NFS336
24.3.2创建根文件系统336
24.3.3文件系统的页面管理340
24.4实例总结342
第25章GUI系统的移植与应用
第25章设计343
25.1实例说明343
25.2GUI系统原理343
25.2.1常用的GUI系统343
25.2.2GUI设计要求346
25.3不同GUI平台的移植配置347
25.3.1MicroWindows的移植配置347
25.3.2MiniGUI的移植配置348
25.3.3Qt/Embedded的移植配置348
25.4GUI图形显示的实现349
25.4.1GUI系统的移植过程349
25.4.2基于Frame-buffer的GUI
25.4.2图形显示350
25.5实例总结352
第26章ARMLinux的移植与应用
第26章设计353
26.1实例说明353
26.2Linux系统移植原理354
26.2.1系统移植类型354
26.2.2系统移植的启动阶段354
26.3ARMLinux的移植过程355
26.3.1建立Linux交叉编译环境355
26.3.2剪裁和配置ARMLinux
25.4.2内核357
26.3.3引导内核启动流程362
26.3.4编写嵌入式Linux的设备
25.4.2驱动程序364
26.4实例总结367
第27章?C/OS-Ⅱ移植与应用设计368
27.1?C/OS-Ⅱ实例内容368
27.2?C/OS-Ⅱ概述368
27.2.1?C/OS-II简介368
27.2.2?C/OS-II的特点369
27.3?C/OS-Ⅱ移植371
27.3.1?C/OS-II文件体系结构371
27.3.2?C/OS-II移植条件371
27.3.3?C/OS-II在S3C44B0X
25.4.2上的移植372
27.4?C/OS-Ⅱ实例软件设计373
27.5实例总结375
第三篇综合应用系统设计实例篇
第28章餐厅手持电子点菜系统
第28章设计378
28.1实例说明378
28.2设计思路分析378
28.2.1系统工作原理378
28.2.2系统功能模块379
28.3系统硬件设计379
28.4系统软件设计380
28.4.1系统初始化程序代码380
28.4.2主程序部分385
28.5实例总结390
第29章UDP数据报与TCP传输
第29章应用系统设计391
29.1实例说明391
29.2UDP与TCP数据传输原理391
29.2.1UDP工作原理391
29.2.2TCP工作原理392
29.3层间接口设计393
29.4软件设计396
29.4.1UDP数据报传输396
29.4.2TCP数据传输的实现401
29.5实例总结409
第30章音频编解码应用系统设计410
30.1实例说明410
30.2音频编解码原理411
30.2.1音频编解码框图411
30.2.2音频编码过程412
30.2.3IIS音频总线414
30.2.4IIS音频时钟与传输方式415
30.3硬件电路设计416
30.3.1音频A/D单元416
30.3.2与ARM音频接口417
30.4软件设计417
30.5实例总结421
第31章数字视频监控应用系统
第31章设计422
31.1实例说明422
31.2设计思路分析422
31.2.1监控系统实现方案422
31.2.2监控系统应用举例424
31.3硬件电路设计425
31.3.1ARM视频监控平台425
31.3.2VGA接口与权电阻网络426
31.3.3CMOS图像采集模块427
31.4软件设计429
31.4.1监控主程序流程429
31.4.2程序代码说明430
31.5实例总结447
第32章指纹识别应用系统设计448
32.1实例说明448
32.2指纹识别448
32.2.1基本概念449
32.2.2指纹识别的基本原理449
32.2.3指纹识别的方法450
32.3硬件电路设计454
32.3.1指纹硬件电路454
32.3.2电路原理图455
32.4软件设计456
32.4.1指纹识别驱动456
32.4.2指纹处理程序设计456
32.5实例总结464
第33章车载信息系统设计466
33.1实例说明466
33.2设计思路分析467
33.2.1车载系统的结构467
33.2.2车载系统的基本原理468
33.2.3车载系统开发平台468
33.2.4系统软件体系结构469
33.3硬件电路设计469
33.3.1硬件电路470
33.3.2硬件模块说明470
33.4软件设计472
33.4.1相关驱动说明473
33.4.2模块程序设计474
33.4.3整体设计476
33.4.4部分源程序476
33.5实例总结485
……