《ARM嵌入式系统设计与开发指南》PDF下载

  • 购买积分:12 如何计算积分?
  • 作  者:周维虎,石良臣,何嘉扬编著
  • 出 版 社:北京:中国电力出版社
  • 出版年份:2009
  • ISBN:9787508389226
  • 页数:316 页
图书介绍:近几年来,嵌入式系统在众多领域得到了广泛的使用,而ARM处理器作为其中最重要的一部分,也得到了巨大的发展,预计在未来的几年中以ARM为核心的嵌入式系统在人类生活中的方方面面都会起到更大的作用。本书以基于ARM的嵌入式系统开发流程为主线,展示了嵌入式系统开发所要经历的各个环节。首先从嵌入式系统基础知识和ARM微处理器讲起,之后比较详细地介绍了ARM指令集,由于嵌入式开发一般都离不开Linux环境,接下来对Linux系统和简单的指令做了介绍。以一块典型的ARM开发板为例,介绍了嵌入式开发板的硬件特点,随后介绍了基于ARM的嵌入式Linux开发平台的搭建的开发步骤。本书从实践上提供了具体的操作步骤,使读者能够对嵌入式系统的开发有一般的理解。本书可作为高等院校电子类、电气类等专业初学者的嵌入式开发教材,也可供广大希望转入嵌入式领域的科研和工程技术人员参考使用,还可作为广大嵌入式培训班的教材和教辅材料。

第1章 嵌入式系统基础 1

1.1 嵌入式系统 1

1.1.1 嵌入式系统基本概念 2

1.1.2 嵌入式系统的特点 3

1.1.3 嵌入式系统的分类 4

1.2 嵌入式系统的组成 4

1.2.1 嵌入式处理器 6

1.2.2 嵌入式外围设备 8

1.2.3 常见嵌入式系统平台 9

1.2.4 嵌入式操作系统 9

1.2.5 嵌入式应用软件 10

1.3 嵌入式系统学习开发入门 11

1.4 嵌入式系统的发展趋势 11

1.5 嵌入式系统设计流程 12

本章小结 12

第2章 ARM微处理器概述 13

2.1 ARM起源和发展 13

2.2 ARM微处理器的应用领域及特点 14

2.2.1 ARM微处理器的应用领域 14

2.2.2 ARM微处理器的特点 15

2.3 ARM微处理器系列 15

2.3.1 ARM7微处理器系列 17

2.3.2 ARM9微处理器系列 18

2.3.3 ARM9E微处理器系列 18

2.3.4 ARM10E微处理器系列 19

2.3.5 SecurCore微处理器系列 20

2.3.6 Intel的StrongARM微处理器系列 20

2.3.7 Intel的Xscale微处理器 20

2.4 ARM微处理器结构 21

2.4.1 RISC体系架构 21

2.4.2 ARM微处理器的寄存器结构 22

2.4.3 ARM微处理器的指令结构 22

2.5 ARM微处理器的应用选型 23

本章小结 23

第3章 ARM指令集 24

3.1 ARM处理器以及相对应的寄存器 24

3.2 ARM处理器的9种寻址方式 25

3.3 ARM指令集 27

3.3.1 一般格式 27

3.3.2 ARM存储器访问指令 29

3.3.3 ARM数据处理指令 32

3.3.4 ARM跳转指令 36

3.3.5 ARM协处理器指令 37

3.3.6 其他指令 38

3.3.7 ARM伪指令 40

3.4 Thumb指令集 42

3.4.1 Thumb指令集与ARM指令集的区别 42

3.4.2 数据处理指令 42

3.4.3 Thumb存储器访问指令 43

3.4.4 Thumb数据处理指令 45

3.5 伪指令 53

3.5.1 符号定义伪指令 53

3.5.2 数据定义伪指令 55

3.5.3 报告伪指令 59

3.5.4 汇编控制伪指令 61

3.5.5 其他伪指令 62

3.5.6 ARM伪指令 68

3.5.7 Thumb伪指令 69

本章小结 69

第4章 ARM开发板介绍与应用举例 70

4.1 S3C2410 70

4.1.1 S3C2410简介 70

4.1.2 嵌入式系统的程序设计方法 72

4.2 处理器工作模式 73

4.2.1 概述 73

4.2.2 指令和操作模式 74

4.2.3 寄存器 74

4.2.4 程序寄存器状态 75

4.3 看门狗 79

4.4 MMU——存储器管理单元 81

本章小结 87

第5章 ARM程序设计基础 88

5.1 ARM汇编器所支持的伪指令 88

5.1.1 符号定义(Symbol Definition)伪指令 88

5.1.2 数据定义(Data Definition)伪指令 90

5.1.3 汇编控制(Assembly Control)伪指令及宏指令 92

5.1.4 其他常用的伪指令 93

5.2 汇编语言的语句格式 98

5.2.1 在汇编语言程序中常用的符号 98

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

5.3 汇编语言的程序结构 101

5.3.1 ARM汇编中的文件格式 101

5.3.2 ARM汇编语言语句格式 101

5.3.3 ARM汇编语言编程的重点 102

5.4 汇编语言的程序结构 102

5.4.1 汇编语言的子程序调用 103

5.4.2 汇编语言程序示例 103

5.5 嵌入式C语言程序设计基础 105

5.5.1 C语言“预处理伪指令”在嵌入式程序设计中的应用 105

5.5.2 嵌入式程序设计中的函数及函数库 106

5.5.3 汇编语言与C/C++语言的混合编程 106

