《ARM与嵌入式技术》PDF下载

  • 购买积分:11 如何计算积分?
  • 作  者:孙红波,陶品,李莉,刘瑾等编著
  • 出 版 社:北京:电子工业出版社
  • 出版年份:2006
  • ISBN:7121023687
  • 页数:259 页
图书介绍:本书内容分三部分:第一部分是ARM基础内容,介绍ARM的基本概念、基本结构、基本寻址方式和基本指令,通过PHILIPS公司的LPC2200系列芯片对ARM微控制器给予详细介绍。第二部是编程技术。配合LPC2292实验系统给出若干实验,如实现串行通信、A/D转换、LCD驱动、键盘扩展、定时器、GUI、和USB驱动等。第三部分主要介绍嵌入式Linux的基础知识和嵌入式Linux开发环境的配置。主要介绍μClinux操作系统相关的知识,如任务管理、任务间通信、内存与I/O管理以及中断处理机制等。全书侧重基本概念,内容丰富,语言流畅,通俗易懂。本书备有相应习题练习和机考系统。本书本书在编写中,尽量减少对其他专业的依托。它既可作为各高等院校有关嵌入式理工科大学本科生的教材,也可为从事ARM及嵌入式Linux的工程人员提供学习和参考。

第1章 ARM处理器概述 1

1.1 ARM技术的发展 1

1.2 RISC微处理器的体系结构及其特点 2

1.3 ARM微处理器的指令系统 3

1.4 ARM处理器系列 3

1.4.1 ARM7微处理器系列 4

1.4.2 ARM9微处理器系列 4

1.4.3 ARM9E微处理器系列 4

1.4.4 ARM10E微处理器系列 5

1.4.5 SecurCore微处理器系列 5

1.4.6 Xscale处理器 6

1.5 ARM微处理器的应用系统开发 6

习题1 6

第2章 ARM体系结构 7

2.1 ARM7TDMI程序员模型 7

2.1.1 内核概述 7

2.1.2 译码器与控制逻辑 8

2.1.3 运算器 9

2.1.4 内核接口信号 9

2.2 工作状态与工作模式 13

2.2.1 工作状态 13

2.2.2 ARM的工作模式 14

2.3 ARM和Thumb状态的寄存器组织 15

2.3.1 通用寄存器 15

2.3.2 Thumb状态下的寄存器组织 16

2.3.3 程序计数器 17

2.3.4 程序状态寄存器 17

2.3.5 连接寄存器 19

2.3.6 堆栈指针寄存器 19

2.4 存储器组织结构 20

2.4.1 数据类型和存储数据格式 20

2.4.2 数据总线类型 21

2.4.3 ARM7TDMI总线访问周期 24

2.4.4 指令预取与代码自修改 26

2.4.5 AMBA接口(Advanced Microcontroller Bus Architecture) 27

2.5 异常(Exceptions) 27

2.5.1 异常类型及其处理过程 27

2.5.2 异常优先级(Exception Priorities)和异常向量(Exception Vectors) 29

2.5.3 应用程序中的异常响应 29

2.5.4 异常返回 30

2.6 复位 31

2.7 协处理器接口 31

2.7.1 协处理器概述 31

2.7.2 ARM7TDMI与协处理器的协同关系 32

2.7.3 协处理器使用中的若干问题 32

习题2 33

第3章 ARM指令的特点和寻址方式 34

3.1 ARM指令特点 34

3.2 ARM指令的寻址方式 35

习题3 40

第4章 ARM指令系统概述 42

4.1 分支指令 44

4.2 ARM的数据处理指令 45

4.2.1 算术运算类指令 45

4.2.2 逻辑运算类指令 47

4.2.3 比较类指令 49

4.2.4 测试类指令 49

4.2.5 传送类指令 50

4.2.6 乘法类指令 51

4.3 异常处理指令 53

4.4 ARM的存储器加载/存储指令 54

4.4.1 单寄存器加载 55

4.4.2 单寄存器存储 57

4.4.3 多寄存器加载和多寄存器存储 58

4.4.4 寄存器交换 59

4.5 协处理器指令 60

4.6 ARM状态寄存器访问指令 62

习题4 63

第5章 ARM汇编语言程序设计 64

5.1 ARM汇编语言伪指令 64

5.1.1 符号定义伪指令 64

5.1.2 空间分配伪指令 66

5.1.3 汇编控制伪指令 68

5.1.4 格式控制伪指令 70

5.1.5 ARM伪指令 71

5.1.6 Thumb伪指令 73

5.2 ARM汇编语言语句格式 73

5.2.1 ARM汇编语言中的符号 74

5.2.2 汇编语言程序中的表达式和运算符 76

5.3 ARM语言程序结构 77

5.4 简单的ARM程序设计 78

5.4.1 简单的ARM程序 78

5.4.2 子程序调用程序设计 79

5.4.3 分支程序设计 79

5.4.4 查表与散转程序设计 80

5.4.5 数据串拷贝程序的设计 81

习题5 83

第6章 ARM-Thumb交互工作 84

6.1 交互工作原理 84

6.1.1 交互工作的必要性 84

6.1.2 交互工作的切换指令 84

6.1.3 与状态切换有关的伪指令 85

6.2 交互程序 85

6.2.1 简单的交互程序设计的例子 85

6.2.2 ARM指令头的例子 86

6.2.3 交互子程序调用 86

6.3 ARM v5T扩展 88

6.4 交互子程序和Veneer 89

