内容简介
本书在全面介绍主流ARM处理器的体系结构、编程模型、指令系统及RealView MDK开发环境的同时,以目前行业主流的基于ARM920T的应用处理器S3C2410X为例,详细介绍了系统的设计及相关接口技术。接口技术中涵盖了I/O、中断、串口、存储器、PWM、A/D、LCD,并提供了大量实验内容,第13章还提供了一个综合实例。同时,本书还介绍了目前的Cortex-A8和Cortex-M0处理器的相关特点和行业应用。
目录
目 录
第1章 嵌入式系统基础知识 1
1.1 嵌入式系统概述 2
1.1.1 嵌入式系统简介 2
1.1.2 嵌入式系统的特点 2
1.1.3 嵌入式系统的发展 3
1.2 嵌入式系统的组成 5
1.2.1 嵌入式系统硬件组成 6
1.2.2 嵌入式系统软件组成 7
1.3 嵌入式操作系统举例 7
1.3.1 商业版嵌入式操作系统 8
1.3.2 开源版嵌入式操作系统 8
1.4 嵌入式系统开发概述 9
1.5 本章小结 17
1.6 本章习题 17
第2章 ARM技术概述 18
2.1 ARM体系结构的技术特征及发展 19
2.1.1 ARM公司简介 19
2.1.2 ARM技术特征 20
2.1.3 ARM体系结构的发展 20
2.2 ARM微处理器简介 22
2.2.1 ARM7处理器系列 23
2.2.2 ARM9处理器系列 24
2.2.3 ARM9E处理器系列 24
2.2.4 ARM11处理器系列 25
2.2.5 SecurCore处理器系列 25
2.2.6 StrongARM和Xscale处理器系列 25
2.2.7 MPCore 处理器系列 26
2.2.8 Cortex处理器系列 26
2.3 ARM 微处理器结构 29
2.4 ARM 微处理器的应用选型 29
2.4.1 ARM芯片选择的一般原则 29
2.4.2 选择一款适合高职、高专教学的ARM芯片 30
2.5 ARM920T内部功能及特点 34
2.6 数据类型 35
2.6.1 ARM的基本数据类型 35
2.6.2 浮点数据类型 36
2.6.3 存储器大/小端 36
2.7 ARM920T内核工作模式 38
2.8 ARM920T存储系统 39
2.8.1 协处理器(CP15) 40
2.8.2 存储管理单元(MMU) 41
2.8.3 高速缓冲存储器(Cache) 41
2.9 流水线 42
2.9.1 流水线的概念与原理 42
2.9.2 流水线的分类 43
2.9.3 影响流水线性能的因素 44
2.10 寄存器组织 45
2.11 通用寄存器 46
2.12 程序状态寄存器 48
2.13 三星S3C2410X处理器介绍 50
2.14 本章小结 52
2.15 本章习题 52
第3章 ARM微处理器的指令系统 53
3.1 ARM处理器的寻址方式 54
3.1.1 数据处理指令寻址方式 54
3.1.2 内存访问指令寻址方式 55
3.2 ARM处理器的指令集 58
3.2.1 数据操作指令 58
3.2.2 乘法指令 65
3.2.3 Load/Store指令 68
3.2.4 跳转指令 74
3.2.5 状态操作指令 77
3.2.6 协处理器指令 79
3.2.7 异常产生指令 81
3.3 本章小结 83
3.4 本章习题 83
第4章 ARM汇编语言程序设计 85
4.1 ARM汇编器支持的伪操作 86
4.1.1 伪操作概述 86
4.1.2 符号定义伪操作 86
4.1.3 数据定义(Data Definition)伪操作 89
4.1.4 汇编控制伪操作 96
4.1.5 杂项伪操作 100
4.2 ARM汇编器支持的伪指令 108
4.3 ARM 汇编语言的语句格式 111
4.3.1 ARM 汇编语言中的符号 111
4.3.2 ARM 汇编语言中的表达式和运算符 114
4.3.3 ARM 汇编语言内置的变量 120
4.4 ARM 汇编语言的程序结构 121
4.4.1 汇编语言的程序格式 121
4.4.2 汇编语言子程序调用 122
4.4.3 过程调用标准AAPCS 122
4.4.4 scatter文件的使用 124
4.4.5 汇编语言程序设计举例 126
4.5 汇编语言与C语言的混合编程 128
4.5.1 内联汇编 129
4.5.2 嵌入型汇编 131
4.5.3 汇编代码访问C全局变量 133
4.5.4 混合编程调用举例 134
4.6 本章小结 135
4.7 本章习题 135
第5章 ARM RealView MDK集成开发环境 136
5.1 RealView MDK环境介绍 137
5.2 Ulink2仿真器简介 138
5.3 RealView MDK的使用 139
5.3.1 选择工具集 139
5.3.2 创建工程并选择处理器 139
5.3.3 建立一个新的源文件 141
5.3.4 工程中文件