内容简介
本书在全面介绍ARM处理器的体系结构、编程模型、指令系统和的RealView MDK开发环境的同时,以英蓓特公司的EduKit-Ⅲ实验教学系统为平台,以ARM9处理器S3C2410为核心,详细介绍了系统的设计及相关接口的操作,并提供了大量的实验例程。本书详细讲解了嵌入式Linux系统各个组成部分在教学系统上的移植过程。
本书可作为高等院校计算机、电子信息、通信工程、自动化等专业嵌入式系统教程的教材,也可作为相关嵌入式系统开发人员的参考书。
目录
目 录
第1章 嵌入式系统概述 1
1.1 嵌入式系统简介 1
1.2 嵌入式系统发展趋势 1
1.3 嵌入式系统的硬件和软件特征 2
1.4 ARM系列处理器简介 4
1.4.1 ARM7处理器系列 5
1.4.2 ARM9处理器系列 5
1.4.3 ARM9E处理器系列 6
1.4.4 ARM10处理器系列 6
1.4.5 ARM10E处理器系列 6
1.4.6 ARM11处理器系列 7
1.4.7 SecureCore处理器系列 7
1.4.8 StrongARM和Xscale处理器系列 7
1.4.9 Cortex和MPCore处理器系列 7
1.4.10 各种处理器系列之间的比较 7
本章小结 8
思考题 8
第2章 ARM体系结构与指令集 9
2.1 ARM体系结构的特点 9
2.2 ARM处理器工作模式 9
2.3 寄存器组织 10
2.3.1 通用寄存器 11
2.3.2 状态寄存器 12
2.3.3 程序计数器 14
2.4 流水线 15
2.4.1 流水线的概念与原理 15
2.4.2 流水线的分类 15
2.4.3 影响流水线性能的因素 16
2.5 ARM存储系统 17
2.5.1 协处理器 18
2.5.2 存储管理单元 18
2.5.3 高速缓冲存储器 19
2.6 异常 19
2.6.1 异常的种类 19
2.6.2 异常的优先级 20
2.6.3 构建异常向量表 20
2.6.4 异常响应流程 22
2.6.5 从异常处理程序中返回 23
2.7 ARM处理器的寻址方式 24
2.7.1 数据处理指令寻址方式 24
2.7.2 内存访问指令寻址方式 25
2.8 ARM处理器的指令集 28
2.8.1 数据操作指令 28
2.8.2 乘法指令 33
2.8.3 Load/Store指令 35
2.8.4 单数据交换指令 40
2.8.5 跳转指令 41
2.8.6 状态操作指令 43
2.8.7 协处理器指令 45
2.8.8 异常产生指令 46
本章小结 48
思考题 48
第3章 ARM汇编语言程序设计 49
3.1 ARM/Thumb混合编程 49
3.1.1 Thumb指令的特点及实现 49
3.1.2 ARM/Thumb交互工作基础 50
3.1.3 ARM/Thumb交互子程序 52
3.2 ARM汇编器支持的伪操作 57
3.2.1 伪操作概述 57
3.2.2 符号定义伪操作 57
3.2.3 数据定义伪操作 60
3.2.4 汇编控制伪操作 64
3.2.5 杂项伪操作 68
3.3 ARM汇编器支持的伪指令 75
3.3.1 ADR伪指令 75
3.3.2 ADRL伪指令 75
3.3.3 LDR伪指令 76
3.4 汇编语言与C/C++的混合编程 77
3.4.1 内联汇编 77
3.4.2 嵌入型汇编 79
3.4.3 汇编代码访问C全局变量 82
3.4.4 C++中使用C头文件 82
3.4.5 混合编程调用举例 83
本章小结 87
思考题 87
第4章 嵌入式软件基础实验 88
4.1 Realview MDK简介 88
4.2 Ulink2仿真器简介 89
4.3 使用Realview MDK创建一个工程 89
4.3.1 选择工具集 89
4.3.2 创建工程并选择处理器 90
4.3.3 建立一个新的源文件 91
4.3.4 工程中文件的加入 91
4.3.5 工程基本配置 91
4.3.6 工程的编译链接 96
4.4 嵌入式软件开发基础实验 96
4.4.1 ARM汇编指令实验一 96
4.4.2 ARM汇编指令实验二 101
4.4.3 Thumb汇编指令实验 102
4.4.4 ARM处理器工作模式实验 103
4.4.5 C语言实验程序一 106
4.4.6 C语言实验程序二 108
4.4.7 汇编语言与C语言相互调用
实例 111
本章小结 113
第5章 ARM应用系统设计 114
5.1 SoC系统概述 114
5.2 S3C2410概述 114
5.3 S3C2410系统功能电路设计 115
5.3.1 概述 115
5.3.2 电源电路 117
5.3.3 时钟电路 117
5.3.4 复位电路 118
5.3.5 JTAG