6.4.1 交互编译选项 89

6.4.2 Veneer 90

习题6 90

第7章 LPC2200系列原理与功能 92

7.1 概述 92

7.1.1 特性 92

7.1.2 结构 93

7.2 管脚分布及信号描述 95

7.3 存储系统 101

7.3.1 存储器映射 101

7.3.2 存储器加速模块(MAM) 105

7.3.3 外部存储器控制器(EMC) 107

7.4 时钟控制电路 110

7.4.1 晶体振荡器 110

7.4.2 PLL及相关寄存器 110

7.4.3 VPB分频器及相关寄存器 113

7.5 复位和功率控制 113

7.5.1 复位 113

7.5.2 功率控制 114

7.6 中断 116

7.6.1 向量中断控制器VIC 116

7.6.2 外部中断 121

7.7 其他片上外围模块 122

习题7 127

第8章 LPC2200系列开发平台 128

8.1 概述 128

8.2 硬件电路的设计及其注意事项 129

8.2.1 电源、晶振及复位信号的处理 129

8.2.2 JTAG接口电路的正确设计 130

8.2.3 模式管脚的连接方法 131

8.2.4 存储器扩展 131

8.2.5 UART扩展 134

8.2.6 CAN总线扩展 135

8.2.7 USB接口 135

8.2.8 硬件系统设计需要考虑的问题 136

习题8 136

第9章 集成开发环境Embest IDE 137

9.1 Embest IDE概述 137

9.1.1 Embest IDE开发环境 137

9.1.2 Embest IDE安装 138

9.1.3 Embest IDE主框架窗口 139

9.2 Embest IDE的编辑 139

9.3 工程管理 140

9.3.1 工程管理的操作 141

9.3.2 工程配置 142

9.4 编译、汇编和链接 144

9.4.1 GNU Tools for ARM选项 144

9.4.2 ARM Build Tools选项 147

9.4.3 工程文件夹的编译设置 147

9.4.4 工程编译、汇编和链接 148

9.5 工程调试 148

9.5.1 调试设置 149

9.5.2 调试 151

9.5.3 Embest IDE附带工具介绍 154

9.6 GNU编译环境下程序的编写 155

9.6.1 移植SDT的汇编程序 155

9.6.2 链接脚本文件 157

习题9 159

第10章 ARM高级语言程序设计基础 160

10.1 C语言与汇编的混合编程 160

10.1.1 ARM过程调用标准ATPCS 160

10.1.2 内嵌汇编器 162

10.1.3 C语言和ARM汇编语言间相互调用 166

10.2 基本I/O程序(含启动代码) 168

10.2.1 启动代码 168

10.2.2 基本I/O主程序 173

10.3 SPI通信程序 175

10.4 串口通信程序 176

10.5 A/D程序 177

10.6 中断程序 178

习题10 179

第11章 嵌入式Linux 180

11.1 嵌入式操作系统概述 180

11.1.1 操作系统的作用 180

11.1.2 操作系统的主要任务 181

11.1.3 嵌入式操作系统的特点 181

11.1.4 典型的嵌入式实时操作系统 184

11.2 嵌入式Linux操作系统内核及其特点 186

11.2.1 GNU及自由软件开发模式 186

11.2.2 Linux内核的引入 187

11.2.3 Linux内核的特点 187

11.2.4 标准Linux内核的变种 188

11.3 Linux与uClinux 190

11.3.1 uClinux名称释义 191

11.3.2 MMU工作机制 191

11.3.3 uClinux与普通Linux系统的异同 192

11.3.4 uClinux的发展前景 193

11.4 构建一个嵌入式Linux系统 194

11.4.1 Linux内核与Linux系统 194

11.4.2 嵌入式Linux系统的特点 195

11.4.3 嵌入式系统的开发 195

11.4.4 开发一个嵌入式Linux系统 197

习题11 198

第12章 嵌入式Linux内核移植和定制 199

12.1 Linux内核代码的基本结构 199

12.2 Linux内核的配置与编译 200

12.2.1 内核配置 201

12.2.2 应用程序配置 203

12.3 嵌入式Linux的引导过程 204

12.4 内核移植的一般步骤 207

12.5 根文件系统的分析与构造 210

12.5.1 根文件系统的组成 210

12.5.2 文件系统的选择 210

12.5.3 根文件系统的生成 211

习题12 211

第13章 嵌入式Linux应用程序的开发 212

13.1 概述 212

13.2 嵌入式应用程序的开发过程 212

13.3 交叉编译环境的建立 213

13.3.1 Cygwin开发环境 214

13.3.2 交叉编译工具gcc 215

13.4 多程序的编译工具make 218

13.5 交叉调试工具gdb 221

13.5.1 gdb的使用 221

13.5.2 gdb的基本命令 222

13.5.3 gdb的工作过程 223

13.5.4 关于core文件 224

13.5.5 调试运行中的进程 225

习题13 225

第14章 嵌入式Linux驱动程序的开发 226

14.1 概述 226

14.2 将设备驱动程序纳入到文件系统中 228

14.3 设备驱动程序的编程框架及函数调用接口 229

14.3.1 设备驱动程序开发的特性与共性 229

14.3.2 程序框架及解释 229

14.4 设备驱动程序的实例 236

14.5 设计自己的驱动程序 244

14.5.1 设备的功能 244

14.5.2 设备的实现 245

14.5.3 其他驱动程序相关技术 255

14.5.4 动态加载设备驱动程序 257

习题14 258

参考文献 259