图书介绍
ARM系列处理器应用技术完全手册2025|PDF|Epub|mobi|kindle电子书版本百度云盘下载

- 李佳编著 著
- 出版社: 北京:人民邮电出版社
- ISBN:7115153302
- 出版时间:2006
- 标注页数:582页
- 文件大小:32MB
- 文件页数:598页
- 主题词:微处理器,ARM-技术手册
PDF下载
下载说明
ARM系列处理器应用技术完全手册PDF格式电子书版下载
下载的文件为RAR压缩包。需要使用解压软件进行解压得到PDF格式图书。建议使用BT下载工具Free Download Manager进行下载,简称FDM(免费,没有广告,支持多平台)。本站资源全部打包为BT种子。所以需要使用专业的BT下载软件进行下载。如BitComet qBittorrent uTorrent等BT下载工具。迅雷目前由于本站不是热门资源。不推荐使用!后期资源热门了。安装了迅雷也可以迅雷进行下载!
(文件页数 要大于 标注页数,上中下等多册电子书除外)
注意:本站所有压缩包均有解压码: 点击下载压缩包解压工具
图书目录
第1章 ARM系列微处理器简介1
1.1 什么是ARM1
1.1.1 ARM公司历史1
1.1.2 ARM的商业模式2
1.2 ARM体系结构的命名规则2
1.3 初识ARM系列处理器3
1.3.1 ARM7系列4
1.3.2 ARM9系列5
1.3.3 ARM9E系列5
1.3.4 ARM10系列5
1.3.5 ARM11系列5
1.4.1 ARM7系列6
1.4 ARM系列处理器的应用领域6
1.3.8 Cortex-M3和MPCore6
1.3.7 其他系列处理器6
1.3.6 SecurCore系列6
1.4.2 ARM9系列7
1.4.3 ARM9E系列7
1.4.4 ARM10E系列7
1.4.5 SecureCore系列7
1.5 ARM芯片的特点与选型7
1.5.1 不同系列处理器间的比较7
1.5.2 ARM芯片的选型8
1.6 ARM开发工具13
第2章 ARM体系结构16
2.1 ARM体系结构的特点16
2.2.2 流水线的分类18
2.2 流水线18
2.2.1 流水线的概念与原理18
2.2.3 影响流水线性能的因素25
2.3 ARM存储器25
2.4 I/O管理26
2.5 ARM开发调试方法27
第3章 ARM微处理器的编程模型29
3.1 数据类型29
3.1.1 ARM的基本数据类型29
3.1.2 浮点数据类型30
3.1.3 存储器大/小端30
3.2 处理器工作模式31
3.3 ARM寄存器组织32
3.3.1 通用寄存器33
3.3.2 程序计数器r1535
3.3.3 程序状态寄存器36
3.4 异常中断处理39
3.4.1 异常种类39
3.4.2 异常优先级44
3.4.3 处理器模式和异常44
3.4.4 异常响应流程45
3.4.5 从异常处理程序中返回46
3.4.6 在应用程序中安装异常处理程序48
3.4.7 FIQ和IRQ中断处理函数的设计50
3.4.8 SWI异常处理函数的设计54
4.1.1 数据处理指令的寻址方式概要61
第4章 ARM指令寻址方式61
4.1 数据处理指令的寻址方式61
4.1.2 指令解码62
4.1.3 移位操作62
4.1.4 寻址方式分类详解63
4.2 内存访问指令寻址72
4.2.1 字及无符号字节的Load/Store指令的寻址方式73
4.2.2 杂类Load/Store指令的寻址方式83
4.2.3 批量Load/Store指令寻址方式88
4.2.4 堆栈操作寻址方式92
4.2.5 协处理器Load/Store寻址方式93
第5章 数据传送指令98
5.1 MOV指令98
5.2 MVN指令100
5.3 单寄存器的Load/Store指令101
5.3.1 字数据传送指令102
5.3.2 字节数据传送指令(LDRB/STRB)105
5.3.3 半字数据传送指令(LDRH/STRH)107
5.3.4 用户模式字数据传送指令(LDRT/STRT)108
5.3.5 用户模式字节数据传送指令(LDRBT/STRBT)110
5.3.6 有符号的字节/半字数据传送指令(LDRBT/STRBT)112
5.4 多寄存器Load/Store内存访问指令113
5.4.1 多寄存器内存字数据传送指令114
5.4.2 用户模式多寄存器内存字数据传送指令116
5.4.3 带状态寄存器的多寄存器内存字数据装载指令(LDM(3))118
5.4.4 数据传送指令应用120
5.5 单数据交换指令122
5.5.1 字交换指令SWP123
5.5.2 字节交换指令SWPB124
5.5.3 交换指令SWP应用125
5.6 程序状态寄存器指令125
5.6.1 MRS126
5.6.2 MSR126
5.6.3 程序状态寄存器指令应用128
第6章 数据处理指令130
6.1 AND逻辑与指令131
6.2 EOR逻辑异或指令133
6.3 SUB减操作指令135
6.4 RSB减翻转指令136
6.5 ADD加操作指令138
6.6 ADC带进位的加法指令139
6.7 SBC带进位的减法指令140
6.8 RSC带进位的翻转减指令142
6.9 TST测试指令143
6.10 TEQ测试相等指令144
6.11 CMP比较指令145
6.12 CMN负数比较指令147
6.13 ORR逻辑或指令148
6.14 BIC位清零指令149
第7章 乘法指令152
7.1 MUL乘法指令153
7.2 MLA乘-累加指令154
7.3 UMULL无符号数长乘指令155
7.4 UMLAL无符号长乘-累加操作指令156
7.5 SMULL无符号长乘-累加操作指令158
7.6 SMLAL有符号长乘-累加操作指令159
第8章 跳转指令161
8.1 跳转指令B及带连接的跳转指令BL162
8.2 带状态切换的跳转指令BX164
8.3 带状态切换的连接跳转指令BLX(1)165
8.4 带状态切换的连接跳转指令BLX(2)167
第9章 协处理器及其他指令169
9.1 协处理器指令169
9.1.1 协处理器数据操作指令CDP170
9.1.2 协处理器数据读取指令LDC171
9.1.3 协处理器数据写入指令STC173
9.1.4 ARM寄存器到协处理器寄存器的数据传送指令MCR174
9.1.5 协处理器寄存器到ARM寄存器的数据传送指令MRC176
9.2 状态寄存器访问指令178
9.2.1 程序状态字内容送通用寄存器指令MRS178
9.2.2 写状态寄存器指令MSR180
9.3 零计数指令CLZ182
9.4 交换指令183
9.4.1 寄存器和存储器字数据交换指令SWP184
9.4.2 寄存器和存储器字节数据交换指令SWPB185
9.5 异常产生指令186
9.5.1 软中断指令SWI186
9.5.2 断点中断指令BKPT189
10.1 ARM汇编器所支持的伪操作191
第10章 ARM汇编程序设计191
10.1.1 符号定义(Symbol Definition)伪操作192
10.1.2 数据定义(Data Definition)伪操作197
10.1.3 汇编控制(Assembly Control)伪操作206
10.1.4 信息报告(Reporting)伪操作211
10.1.5 指令集选择(Instruction Set Selection)伪操作215
10.1.6 杂项(Miscellaneous)伪操作217
10.1.7 结构描述伪操作228
10.2 ARM汇编器所支持的伪指令235
10.2.1 ADR伪指令235
10.2.2 ADRL伪指令236
10.2.3 MOV32伪指令237
10.2.4 LDR伪指令237
10.3.1 ARM汇编语言语句格式238
10.3 汇编语言文件格式238
10.3.2 ARM汇编语言中的符号239
10.3.3 汇编语言程序中的表达式和运算符242
10.3.4 汇编语言预定义寄存器和协处理器248
10.3.5 汇编语言内置变量249
10.3.6 汇编语言的程序结构250
10.3.7 汇编语言子程序调用250
10.4 ARM汇编编译器的使用251
10.4.1 选项说明列表253
10.4.2 过程调用标准AAPCS253
10.5.1 条件跳转及循环254
10.5 ARM汇编程序设计举例254
10.4.5 为FPU命名选项254
10.4.3 浮点模式选项254
10.4.4 为CPU命名选项254
10.5.2 传送指令程序设计257
10.5.3 宏的使用267
10.5.4 使用MAP和FIELD命令描述数据结构269
第11章 Thumb指令集273
11.1 Thumb指令的特点及实现273
11.2 Thumb编程模型275
11.3 Thumb跳转指令276
11.3.1 跳转指令B276
11.3.2 带返回的无条件跳转指令BL278
11.3.3 带返回链接的无条件跳转指令BLX(1)279
11.3.5 带返回链接的无条件跳转指令BLX(2)281
11.3.4 带状态切换的跳转指令BX281
11.3.6 Thumb指令集中跳转指令举例282
11.4 Thumb数据处理指令282
11.4.1 ADC指令284
11.4.2 小立即数加法指令ADD(1)285
11.4.3 大立即数加法指令ADD(2)285
11.4.4 寄存器加法指令ADD(3)286
11.4.5 寄存器加法指令ADD(4)287
11.4.6 PC相关加法指令ADD(5)287
11.4.7 SP相关加法指令ADD(6)288
11.4.8 SP相关加法指令ADD(7)288
11.4.9 逻辑与指令AND289
11.4.10 算术右移指令ASR(1)290
11.4.11 算术右移指令ASR(2)291
11.4.12 位清零指令BIC291
11.4.13 比较指令CMN292
11.4.14 比较指令CMP(1)293
11.4.15 比较指令CMP(2)294
11.4.16 比较指令CMP(3)294
11.4.17 异或指令EOR295
11.4.18 逻辑左移指令LSL(1)296
11.4.19 逻辑左移指令LSL(2)296
11.4.20 逻辑右移指令LSR(1)297
11.4.21 逻辑右移指令LSR(2)298
11.4.22 移位指令MOV(1)299
11.4.23 移位指令MOV(2)300
11.4.24 移位指令MOV(3)301
11.4.25 乘法指令MUL301
11.4.26 传送指令MVN302
11.4.27 取反指令NEG303
11.4.28 逻辑或指令ORR303
11.4.29 循环右移指令ROR304
11.4.30 带进位的减指令SBC305
11.4.31 减法指令SUB(1)306
11.4.32 减法指令SUB(2)306
11.4.33 减法指令SUB(3)307
11.4.34 减法指令SUB(4)308
11.4.35 位测试指令TST309
11.4.36 Thumb指令集中数据操作指令举例309
11.5.1 寄存器装载指令LDR(1)310
11.5 单寄存器数据传送指令310
11.5.2 寄存器装载指令LDR(2)311
11.5.3 寄存器装载指令LDR(3)312
11.5.4 寄存器装载指令LDR(4)313
11.5.5 字节加栽指令LDRB(1)313
11.5.6 字节加载指令LDRB(2)314
11.5.7 半字加载指令LDRH(1)315
11.5.8 半字数据加载指令LDRH(2)315
11.5.9 有符号字节数据加载指令LDRSB316
11.5.10 有符号半字数据加载指令LDRSH317
11.5.11 寄存器存储指令STR(1)318
11.5.12 寄存器存储指令STR(2)318
11.5.13 寄存器存储指令STR(3)319
11.5.14 字节存储指令STRB(1)320
11.5.15 寄存器存储指令STRB(2)320
11.5.16 半字存储指令STRH(1)321
11.5.17 寄存器存储指令STRH(2)322
11.5.18 数据传送指令举例323
11.6 多寄存器数据传送指令323
11.6.1 多寄存器数据加载指令LDMIA323
11.6.2 多寄存器数据存储指令STMIA324
11.6.3 多寄存器压栈指令PUSH325
11.6.4 多寄存器出栈指令POP326
11.6.5 多寄存器数据传送指令举例327
11.7 异常中断产生指令(断点指令)328
11.7.1 软中断指令SWI328
11.7.2 断点中断指令BKPT329
11.8 未定义的指令空间330
11.9 Thumb指令应用330
11.9.1 Thumb的实现330
11.9.2 Thumb的特点332
11.10 ARM和Thumb的混合编程333
11.10.1 互交工作基础333
11.10.2 互交子程序335
第12章 混合使用C、C++和汇编语言345
12.1 内联汇编和嵌入型汇编的使用345
12.1.1 内联汇编345
12.1.2 嵌入式汇编356
12.1.3 内联汇编中使用SP、LR和PC寄存器的遗留问题362
12.1.4 内联汇编代码与嵌入式汇编代码之间的差异363
12.2 从汇编代码访问C全局变量364
12.3 在C++中使用C头文件364
12.3.1 在C++中使用系统C头文件365
12.3.2 在C++中使用自定义的C头文件365
12.4 C、C++和ARM汇编语言之间的调用366
12.4.1 相互调用的一般规则366
12.4.2 C++的特定信息367
12.4.3 混合编程调用举例367
第13章 嵌入式软件开发374
13.1 基于ARM处理器的嵌入式系统设计374
13.1.1 未对齐的数据指针374
13.1.2 结构体中未对齐字段375
13.1.4 移植代码并检测非对齐内存访问377
13.1.3 用于半字存取的非对齐LDR指令377
13.2 编译器的缺省行为378
13.2.1 Semihosting379
13.2.2 C库结构381
13.2.3 默认存储器映射382
13.2.4 链接程序放置规则382
13.2.5 应用程序启动383
13.3 调整C库使其适应目标硬件384
13.3.1 C库函数重定向384
13.3.2 从最终代码映像中去掉Semihosting385
13.4 映像文件存储器映射调整385
13.4.1 关于分散加载385
13.4.2 Scatter文件语法389
13.4.3 Scatter文件典型用法396
13.4.4 等效的简单映像分散载入描述401
13.5 复位和初始化405
13.5.1 初始化序列405
13.5.2 向量表406
13.5.3 ROM/RAM重映射406
13.5.3 局部存储器设置有关的考虑事项409
13.5.4 栈指针初始化409
13.5.5 硬件初始化411
13.6 进一步存储器映射考虑事项411
13.6.1 在Scatter文件中定位目标外设412
13.6.2 在Scatter文件中放置堆和栈412
14.1.1 为编译器选择处理器结构416
14.1 C编译器及其优化416
第14章 高效的C编程416
14.1.2 调试选项417
14.1.3 优化选项417
14.1.4 AAPCS选项418
14.1.5 编译选项对代码生成影响示例418
14.2 除法运算422
14.2.1 合并除法和求余运算422
14.2.2 使用2的整数次幂做除数423
14.2.3 求余运算423
14.2.4 除数是常数的除法424
14.3 条件执行424
14.4.1 范围检测425
14.4 布尔表达式425
14.4.2 和零的比较操作426
14.5 C循环结构427
14.5.1 循环中止428
14.5.2 循环展开429
14.6 Switch语句430
14.7 寄存器分配432
14.7.1 变量寄存器分配432
14.7.2 指针别名433
14.8 变量类型438
14.8.1 局部变量438
14.8.2 有符号数和无符号数439
14.8.3 全局变量439
14.9.1 减少函数调用开销443
14.9 函数调用443
14.9.2 使用_value_in_regs返回结构体445
14.9.3 叶子函数446
14.9.4 嵌套优化447
14.9.5 单纯子函数448
14.9.6 内嵌函数449
14.9.7 函数定义450
14.10 浮点运算451
14.11 移植问题452
第15章 ARM存储器453
15.1 协处理器CP15454
15.1.1 CP15寄存器访问指令455
15.1.2 CP15中的寄存器457
15.1.3 寄存器c0458
15.1.4 寄存器c1462
15.2 片上存储器465
15.3 高速缓冲存储器Cache465
15.3.1 Cache的分类466
15.3.2 Cache性能的衡量466
15.3.3 Cache工作原理467
15.3.4 Cache与主存的关系468
15.3.5 Cache的写策略470
15.3.6 Cache的替换策略471
15.3.7 与Cache相关的编程接口472
15.3.8 内存一致性476
15.3.9 Cache初始化子程序示例478
15.4 存储保护单元MPU480
15.4.1 保护域(Protection Regions)481
15.4.2 内存访问顺序482
15.4.3 使能MPU482
15.4.4 重叠域483
15.4.5 与MPU相关的CP15寄存器483
15.5 存储管理单元MMU487
15.5.1 MMU概述487
15.5.2 MMU与MPU488
15.5.3 内存访问过程488
15.5.4 MMU的使能与禁止489
15.5.5 虚拟地址到物理地址的转换490
15.5.7 与TLB相关的操作500
15.5.6 域(domain)和存储器访问权限500
15.5.8 存储访问失效502
15.5.9 快速上下文切换扩展(FCSE,Fast Context Switch Extension)506
第16章 ARM体系结构的发展510
16.1 ARM体系结构的发展过程510
16.2 ARMv6增加的系统支持511
16.2.1 存储管理511
16.2.2 多处理单元支持513
16.2.3 异常处理和中断513
16.2.4 混和大小端支持513
16.2.5 对媒体处理的支持513
A.1.1 基本数据类型515
A.1.2 字节顺序515
A.1 数据类型515
附录A ARM体系结构过程调用标准(AAPCS)515
A.1.3 混和数据类型516
A.2 基本过程调用标准516
A.2.1 寄存器516
A.2.2 进程、内存和栈519
A.2.3 子程序调用标准521
A.2.4 结果返回521
A.2.5 参数传递521
A.2.6 互交代码522
A.3 C/C++语言数据类型523
A.3.1 基本数据类型523
A.3.2 结构、联合、枚举和位字段525
A.4 浮点操作编译选项527
附录B ARM指令速查(按字母顺序)529
附录C Thumb指令速查(按字母顺序)538
附录D ARM汇编伪操作速查手册(按字母顺序)548
附录E 向量浮点编程558
E.1 向量浮点协处理器558
E.2 浮点寄存器558
E.2.1 寄存器组558
E.2.2 向量559
E.3 向量和标量运算560
E.4 VFP和条件码560
E.5 VFP系统寄存器561
E.5.1 浮点状态和控制寄存器FPSCR561
E.6 清零模式(Flush—to—Zero)563
E.5.3 浮点系统标识寄存器FPSID563
E.5.2 浮点异常寄存器FPEXC563
E.6.1 清零模式的适用范围564
E.6.2 使用清零模式的影响564
E.7 VFP指令564
E.7.1 FABS、FCPY和FNEG564
E.7.2 FADD和FSUB565
E.7.3 FCMP566
E.7.4 FCVTDS567
E.7.5 FCVTSD567
E.7.6 FDIV568
E.7.7 FLD和FST568
E.7.8 FLDM和FSTM569
E.7.9 FMAC、FNMAC、FMSC和FNMSC570
E.7.10 FMDRR和FMRRD571
E.7.11 FMDHR、FMDLR、FMRDH和FMRDL572
E.7.12 FMRS和FMSR573
E.7.13 FMRRS和FMSRR573
E.7.14 FMRX、FMXP和FMSTAT574
E.7.15 FMUL和FNMUL575
E.7.16 FSITO和FUITO575
E.7.17 FSQRT576
E.7.18 FTOSI和FTOUI577
E.8 浮点操作伪指令(pseudo—instruction)577
E.9 浮点运算伪操作和向量记号578
E.9.1 VFPASSERT SCALAR578
E.9.2 VFPASSERT VECTOR579
E.10 浮点运算指令一览表580
参考文献582
热门推荐
- 2534833.html
- 3133706.html
- 3338007.html
- 2734319.html
- 213841.html
- 2234007.html
- 1888615.html
- 2046680.html
- 2193570.html
- 213661.html
- http://www.ickdjs.cc/book_126583.html
- http://www.ickdjs.cc/book_48277.html
- http://www.ickdjs.cc/book_159329.html
- http://www.ickdjs.cc/book_2051049.html
- http://www.ickdjs.cc/book_2061476.html
- http://www.ickdjs.cc/book_10116.html
- http://www.ickdjs.cc/book_2522174.html
- http://www.ickdjs.cc/book_48156.html
- http://www.ickdjs.cc/book_2253418.html
- http://www.ickdjs.cc/book_679189.html