《从51到ARM 32位嵌入式系统入门》PDF下载

  • 购买积分:13 如何计算积分?
  • 作  者:赵星寒,刘涛编著
  • 出 版 社:北京:北京航空航天大学出版社
  • 出版年份:2005
  • ISBN:781077719X
  • 页数:396 页
图书介绍:本书从51单片机的一般知识出发,将ARM处理器和51系列单片机进行对比,引导读者学习ARM处理器的知识。主要介绍ARM处理器的基本知识、ARM处理软件编程方法、ARM处理器开发工具的使用方法等。

目录 1

第1章 几个基本概念 1

1.1 从51系列单片机到ARM处理器 1

1.2 ARM不是单片机 2

1.3 51系列单片机和ARM处理器的比较 3

1.4 以ARM为核的单片机 4

1.4.1 处理器内核只和外部地址相关 4

1.4.2 ARM怎样组成一个单片机 6

1.4.3 一点启示 7

2.1.1 基础知识 8

2.1 ARM处理器的数据格式 8

第2章 ARM处理器基础 8

2.1.2 ARM处理器的存储器结构 9

2.1.3 ARM处理器的指令存储或数据存储 13

2.1.4 地址对准 15

2.2 处理器模式 15

2.3 ARM内部寄存器 17

2.3.1 ARM状态时的寄存器 17

2.3.2 Thumb状态下的寄存器 25

2.4 异常 27

3.1 概述 29

第3章 ARM7TDMI简介 29

3.2 结构和框图 30

3.3 3级流水线结构 33

3.4 ARM处理器的寻址方式 35

3.4.1 51系列与ARM系列寻址方法的比较 35

3.4.2 寄存器寻址 36

3.4.3 立即寻址 36

3.4.4 寄存器移位寻址 37

3.4.5 寄存器间接寻址 39

3.4.6 变址寻址 40

3.4.8 堆栈寻址 42

3.4.7 多寄存器寻址 42

3.4.9 寻址方式的应用 43

3.4.10 ARM指令寻址一览表 44

第4章 异常和中断 45

4.1 概述 45

4.2 复位异常 46

4.3 未定义指令异常 47

4.4 软件中断异常 49

4.5 预取指中止异常 49

4.6 数据中止异常 50

4.7 中断请求(IRQ)异常 51

4.8 快速中断(FIQ)请求异常 52

4.9 中断源和中断优先级 53

4.10 异常中断的进入和退出 54

第5章 ARM指令集 56

5.1 概述 56

5.2 指令可选后缀 59

5.2.1 S后缀 60

5.2.2 !后缀 60

5.2.4 T后缀 61

5.2.3 B后缀 61

5.2.5 条件后缀 62

5.3 ARM数据传送指令(存储器访问指令) 64

5.3.1 关于数据传送 64

5.3.2 数据传送中的几个问题 66

5.3.3 ARM数据传送指令代码表 70

5.3.4 数据传送指令代码详述 71

5.4 ARM分支指令 93

5.4.1 关于程序分支 93

5.4.2 ARM分支指令详解 94

5.5.1 ARM数据处理指令的特点 98

5.5 ARM数据处理指令 98

5.5.2 第2操作数 99

5.5.3 ARM数据处理指令代码表 101

5.5.4 ARM数据处理指令详述 103

5.6 ARM指令集中和协处理器有关的指令 120

5.7 ARM指令集中的软件中断指令 125

第6章 Thumb指令集 129

6.1 Thumb指令的特点 129

6.2 Thumb指令和ARM指令的比较 132

6.3 Thumb指令集中的数据传送类指令 134

6.4 Thumb指令集中的分支指令 146

6.5 Thumb指令集中的数据处理指令 152

6.6 Thumb指令集中的软件中断指令 164

第7章 伪指令 166

7.1 伪指令概述 166

7.2 与ARM指令相关的伪指令 167

7.3 与Thumb指令相关的伪指令 177

7.4 通用伪指令 180

