图书介绍
ARM体系结构与编程PDF|Epub|txt|kindle电子书版本网盘下载
![ARM体系结构与编程](https://www.shukui.net/cover/35/30995281.jpg)
- 杜春雷主编 著
- 出版社: 北京:清华大学出版社
- ISBN:9787302403425
- 出版时间:2015
- 标注页数:513页
- 文件大小:89MB
- 文件页数:526页
- 主题词:微处理器-计算机体系结构-高等学校-教材;微处理器-程序设计-高等学校-教材
PDF下载
下载说明
ARM体系结构与编程PDF格式电子书版下载
下载的文件为RAR压缩包。需要使用解压软件进行解压得到PDF格式图书。建议使用BT下载工具Free Download Manager进行下载,简称FDM(免费,没有广告,支持多平台)。本站资源全部打包为BT种子。所以需要使用专业的BT下载软件进行下载。如BitComet qBittorrent uTorrent等BT下载工具。迅雷目前由于本站不是热门资源。不推荐使用!后期资源热门了。安装了迅雷也可以迅雷进行下载!
(文件页数 要大于 标注页数,上中下等多册电子书除外)
注意:本站所有压缩包均有解压码: 点击下载压缩包解压工具
图书目录
第1章 ARM概述及其基本编程模型1
1.1 ARM技术的应用领域及其特点1
1.2 ARM体系结构的版本及命名方法2
1.2.1 ARM体系结构的版本2
1.2.2 ARM体系的变种4
1.2.3 ARM/Thumb体系版本的命名格式6
1.3 ARM处理器系列7
1.3.1 ARM7系列7
1.3.2 ARM9系列8
1.3.3 ARM9E系列9
1.3.4 ARM10E系列9
1.3.5 SecurCore系列10
1.4 ARM处理器的运行模式11
1.5 ARM寄存器介绍11
1.5.1 通用寄存器12
1.5.2 程序状态寄存器15
1.6 ARM体系的异常中断17
1.6.1 ARM中异常中断的种类17
1.6.2 ARM处理器对异常中断的响应过程18
1.6.3 从异常中断处理程序中返回19
1.7 ARM体系中的存储系统19
1.7.1 ARM体系中的存储空间19
1.7.2 ARM存储器格式19
1.7.3 非对齐的存储访问操作20
1.7.4 指令预取和自修改代码21
第2章 ARM指令分类及其寻址方式22
2.1 ARM指令集概要介绍22
2.1.1 ARM指令的分类22
2.1.2 ARM指令的一般编码格式22
2.1.3 ARM指令的条件码域23
2.2 ARM指令的寻址方式24
2.2.1 数据处理指令的操作数的寻址方式24
2.2.2 字及无符号字节的Load/Store指令的寻址方式34
2.2.3 杂类Load/Store指令的寻址方式46
2.2.4 批量Load/Store指令的寻址方式52
2.2.5 协处理器Load/Store指令的寻址方式56
第3章 ARM指令集介绍61
3.1 ARM指令集61
3.1.1 跳转指令61
3.1.2 数据处理指令65
3.1.3 乘法指令78
3.1.4 杂类的算术指令84
3.1.5 状态寄存器访问指令85
3.1.6 Load/Store内存访问指令88
3.1.7 批量Load/Store内存访问指令97
3.1.8 信号量操作指令102
3.1.9 异常中断产生指令104
3.1.10 ARM协处理器指令106
3.2 一些基本的ARM指令功能段110
3.2.1 算术逻辑运算指令的应用111
3.2.2 跳转指令的应用112
3.2.3 Load/Store指令的应用114
3.2.4 批量Load/Store指令的应用115
3.2.5 信号量指令的应用116
3.2.6 与系统相关的一些指令代码段117
3.3 Thumb指令介绍120
第4章 ARM汇编语言程序设计122
4.1 伪操作122
4.1.1 符号定义伪操作122
4.1.2 数据定义伪操作126
4.1.3 汇编控制伪操作135
4.1.4 数据帧描述伪操作138
4.1.5 信息报告伪操作139
4.1.6 其他的伪操作141
4.2 ARM汇编语言伪指令151
4.3 ARM汇编语言语句的格式153
4.3.1 ARM汇编语言中的符号154
4.3.2 ARM汇编语言中的表达式157
4.4 ARM汇编语言程序的格式162
4.4.1 汇编语言程序的格式162
4.4.2 汇编语言子程序的调用163
4.5 ARM汇编编译器的使用164
4.6 汇编程序设计举例166
4.6.1 ARM中伪操作的使用实例166
4.6.2 ARM汇编程序的实例169
第5章 ARM的存储系统175
5.1 ARM存储系统概述175
5.2 ARM中用于存储管理的系统控制协处理器CP15176
5.2.1 访问CP15寄存器的指令176
5.2.2 CP15中的寄存器178
5.3 存储器管理单元MMU186
5.3.1 存储器管理单元MMU概述186
5.3.2 禁止/使能MMU188
5.3.3 MMU中的地址变换过程189
5.3.4 MMU中的存储访问权限控制198
5.3.5 MMU中的域199
5.3.6 关于快表的操作199
5.3.7 ARM中的存储访问失效201
5.4 高速缓冲存储器和写缓冲区205
5.4.1 基本概念205
5.4.2 Cache的工作原理和地址映像方法206
5.4.3 Cache的分类208
5.4.4 Cache的替换算法209
5.4.5 缓冲技术的使用注意事项210
5.4.6 存储系统的一致性问题211
5.4.7 Cache内容锁定213
5.4.8 与Cache和写缓冲区相关的编程接口214
5.5 快速上下文切换技术217
5.5.1 快速上下文切换技术原理217
5.5.2 快速上下文切换技术编程接口219
5.6 与存储系统相关的程序设计指南219
5.6.1 地址空间219
5.6.2 存储器的格式220
5.6.3 非对齐的存储访问操作221
5.6.4 指令预取和自修改代码222
5.6.5 IMB223
5.6.6 存储器映射的I/O空间224
5.7 ARM存储系统的实例225
5.7.1 L7205的存储系统概述225
5.7.2 L7205中的SDRAM226
5.7.3 L7205中的MMU235
第6章 ATPCS介绍242
6.1 ATPCS概述242
6.2 基本ATPCS242
6.2.1 寄存器的使用规则243
6.2.2 数据栈的使用规则244
6.2.3 参数传递规则245
6.3 几种特定的ATPCS246
6.3.1 支持数据栈限制检查的ATPCS246
6.3.2 支持只读段位置无关(ROPI)的ATPCS248
6.3.3 支持可读写段位置无关(RWPI)的ATPCS248
6.3.4 支持ARM程序和Thumb程序混合使用的ATPCS248
6.3.5 处理浮点运算的ATPCS249
第7章 ARM程序和Thumb程序混合使用250
7.1 概述250
7.2 在汇编语言程序中通过用户代码支持intetwork251
7.2.1 可以实现程序状态切换的指令251
7.2.2 与程序状态切换相关的伪操作254
7.2.3 进行状态切换的汇编程序实例255
7.3 在C/C++程序中实现interwork256
7.4 在汇编语言程序中通过连接器支持interwork259
7.4.1 利用veneers实现汇编程序间的程序状态切换259
7.4.2 利用veneers实现汇编程序与C/C++程序间的程序状态切换261
第8章 C/C++以及汇编语言的混合编程263
8.1 内嵌汇编器的使用263
8.1.1 内嵌的汇编指令用法263
8.1.2 内嵌的汇编器和armasm的区别265
8.1.3 在C/C++程序中使用内嵌的汇编指令265
8.1.4 内嵌汇编指令的应用举例267
8.2 从汇编程序中访问C程序变量270
8.3 汇编程序、C程序以及C++程序的相互调用271
8.3.1 在C++程序中使用C程序头文件271
8.3.2 汇编程序、C程序以及C++程序的相互调用举例272
第9章 异常中断处理276
9.1 ARM中的异常中断处理概述276
9.1.1 ARM体系中的异常中断种类276
9.1.2 异常中断向量表及异常中断优先级277
9.1.3 异常中断使用的寄存器278
9.2 进入和退出异常中断的过程279
9.2.1 ARM处理器对异常中断的响应过程279
9.2.2 从异常中断处理程序中返回282
9.3 在应用程序中安排异常中断处理程序285
9.3.1 在系统复位时安排异常中断处理程序285
9.3.2 在C程序中安排异常中断处理程序286
9.4 SWI异常中断处理程序288
9.4.1 SWI异常中断处理程序的实现288
9.4.2 SWI异常中断调用292
9.5 FIQ和IRQ异常中断处理程序297
9.5.1 IRQ/FIQ异常中断处理程序298
9.5.2 IRQ异常中断处理程序举例300
9.6 复位异常中断处理程序302
9.7 未定义指令异常中断302
9.8 指令预取中止异常中断处理程序303
9.9 数据访问中止异常中断处理程序303
第10章 ARM C/C++编译器304
10.1 ARM C/C++编译器概述304
10.1.1 ARM C/C++编译器及语言库介绍304
10.1.2 ARM编译器中与搜索路径相关的一些基本概念305
10.2 ARM编译器命令行格式306
10.2.1 过程调用标准307
10.2.2 设置源程序语言类型308
10.2.3 指定搜索路径309
10.2.4 设置预处理选项309
10.2.5 设置输出文件的类型310
10.2.6 指定目标处理器和ARM体系版本311
10.2.7 生成调试信息312
10.2.8 代码生成的控制313
10.2.9 控制警告信息的产生315
10.2.10 编译时进行的一些额外的检查317
10.2.11 控制错误信息318
10.3 ARM编译器中的pragmas319
10.4 ARM编译器特定的关键词321
10.4.1 用于声明函数的关键词321
10.4.2 用于声明变量的关键词333
10.4.3 用于限定数据类型的关键词333
10.5 ARM编译器支持的基本数据类型335
10.6 ARM编译器中的预定义宏337
10.7 ARM中的C/C++库339
10.7.1 ARM中的C/C++运行时库概述339
10.7.2 建立一个包含C/C++运行时库的C/C++应用程序340
10.7.3 建立不包含C运行时库的应用程序344
10.7.4 裁减C/C++运行时库以适应特定的目标运行环境345
第11章 ARM连接器347
11.1 ARM映像文件347
11.1.1 ARM映像文件的组成347
11.1.2 ARM映像文件的入口点349
11.1.3 输入段的排序规则350
11.2 ARM连接器介绍351
11.3 ARM连接器生成的符号353
11.3.1 连接器生成的与域相关的符号353
11.3.2 连接器生成的与输出段相关的符号354
11.3.3 连接器生成的与输入段相关的符号354
11.4 连接器的优化功能354
11.5 运行时库的使用355
11.5.1 C/C++运行时库与目标文件356
11.5.2 查找需要的C/C++运行时库356
11.5.3 选择合适种类的C/C++运行时库357
11.5.4 扫描C/C++运行时库359
11.6 从一个映像文件中使用另一个映像文件中的符号359
11.6.1 symdefs文件359
11.6.2 建立symdefs文件361
11.6.3 symdefs文件的使用361
11.7 隐藏或者重命名全局符号362
11.7.1 steering文件的格式362
11.7.2 steering文件中的命令362
11.8 ARM连接器的命令行选项363
11.9 使用scatter文件定义映像文件的地址映射371
11.9.1 scatter文件概述371
11.9.2 scatter文件中各部分的介绍373
11.9.3 scatter文件使用举例376
第12章 嵌入式应用程序示例384
12.1 嵌入式应用程序设计的基本知识384
12.1.1 嵌入式应用系统中的存储映射384
12.1.2 系统初始化385
12.2 使用semihosting的C语言程序示例388
12.2.1 源程序分析388
12.2.2 生成映像文件391
12.3 一个嵌入式应用系统示例392
12.3.1 源程序分析393
12.3.2 生成映像文件400
12.3.3 本例中地址映射模式401
12.4 进行ROM/RAM地址重映射的嵌入式应用系统401
12.4.1 地址映射模式401
12.4.2 源程序分析403
12.4.3 生成映像文件404
12.5 一个嵌入式操作系统示例405
第13章 使用CodeWarrior412
13.1 CodeWarrior for ARM概述412
13.2 简单工程项目的使用413
13.2.1 工程项目窗口413
13.2.2 简单工程项目的使用416
13.3 配置生成目标424
13.3.1 Debug Settings对话框介绍424
13.3.2 设置生成目标的基本选项425
13.3.3 汇编器选项的设置430
13.3.4 编译器的选项设置435
13.3.5 连接器的选项设置443
13.3.6 fromELF工具的选项设置449
13.4 复杂工程项目的使用451
13.4.1 建立一个新的生成目标451
13.4.2 将一个生成目标更名453
13.4.3 建立生成目标之间的依赖关系453
13.4.4 子工程项目的使用455
13.5 工程项目模板456
13.5.1 ADS中工程项目模板的使用457
13.5.2 建立用户工程项目模板461
13.6 编译和连接工程项目461
13.6.1 编译文件462
13.6.2 生成工程项目463
第14章 ARM体系中的调试方法465
14.1 ARM体系中的调试系统概述465
14.2 基于Angel的调试系统466
14.2.1 基于Angel的调试系统的概述466
14.2.2 使用Angel开发应用程序469
14.2.3 Angel执行的操作474
14.2.4 将Angel移植到特定的目标系统476
14.3 基于JTAG的调试系统495
14.3.1 基于JTAG的调试系统的特点495
14.3.2 基于JTAG的调试系统结构495
14.3.3 目标系统中的调试功能扩展部件496
14.3.4 基于JTAG的调试过程498
14.4 ADW使用介绍498
14.4.1 ADW概述498
14.4.2 ADW中的窗口501
14.4.3 ADW使用介绍505
参考文献513