第1章 嵌入式系统概述 1
嵌入式系统的概念 1
嵌入式系统的特点 2
嵌入式系统的应用 3
嵌入式系统的组成 4
嵌入式处理器 4
嵌入式操作系统 6
嵌入式系统开发工具 11
本章小结 13
思考题与习题 13
第2章ARM体系结构 14
RISC技术和流水线技术 14
计算机体系结构 14
RISC技术 15
流水线技术 16
ARM体系结构简介 17
ARM体系结构的演变 18
ARM体系结构的特征 19
ARM体系的变种 20
ARM系列 22
ARM存储数据类型 25
ARM处理器工作状态 26
两种工作状态 26
工作状态的切换 26
ARM处理器工作模式 26
ARM处理器寄存器组织 27
ARM状态下的寄存器组织 27
Thumb状态下的寄存器组织 30
ARM异常 31
ARM异常概述 32
ARM异常处理 32
ARM异常向量表 37
ARM异常优先级 38
ARM异常中断使用的寄存器 38
ARM存储器和存储器映射I/O 39
ARM体系的存储空间 39
ARM存储器格式 40
非对齐存储访问操作 40
存储器映射I/O 41
ARM总线技术 41
ARM存储系统 42
高速缓冲存储器Cache和紧耦合存储器TCM 42
存储管理 42
基于JTAG的调试系统 43
本章小结 45
思考题与习题 45
第3章 ARM指令系统 46
ARM指令集概述 46
指令分类和指令格式 46
ARM指令的条件码 47
ARM指令集编码 47
ARM指令寻址方式 48
立即寻址 48
寄存器寻址 49
寄存器移位寻址 49
寄存器间接寻址 50
变址寻址 50
多寄存器寻址 51
堆栈寻址 51
块复制寻址 52
相对寻址 53
ARM指令 53
跳转指令 53
数据处理指令 56
程序状态寄存器传送指令 66
加载和存储指令 68
协处理器指令 75
异常产生指令 77
其他指令 78
Thumb指令 79
本章小结 81
思考题与习题 81
第4章ARM汇编程序设计 83
ARM汇编语言语句格式 83
ARM汇编伪操作 83
符号定义伪操作 83
数据定义伪操作 88
汇编控制伪操作 92
数据帧描述伪操作 95
信息报告伪操作 95
其他杂项伪操作 97
ARM汇编语言伪指令 103
ARM汇编语言中的符号 106
ARM汇编语言中的表达式 108
ARM汇编语言程序结构 112
ARM映像文件的结构 112
ARM映像文件各组成部分的地址映射关系 113
scatter文件的应用 114
汇编语言子程序调用 117
子程序调用 117
ATPCS准则 118
C语言和汇编语言混合编程 120
内嵌汇编 120
C语言和汇编语言互相调用 122
ARMC编译器的特定关键字 123
ARM汇编语言设计实例 125
分支结构 125
循环结构 130
本章小结 133
思考题与习题 133
第5章 XScale内核及PXA270处理器简介 135
XScale内核简介 135
XScale内核的特点 135
XScale内核与StrongARM的区别 137
PXA270结构及特点 137
PXA270存储管理单元 140
内存管理单元 140
系统存储控制单元 140
DMA控制器 142
PXA270时钟及电源管理单元 143
时钟管理单元 143
电源管理单元 146
PXA270中断控制器 147
PXA270 I/O模块 148
GPIO 148
专用键盘接口 148
PXA270串行通信单元 149
USB主控制器 149
USB设备控制器 149
UART控制器 150
快速红外接口 150
SSP通信控制器 151
I2C总线控制器 151
PXA270定时器单元 151
实时时钟单元 151
OS定时器单元 153
脉冲宽度调制控制器 154
多媒体控制单元 155
AC′97控制器 155
I2S控制器 156
多媒体卡控制器 157
记忆棒主机控制器 158
视频快速捕捉接口 159
移动通信接口 160
MSL接口 160
USIM接口 161
LCD控制器 162
本章小结 162
思考题与习题 163
第6章 PXA270实验教学系统设计及应用程序设计实例 164
EELIOD XScale PXA270实验教学系统资源概述 164
EELIOD系统硬件接口设计 166
电源系统设计 166
存储系统设计 166
LCD及触摸屏接口设计 170
多媒体接口设计 173
通信接口设计 175
通用I/O接口设计 177
EELIOD系统程序设计实例 181
系统引导程序分析 181
通用I/O程序设计实例 183
LCD程序设计实例 185
本章小结 190
思考题与习题 190
第7章 嵌入式Linux 191
概述 191
Linux 191
嵌入式Linux系统交叉开发环境 193
开发工具GNU介绍 193
ARM Linux在EELIOD系统上的移植 197
ARM Linux开发环境的建立 197
ARM Linux的交叉编译 199
ARM Linux启动代码的编译及下载 203
ARM Linux内核的配置与编译 206
嵌入式Linux的文件系统 212
ARM Linux的设备驱动 214
Linux的设备管理 214
设备驱动程序结构 216
GPIO驱动程序设计 219
基于轮询的UART驱动程序设计 225
基于中断的UART驱动程序设计 231
ARM Linux下应用程序设计 238
UART应用程序设计 238
基于SOCKET的网络应用程序设计 247
USB摄像头接口应用程序设计 252
Framebuffer图片显示应用程序设计 256
嵌入式GUI简介 261
本章小结 262
思考题与习题 263
第8章ARM ADS集成开发环境 264
ARM开发工具及开发环境简介 264
ARM开发工具简介 264
Banyan-U ARM JTAG仿真工具 265
ARM ADS集成开发环境 268
工程创建、调试和程序固化 270
工程创建及参数设置 270
使用ARMulator来调试简单程序 281
使用JTAG仿真器来调试嵌入式程序 288
Semihosting调试技术 290
程序的固化 292
本章小结 295
思考题与习题 295
第9章 ARM应用实例 296
3G手机 296
3G手机简介 296
3G手机的功能 297
硬件方案 298
软件方案 298
基于PXA270的嵌入式流媒体播放器 299
系统简介 299
嵌入式流媒体播放器的硬件方案 299
嵌入式流媒体播放器的软件方案 300
车载多媒体远程监控服务系统 302
系统简介 302
功能与指标 302
方案设计 303
本章小结 306
思考题与习题 306
参考文献 307