7.4.1 为变量定义和赋值的伪指令 180

7.4.2 定义各类寄存器名称的伪指令 184

7.4.3 数据定义伪指令 187

7.4.4 控制程序流向的伪指令 196

7.4.5 其他伪指令 201

第8章 ARM系统设计和程序设计 207

8.1 关于ARM处理器,我们学到了什么? 207

8.2 程序设计的几个问题 209

8.3 ARM指令和Thumb指令的兼容性 214

8.4 汇编程序规则 221

8.4.1 组成 222

8.4.2 书写格式 223

8.4.3 汇编语言中的表达式 224

8.5 汇编程序举例 231

第9章 C和C++语言的应用 237

9.1 汇编语言与C/C++语言的比较 237

9.2 C/C++语言的编程规范 238

9.2.1 注释 238

9.2.2 命名 239

9.2.3 编辑风格 239

9.3 如何编写针对ARM的高效C语言程序 240

9.3.1 以空间换时间 240

9.3.3 使用位操作 242

9.3.2 使用数学方法解决问题 242

9.3.4 嵌入汇编 243

9.4 C、C++语言与汇编语言的混合编程 244

9.4.1 在C、C++程序中使用内嵌的汇编指令的语法格式 244

9.4.2 在C、C++程序中使用内嵌的汇编指令的注意事项 245

9.4.3 内嵌汇编指令的应用举例 247

9.4.4 从汇编程序中访问C程序变量 248

9.4.5 在C++程序中使用C程序头文件 249

9.4.6 汇编程序、C程序以及C++程序的相互调用举例 250

10.1.1 编辑程序 254

10.1 程序设计过程 254

第10章 程序的编辑和编译 254

10.1.2 编译程序 255

10.1.3 连接和调试程序 257

10.2 ARM处理器开发工具介绍 258

10.2.1 ARM处理器仿真系统特点 258

10.2.2 ADS集成开发环境 259

10.2.3 ADS开发系统的系统资源 261

10.2.4 系统软件开发的步骤 263

10.3 程序的编辑 263

10.3.1 源程序是可移植的 263

10.3.2 在CodeWarrior for ADS环境下编辑源文件 266

10.3.3 建立工程项目总结 271

10.3.4 建立C语言和C++语言源文件 271

10.3.5 文件的管理 272

10.3.6 编辑画面的设置 273

10.3.7 ADS编辑功能介绍 279

10.3.8 屏幕分割设置 282

10.4 程序的编译 283

10.4.1 有两种方式可以实现程序的编译 283

10.4.2 命令行中的可选项和图形方式中的可选项 286

10.4.3 ADS中的可选项 290

10.5 汇编器的应用 291

10.5.1 ARM汇编器armasm中的可选项 291

10.5.2 ARM汇编器应用 298

10.5.3 应用举例 300

10.6 编译器的应用 303

10.6.1 ARM编译器中的可选项 303

10.6.2 ARM编译器的应用 317

第11章 程序的连接 320

11.1 几个与连接有关的概念 320

11.2 连接器的应用 326

11.3 连接器选项设置 334

11.4 连接器应用举例 347

第12章 ARM调试工具AXD 361

12.1 调试工具AXD 361

12.1.1 ARM调试工具介绍 361

12.1.2 调试工具AXD的使用方法 363

12.2 在调试过程中使用断点 371

12.2.1 设置断点 371

12.2.2 执行到断点处 374

12.2.3 查找和修改断点 374

12.2.4 断点管理下拉菜单 374

12.2.5 观察断点 375

12.2.6 删除断点 376

12.3 AXD中其他工具介绍 376

12.3.1 使用观测项 376

12.3.2 在调试程序时观察变量 381

12.3.3 在调试程序时使用符号表 383

12.3.4 使用观测点 384

12.3.5 工具栏中的工具 387

12.4 数据格式 389

12.4.1 设置数据格式 389

12.4.2 设置默认的数据显示格式 393