5.5.4 C语言和ARM汇编程序间相互调用 107

本章小结 108

第6章 搭建交叉编译环境 109

6.1 嵌入式Linux开发环境构建 109

6.2 Cygwin简介 110

6.3 虚拟机 110

6.4 开发环境 111

6.4.1 Linux下的C语言开发环境 111

6.4.2 交叉编译工具 112

6.4.3 ELDK交叉编译环境简介 120

6.5 移植Linux至ARM嵌入式处理器 120

6.5.1 简介 121

6.5.2 移植 122

6.5.3 移植Linux到ARM平台 123

6.5.4 开机程序与系统初始化 125

6.6 基于ADS的开发环境与实验介绍 127

6.6.1 ADS1.2集成开发环境简介 127

6.6.2 利用Helloworld来学习使用ARMSYS 127

6.6.3 编写好源程序代码 128

6.6.4 使用CodeWarrior建立工程并进行编译 128

6.6.5 使用AXD进行仿真调试 132

6.6.6 USB口下载工具 133

6.6.7 代码固化 135

本章小结 136

第7章 Boot Loader与U-Boot 137

7.1 Boot Loader概述 137

7.1.1 Boot Loader概念 137

7.1.2 Boot Loader位置 137

7.1.3 Boot Loader启动过程 138

7.1.4 总结 138

7.2 常用的Boot Loader 138

7.2.1 Blob 138

7.2.2 Armboot 139

7.2.3 U-Boot简介 139

7.2.4 U-Boot源代码目录结构 140

7.2.5 U-Boot的特点 140

7.2.6 U-Boot结构 143

7.2.7 U-Boot移植相关文件 143

7.3 U-Boot启动分析 144

7.4 U-Boot常用命令 153

7.4.1 移植概念 153

7.4.2 Linux与移植相关内核结构 153

7.4.3 Linux内核的配置 154

7.5 嵌入式Linux操作系统移植 155

7.5.1 根目录 155

7.5.2 arch目录 155

7.5.3 arch/arm/boot目录 156

7.5.4 setup.c目录 156

7.5.5 外设及设备驱动移植 157

7.6 Linux启动分析 157

7.7 编译Linux内核 161

7.7.1 建立依存关系 161

7.7.2 建立内核 162

7.7.3 建立模块 162

7.7.4 安装内核 162

7.8 U-Boot在44B0X开发板上的移植以及代码分析 164

本章小结 173

第8章 内核移植 174

8.1 移植的含义 174

8.2 移植的具体实现 174

8.3 完整系统的构成 177

8.4 实际操作 177

本章小结 180

第9章 文件系统及其制作 181

9.1 文件系统(Filesystem) 181

9.1.1 简介 181

9.1.2 嵌入式文件系统 182

9.2 根文件系统 184

9.2.1 根文件系统的组成 184

9.2.2 创建包含所有文件的目录 188

9.2.3 生成一个ramdisk 190

9.3 用busybox制作嵌入式Linux的文件系统 191

9.3.1 busybox简介 191

9.3.2 编译busybox 192

9.3.3 完善文件系统 193

9.3.4 测试新的文件系统 194

9.4 相关的命令和操作 194

9.4.1 在已建好的文件系统上进行修改 194

9.4.2 自己建立根文件系统 195

9.4.3 自己建立根文件系统 196

本章小结 197

第10章 Makefile与内核配置实例 198

10.1 概述 198

10.2 手动建立Makefile简单实例解析 205

10.3 自己写Makefile 208

10.4 Makefile总述 213

10.4.1 Makefile的主要内容 214

10.4.2 Makefile的文件名 214

10.4.3 引用其他的Makefile 214

10.4.4 环境变量Makefiles 215

10.4.5 make的工作方式 215

10.5 书写规则 216

10.6 书写命令 222

10.7 使用变量 226

10.8 使用条件判断 233

10.9 使用函数 235

10.10 make的运行 242

10.11 隐含规则 247

10.11.1 使用隐含规则 248

10.11.2 隐含规则一览 249

10.11.3 隐含规则使用的变量 250

10.11.4 隐含规则链 251

10.11.5 定义模式规则 252

10.11.6 老式风格的“后缀规则” 255

10.11.7 隐含规则搜索算法 256

10.12 使用make更新函数库文件 257

本章小结 258

第11章 嵌入式Linux驱动开发 259

11.1 编写Linux设备驱动程序简介 259

11.1.1 Linux device driver的概念 259

11.1.2 编写Linux操作系统下的设备驱动程序实例分析 260

11.1.3 设备驱动程序中的一些具体问题 263

11.2 字符设备驱动编写 264

11.3 LCD驱动编写实例 267

11.3.1 LCD工作原理 267

11.3.2 LCD驱动实例 268

11.4 键盘驱动实现 275

11.4.1 键盘工作原理 275

11.4.2 键盘驱动综述 276

11.4.3 键盘驱动流程 277

11.5 驱动的移植 284

本章小结 289

第12章 基于PXA255开发平台的开发流程 290

12.1 平台的选择 290

12.1.1 软件平台的选择——操作系统 290

12.1.2 交叉编译与链接 290

12.1.3 远程调试 291

12.2 PXA255开发平台介绍 291

12.2.1 Xscale系统结构 291

12.2.2 PXA255处理器结构与特性 293

12.2.3 Xsbase255开发系统 295

12.2.4 开发环境 296

12.2.5 BootLoader与内核 298

12.2.6 实际操作 309

本章小结 315

参考文献 316