第1章 ARM微处理器概述 1
1.1 ARM简介 1
1.2 ARM微处理器的特点及实际应用 2
1.2.1 ARM微处理器的特点 2
1.2.2 ARM微处理器的实际应用 2
1.3 ARM微处理器系列 3
1.3.1 ARM7微处理器系列 3
1.3.2 ARM9微处理器系列 4
1.3.3 ARM9E微处理器系列 4
1.3.4 ARM10E微处理器系列 5
1.3.5 SecurCore微处理器系列 5
1.3.6 StrongARM微处理器系列 6
1.3.7 XScale处理器 6
1.3.8 ARM11微处理器系列 6
1.4 ARM微处理器结构 7
1.4.1 RISC体系结构及特点 7
1.4.2 ARM微处理器的寄存器结构 8
1.4.3 ARM微处理器的指令结构 9
1.5 ARM微处理器的关键技术 9
1.6 ARM的选型 10
1.6.1 ARM芯片选择的一般原则 10
1.6.2 多芯核结构ARM芯片的选择 13
1.6.3 主要ARM芯片供应商 13
思考题 13
第2章 ARM微处理器的编程模型 14
2.1 ARM微处理器的工作原理 14
2.1.1 ARM指令长度及数据类型 14
2.1.2 ARM的存储器格式 14
2.1.3 ARM微处理器的工作状态 15
2.1.4 处理器运行模式 16
2.2 ARM微处理器的寄存器组织 16
2.2.1 ARM状态下的寄存器组织 16
2.2.2 Thumb状态下的寄存器组织 19
2.2.3 Thumb状态与ARM状态下寄存器组织的关系 19
2.2.4 程序状态寄存器 20
2.3 异常处理机制 22
2.3.1 ARM体系结构所支持的异常 22
2.3.2 对异常的处理方法 23
2.3.3 应用程序中的异常处理 25
思考题 26
第3章 ARM微处理器的指令系统 27
3.1 ARM微处理器指令简介及寻址方式 27
3.1.1 ARM微处理器指令的分类与条件域 27
3.1.2 ARM指令的寻址方式 28
3.2 ARM指令集 30
3.2.1 跳转指令 30
3.2.2 数据处理指令 32
3.2.3 程序状态处理指令 36
3.2.4 加载/存储指令 37
3.2.5 协处理器指令 40
3.2.6 异常产生指令 41
3.2.7 乘法指令与乘加指令 42
3.2.8 移位指令(操作) 44
3.3 Thumb指令集与ARM指令集的比较 46
思考题 46
第4章 ARM程序设计基础 47
4.1 ARM汇编语言的语句格式 47
4.1.1 汇编语言程序中的符号 47
4.1.2 汇编语言程序中的表达式和运算符 48
4.2 ARM汇编器支持的伪指令 51
4.2.1 数据定义(Data Definition)伪指令 51
4.2.2 符号定义(Symbol Definition)伪指令 54
4.2.3 汇编结构(Assembly Structure)伪指令 55
4.2.4 汇编控制(Assembly Control)伪指令 59
4.2.5 其他常用的伪指令 61
4.3 汇编语言的程序结构 62
4.3.1 程序结构 62
4.3.2 子程序调用 62
4.3.3 汇编语言与C/C++的混合编程 63
4.3.4 汇编语言程序示例 63
思考题 66
第5章 嵌入式系统开发环境的介绍5.1 XScale微处理器结构介绍 67
5.2 嵌入式操作系统Windows CE的介绍 68
5.3 嵌入式操作系统Linux的介绍 68
5.3.1 Linux及其应用 69
5.3.2 Linux内核 72
5.3.3 典型嵌入式Linux系统 93
5.4 RealView MDK开发套件的使用 98
5.4.1 RealView MDK概述 98
5.4.2 RealView MDK开发套件的组成 99
5.4.3 使用RealView MDK创建工程 100
5.4.4 用RealView MDK进行代码调试 111
5.4.5 ADS TO MDK的转换 112
5.5 本章小结 121
思考题 121
第6章 ARM教学实验系统 122
6.1 EELiod教学开发平台介绍 122
6.1.1 整体介绍 122
6.1.2 EELiod系统实物图 122
6.1.3 EELiod系统硬件介绍 123
6.1.4 EELiod系统供电介绍 124
6.1.5 EELiod系统外围接口介绍 125
6.1.6 EELiod系统的音频接口 126
6.1.7 EELiod系统内存空间 126
6.1.8 GPIO空间 127
6.2 EELiod系统的操作 127
6.3 Windows CE 6.0嵌入式开发环境的搭建 128
6.3.1 需要准备的软件安装包 128
6.3.2 安装Visual Studio.Net 2005 128
6.3.3 安装SP1 130
6.3.4 安装Platform Builder 6.0 131
6.3.5 安装ActiveSync 131
6.3.6 安装BSP包 132
6.3.7 安装SDK 132
6.4 Windows CE 6.0镜像定制实验 133
6.4.1 Windows CE 6.0的BSP克隆 133
6.4.2 Windows Embedded CE 6.0镜像工程的创建 134
6.4.3 Windows Embedded CE 6.0工程的组件配置 136
6.4.4 Windows Embedded CE 6.0工程的编译配置 139
6.5 Windows CE 6.0映像下载 142
6.6 ActiveSync的使用 146
6.6.1 ActiveSync的安装 146
6.6.2 ActiveSync的设置 146
思考题 148
第7章 ARM汇编程序的典型应用7.1 应用一 系统引导 149
7.1.1 设计要求介绍 149
7.1.2 理解系统复位的内部操作 149
7.1.3 程序进入点的设计 151
7.1.4 系统初始化 151
7.1.5 硬件原理图分析 152
7.2 应用二 数码显示 153
7.2.1 设计要求介绍 153
7.2.2 数码管显示原理 153
7.2.3 硬件原理图 153
7.3 应用三 键盘检测 154
7.3.1 设计要求介绍 154
7.3.2 键盘接口介绍 155
7.3.3 键盘寄存器 156
7.3.4 程序分析 158
7.4 应用四 IRQ中断处理 158
7.4.1 设计要求介绍 158
7.4.2 中断向量表 158
7.4.3 中断开启和禁止 159
7.4.4 中断控制器 160
7.4.5 中断控制寄存器 161
7.4.6 中断控制器的使用 162
7.4.7 IRQ异常中断的响应过程 163
7.4.8 程序分析 164
7.5 应用五 定时器 164
7.5.1 设计要求介绍 164
7.5.2 相关概念理解 165
7.5.3 寄存器分析与配置 165
7.5.4 应用程序分析 167
7.6 应用六 串口传输 168
7.6.1 设计要求介绍 168
7.6.2 原理概述 168
7.6.3 寄存器使用与配置 171
7.6.4 串口应用设计步骤 176
7.7 应用七 实时时钟 179
7.7.1 设计要求介绍 179
7.7.2 概念理解 179
7.7.3 RTC寄存器分析 180
7.7.4 程序设计步骤 180
7.7.5 示例程序分析 181
7.8 应用八 LCD控制器 182
7.8.1 设计要求介绍 182
7.8.2 理解Frame Buffer 183
7.8.3 理解LCD控制器 186
7.8.4 LCD控制器的寄存器 190
7.8.5 LCD显示程序设计 191
思考题 203
第8章 Windows CE 6.0实验开发实例8.1 远程工具的使用方法 204
8.1.1 基本使用步骤 204
8.1.2 File Viewer的使用 207
8.1.3 System Information的使用 209
8.1.4 Performance Monitor的使用 210
8.1.5 Process Viewer的使用 213
8.2 文件操作管理实例操作步骤 215
8.3 内存堆栈分析实例操作步骤 220
8.4 线程调度分析实例操作步骤 231
8.5 标准流接口驱动实例操作步骤 236
8.6 SDK导出实例操作步骤 241
8.7 C#开发托管程序实例操作步骤 243
8.8 串口通信编程实例操作步骤 248
思考题 249
参考文献 250