第1章嵌入式系统及应用开发概述1
1.1嵌入式系统的定义及特点1
1.1.1嵌入式系统的定义1
1.1.2嵌入式系统的特点2
1.2嵌入式系统的发展及应用3
1.2.1嵌入式系统的发展3
1.2.2嵌入式系统的应用5
1.3嵌入式系统的总体组成5
1.3.1嵌入式系统的硬件6
1.3.2嵌入式系统的软件7
1.4常用的嵌入式处理器8
1.4.1嵌入式处理器的种类8
1.4.2典型ARM微处理器系列9
1.5常用的嵌入式操作系统16
1.5.1嵌入式操作系统及其特点16
1.5.2几种常用嵌入式操作系统16
1.6嵌入式系统的设计方法18
1.6.1嵌入式系统的总体考虑18
1.6.2嵌入式系统的设计步骤19
1.6.3嵌入式系统的设计方法20
1.7嵌入式系统的应用开发22
1.7.1嵌入式系统的开发环境22
1.7.2嵌入式系统的调试工具22
1.7.3嵌入式系统的应用模式23
1.7.4嵌入式应用软件的开发24
1.8嵌入式系统的学习探讨25
1.8.1嵌入式系统的学习内容25
1.8.2嵌入式系统的学习条件26
1.8.3嵌入式系统的学习方法27
习题129
第2章ARM嵌入式处理器体系结构30
2.1嵌入式处理器内核种类30
2.2ARM体系结构概述31
2.2.1ARM体系结构的发展31
2.2.2ARM体系结构的技术特征33
2.2.3ARM处理器的工作状态与工作模式33
2.2.4ARM处理器的寄存器组35
2.2.5ARM处理器的异常中断37
2.2.6ARM的存储器格式及数据类型42
2.3ARM流水线技术43
2.3.1流水线电路设计基础知识43
2.3.2微处理器指令流水线处理44
2.3.3ARM的3级指令流水线45
2.3.4ARM的5级指令流水线46
2.4ARM处理器内核结构46
2.4.1ARM处理器内核概述46
2.4.2ARM7TDMI处理器内核47
2.4.3ARM7TDMI存储器接口50
2.4.4ARM7TDMI的调试接口52
2.4.5ARM920T处理器核54
2.4.6AMBA总线体系结构55
2.4.7ARM的MMU部件56
习题262
第3章ARM嵌入式处理器指令系统64
3.1ARM指令分类及指令格式64
3.1.1ARM指令分类64
3.1.2ARM指令格式65
3.1.3ARM指令中的操作数符号67
3.1.4ARM指令中的移位操作67
3.2ARM指令的寻址方式69
3.3ARM指令集73
3.3.1数据处理类指令73
3.3.2程序状态寄存器访问指令78
3.3.3程序分支指令79
3.3.4加载/存储指令80
3.3.5协处理器指令83
3.3.6异常中断指令85
3.4Thumb指令集85
3.4.1数据处理类指令86
3.4.2程序分支指令87
3.4.3加载/存储指令88
3.4.4异常中断指令89
习题390
第4章ARM嵌入式系统程序设计及调试基础91
4.1ARM嵌入式汇编语言程序设计基础91
4.1.1ARM汇编器支持的伪指令91
4.1.2ARM汇编语言的语句格式100
4.1.3ARM汇编语言的程序结构103
4.2ARM嵌入式C语言程序设计基础104
4.2.1嵌入式C语言程序设计基础105
4.2.2嵌入式C语言程序设计结构110
4.2.3嵌入式C语言程序设计技巧111
4.3ARM汇编语言与C/C的混合编程112
4.3.1ATPCS过程调用规范概述112
4.3.2汇编语言与C/C的混合编程115
4.4ARMADS集成开发环境的使用117
4.4.1ADS集成开发环境简介117
4.4.2CodeWarrior的使用方法118
4.4.3用AXD调试器进行代码调试125
4.5EmbestIDE集成开发环境的使用129
4.5.1EmbestIDE集成开发环境简介129
4.5.2EmbestIDE的使用方法130
习题4132
第5章ARM嵌入式处理器及其应用编程133
5.1几种典型ARM嵌入式处理器结构概述133
5.1.1S3C44B0X嵌入式微处理器的体系结构133
5.1.2S3C2410X/S3C2440X嵌入式微处理器的体系结构134
5.1.3LPC2000嵌入式微控制器的体系结构140
5.1.4XScale嵌入式微处理器PXA250的
5.2ARM处理器芯片的应用选择143
5.2.1ARM处理器芯片的选择原则143
5.2.2ARM处理器芯片主要供应商146
5.2.3ARM处理器芯片的选择实例146
5.3ARM处理器内部组件及外围器件控制的基本原理147
5.3.1微处理器中控制寄存器的定义举例147
5.3.2微处理器中控制寄存器的含义及作用149
5.3.3微处理器中控制寄存器的初始化方法149
5.4S3C2410X/S3C2440X存储控制类组件及应用编程151
5.4.1存储器控制器组件及应用编程151
5.4.2SDRAM存储器接口156
5.4.3NandFlash存储器接口158
5.4.4NorFlash存储器接口161
5.5S3C2410X/S3C2440X输入/输出类组件及应用编程162
5.5.1输入/输出端口组件及应用162
5.5.2LCD控制组件及应用173
5.6S3C2410X/S3C2440X中断控制组件及应用编程185
5.6.1中断控制组件的定义185
5.6.2中断系统的应用编程192
5.7S3C2410X/S3C2440X计数/定时类PWM组件及应用编程194
5.7.1PWM组件的组成结构194
5.7.2PWM组件的应用编程201
5.8S3C2410X/S3C2440X通信控制类组件及应用编程203
5.8.1UART组件及应用编程203
5.8.2SPI组件及应用编程212
5.9S3C2410X/S3C2440X总线接口类组件及应用编程217
5.9.1I2C总线组件及应用编程217
5.9.2I2S总线组件及应用编程223
5.10S3C2410X/S3C2440XADC组件及应用编程230
5.10.1模数转换ADC组件230
5.10.2ADC组件的应用编程233
5.11S3C2410X/S3C2440X触摸屏组件及其应用编程234
5.11.1触摸屏组件的构成234
5.11.2触摸屏组件的编程238
5.12S3C2410X/S3C2440X嵌入式微处理器外部接口电路设计243
5.12.1电源模块的设计243
5.12.2时钟模块的设计245
5.12.3复位电路的设计246
5.12.4USB接口电路的设计247
5.12.5UART接口电路的设计248
5.12.6JTAG接口电路设计250
习题5250
第6章嵌入式Linux操作系统及应用252
6.1嵌入式Linux操作系统概述252
6.1.1常用嵌入式Linux系统252
6.1.2嵌入式Linux系统内核253
6.1.3嵌入式Linux的文件系统257
6.1.4嵌入式Linux的开发步骤259
6.2嵌入式Linux的常用命令260
6.2.1登录与退出命令261
6.2.2文件操作命令262
6.2.3目录操作命令263
6.2.4文本操作命令264
6.2.5压缩与备份命令265
6.2.6用户相关命令267
6.2.7磁盘管理命令268
6.2.8权限管理命令269
6.2.9其他操作命令271
6.3嵌入式Linux开发环境的构建272
6.3.1操作系统的安装272
6.3.2开发环境的配置273
6.3.3交叉编译环境构建274
6.3.4Makefile和Make277
6.3.5镜像文件的烧写279
6.4嵌入式Linux内核的移植280
6.4.1移植内核准备工作281
6.4.2修改Linux源码参数281
6.4.3配置Linux内核281
6.4.4编译Linux内核283
6.4.5烧写镜像到开发板283
习题6283
第7章嵌入式系统的BootLoader284
7.1BootLoader概述284
7.1.1BootLoader的作用和任务284
7.1.2常用嵌入式BootLoader介绍285
7.2BootLoader与嵌入式系统的关系287
7.2.1BootLoader的操作模式287
7.2.2BootLoader的总体设计288
7.3BootLoader的主要功能及典型结构289
7.3.1BootLoader的阶段1289
7.3.2BootLoader的阶段2291
7.4S3C44B0X的BootLoader分析292
7.5U-Boot启动流程及相关代码分析294
7.5.1U-Boot启动流程294
7.5.2U-Boot代码分析295
习题7305
第8章ARM嵌入式系统设计开发实例306
8.1基于ARMμC/OS-Ⅱ的嵌入式磨削数控系统的设计306
8.1.1前言306
8.1.2系统硬件设计306
8.1.3系统软件设计308
8.1.4结论310
8.2基于ARMLinux的现代化超市电子购物系统的设计310
8.2.1前言310
8.2.2系统总体设计311
8.2.3移动购物终端硬件设计312
8.2.4移动购物终端软件设计313
8.2.5移动购物服务器端设计315
8.2.6系统设计开发调试结果315
8.2.7结论317
8.3基于ARMLinux的嵌入式数控磨床控制系统的设计317
8.3.1前言317
8.3.2系统总体设计317
8.3.3系统硬件设计317
8.3.4系统软件设计320
8.3.5系统设计开发调试结果322
8.3.6结论324
第9章基于ARM开发工具的基础实验325
9.1ARM汇编指令使用实验——基本数学/逻辑运算325
9.2ARM汇编指令使用实验——存储区数据块的传送328
9.3汇编语言与C语言的相互调用实验——随机数发生器330
9.4C语言程序组件应用实验——PWM直流电机控制333
第10章Linux操作系统的综合应用实践346
10.1Linux操作系统的安装及设置346
10.1.1VMware虚拟机的安装346
10.1.2Linux操作系统的安装347
10.1.3Linux操作系统的设置350
10.2Linux开发环境的构建及移植351
10.2.1系统工具安装的准备352
10.2.2交叉编译器的安装354
10.2.3U-Boot的配置与编译355
10.2.4Linux内核的配置与编译356
10.2.5实用工具Busybox的安装361
10.2.6apps的安装过程363
10.2.7GUI工具包Qt的安装364
10.2.8Linux移植镜像的下载366
10.2.9Linux开发环境的构建及移植总结370
10.3Linux操作系统Qt的使用370
10.3.1Qt/Embedded程序设计基础370
10.3.2使用Qt制作应用程序372
10.3.3Qt应用程序的编译与移植379
参考文献382