图书介绍
ARM认证工程师应试指南【2025|PDF|Epub|mobi|kindle电子书版本百度云盘下载】

- 奚海蛟,谌利编著 著
- 出版社: 北京:电子工业出版社
- ISBN:9787121213618
- 出版时间:2013
- 标注页数:254页
- 文件大小:81MB
- 文件页数:263页
- 主题词:微处理器-系统设计-工程技术人员-资格考试-自学参考资料
PDF下载
下载说明
ARM认证工程师应试指南PDF格式电子书版下载
下载的文件为RAR压缩包。需要使用解压软件进行解压得到PDF格式图书。建议使用BT下载工具Free Download Manager进行下载,简称FDM(免费,没有广告,支持多平台)。本站资源全部打包为BT种子。所以需要使用专业的BT下载软件进行下载。如BitComet qBittorrent uTorrent等BT下载工具。迅雷目前由于本站不是热门资源。不推荐使用!后期资源热门了。安装了迅雷也可以迅雷进行下载!
(文件页数 要大于 标注页数,上中下等多册电子书除外)
注意:本站所有压缩包均有解压码: 点击下载压缩包解压工具
图书目录
第1部分 ARM认证工程师学习指南2
第1章 学习指南2
1.1 ARM认证工程师介绍2
1.2 ARM认证工程师大纲概述2
1.3 大纲详述3
1.3.1 实现3
1.3.2 软件调试4
1.3.3 架构9
1.3.4 软件开发21
1.3.5 系统30
1.3.6 软件优化33
第2部分 Cortex-A系列程序员指南38
第2章 ARM简介38
2.1 ARM的历史38
2.2 片上系统(SoC)39
2.3 嵌入式系统39
第3章 ARM体系结构和处理器41
3.1 体系结构的版本42
3.2 体系结构的历史与扩展42
3.3 ARM Cortex-A系列处理器架构关键点45
3.4 处理器和路径46
3.5 Cortex-A系列处理器47
3.5.1 Cortex-A5处理器47
3.5.2 Cortex-A7处理器48
3.5.3 Cortex-A8处理器48
3.5.4 Cortex-A9处理器49
3.5.5 Cortex-A15处理器50
3.5.6 高通公司的Scorpion51
第4章 工具、操作系统和开发板52
4.1 Linux发行版52
4.1.1 ARM的Linux系统52
4.1.2 Linux术语53
4.1.3 嵌入式Linux54
4.1.4 板级支持包54
4.1.5 Linaro54
4.2 有用工具55
4.3 ARM处理器的软件工具链56
4.4 ARM DS558
4.5 示例平台60
第5章 ARM寄存器、模式和指令集61
5.1 指令集61
5.2 模式62
5.3 寄存器62
5.4 指令流水线64
5.4.1 并发流水线66
5.4.2 寄存器重命名66
5.5 分支预测67
5.5.1 返回栈67
5.5.2 程序员的观点68
第6章 汇编语言简介69
6.1 与其他汇编语言的对比69
6.2 指令集70
6.3 GNU汇编器简介71
6.3.1 激活GNU汇编器71
6.3.2 GNU汇编器语法71
6.3.3 程序段72
6.3.4 编译器的伪指令72
6.3.5 表达式73
6.3.6 GNU工具的命名惯例73
6.4 ARM工具汇编语言73
6.4.1 ARM汇编语法74
6.4.2 标签74
6.4.3 伪指令74
6.5 交互工作75
6.6 识别汇编代码76
第7章 ARM/Thumb的统一汇编语言指令77
7.1 指令集基础77
7.1.1 常量的值77
7.1.2 条件执行78
7.1.3 状态标志位和条件码80
7.2 数据处理操作80
7.3 乘法运算82
7.4 存储器指令83
7.4.1 寻址方式84
7.4.2 多指令传送84
7.5 分支指令85
7.6 整数SIMD指令85
7.6.1 整数寄存器SIMD指令86
7.6.2 整数寄存器SIMD乘法86
7.6.3 绝对差之和87
7.6.4 数据打包和解包87
7.6.5 字节选择88
7.7 饱和算法88
7.8 杂项指令88
7.8.1 协处理器指令88
7.8.2 协处理器15(CP15)89
7.8.3 SVC90
7.8.4 修改PSR91
7.8.5 位操作91
7.8.6 高速缓存预加载91
7.8.7 字节反转91
7.8.8 其他指令92
第8章 浮点93
8.1 浮点运算的基本知识以及IEEE 754标准93
8.1.1 舍入算法95
8.1.2 ARM VFP95
8.1.3 指令97
8.1.4 启用VFP97
8.2 GCC对VFP的支持97
8.3 ARM编译器对VFP的支持98
8.4 Linux对VFP的支持98
8.5 浮点优化99
第9章 NEON简介100
9.1 SIMD100
9.2 NEON结构概述101
9.2.1 VFP的通用性102
9.2.2 数据类型102
9.2.3 NEON寄存器102
9.2.4 NEON指令集104
第10章 高速缓存106
10.1 为什么高速缓存卓有成效107
10.2 高速缓存的缺点107
10.3 存储器层次107
10.4 高速缓存的结构108
10.4.1 高速缓存控制器109
10.4.2 直接映射高速缓存109
10.4.3 Set关联高速缓存110
10.4.4 高速缓存术语111
10.4.5 现实中的例子112
10.4.6 虚拟和物理的标签和索引112
10.5 缓存策略113
10.5.1 分配策略113
10.5.2 替换策略113
10.5.3 写策略114
10.6 写缓冲区和取缓冲区114
10.7 缓存的性能和命中率115
10.8 无效化和清空缓存115
10.9 一致点和统一点116
10.10 二级缓存控制器117
10.11 奇偶校验和ECC高速缓存117
第11章 内存管理单元118
11.1 虚拟内存119
11.2 一级页表120
11.3 二级页表122
11.4 转换查找缓冲区123
11.5 TLB的一致性124
11.6 页大小的选择124
11.7 内存属性125
11.7.1 内存访问权限125
11.7.2 内存类型125
11.7.3 域126
11.8 多任务和操作系统使用的页表127
11.8.1 地址空间ID127
11.8.2 页表基址寄存器0和1128
11.8.3 快速上下文切换扩展128
11.9 大物理地址扩展129
第12章 内存访问排序131
12.1 ARM存储排序模型132
12.1.1 Strongly-ordered和Device 内存132
12.1.2 Normal内存133
12.2 内存隔离134
12.2.1 内存隔离使用示例135
12.2.2 用隔离避免死锁136
12.2.3 WFE和WFI的隔离137
12.2.4 Linux下使用的隔离137
12.3 缓存一致性问题138
12.3.1 复制代码的问题138
12.3.2 编译器的重新排序优化138
第13章 异常处理139
13.1 异常类型140
13.2 异常模式一览141
13.3 进入异常处理程序142
13.4 退出异常处理程序143
13.5 向量表143
13.6 返回指令143
第14章 中断处理144
14.1 外部中断请求144
14.1.1 中断分配145
14.1.2 简单中断处理145
14.1.3 中断嵌套处理145
14.2 通用中断控制器146
14.2.1 配置147
14.2.2 初始化顺序147
14.2.3 中断处理147
第15章 其他异常处理程序149
15.1 中止异常处理程序149
15.2 未定义指令处理149
15.3 SVC异常处理150
15.4 Linux的异常程序流150
15.4.1 引导过程151
15.4.2 中断调度151
第16章 引导代码152
16.1 启动一个裸机系统152
16.2 配置156
16.3 引导Linux156
16.3.1 复位异常处理157
16.3.2 引导程序157
16.3.3 初始化内存系统157
16.3.4 内核镜像157
16.3.5 内核参数158
16.3.6 内核入口158
16.3.7 平台的具体行为158
16.3.8 内核启动代码158
第17章 移植160
17.1 大小端160
17.2 对齐163
17.3 其他的C代码移植问题164
17.3.1 unsigned char和signed char164
17.3.2 编译器packing结构体164
17.3.3 堆栈的使用165
17.3.4 其他问题166
17.4 移植ARM的汇编代码到ARMv-7166
17.5 移植ARM代码到Thumb架构167
17.5.1 使用PC作为操作数167
17.5.2 分支和互连167
17.5.3 操作数组合168
17.5.4 ARM/Thumb的其他差异169
第18章 应用程序二进制接口170
18.1 过程调用标准170
18.1.1 VFP和NEON寄存器的使用173
18.1.2 链接174
18.1.3 栈和堆175
18.1.4 返回结果175
18.2 C和汇编代码混合编程175
第19章 性能分析178
19.1 分析器输出179
19.2 Gprof179
19.3 OProfile180
19.4 DS-5 Streamline180
19.5 ARM性能监视器181
19.6 Linux的Perf事件182
19.7 Ftrace182
19.8 Valgrind和Cachegrind182
第20章 优化运行在ARM处理器的代码183
20.1 编译器优化184
20.1.1 函数内联184
20.1.2 消除公共子表达式184
20.1.3 循环展开185
20.1.4 GCC优化选项186
20.1.5 armcc优化选项187
20.2 ARM存储系统优化187
20.2.1 数据缓存优化188
20.2.2 循环分片188
20.2.3 循环交换189
20.2.4 结构对齐189
20.2.5 关联性的影响190
20.2.6 优化指令缓存的使用190
20.2.7 优化L2和外部缓存的使用191
20.2.8 优化TLB的使用191
20.2.9 数据中止优化191
20.2.10 预取内存块访问192
20.3 修改源代码192
20.3.1 循环结束192
20.3.2 循环合并192
20.3.3 减少堆和栈的使用193
20.3.4 变量选择193
20.3.5 指针别名194
20.3.6 除法和取模195
20.3.7 外部数据195
20.3.8 内联或嵌入汇编195
20.3.9 复杂寻址模式195
20.3.10 非对齐访问196
20.3.11 链接器优化196
第21章 编写NEON代码197
21.1 NEON C编译器和汇编器197
21.1.1 矢量化197
21.1.2 NEON库197
21.1.3 内部函数198
21.1.4 C的NEON类型198
21.1.5 变量和常量199
21.1.6 从C/C++代码生成NEON指令199
21.1.7 NEON汇编器和.ABI的限制200
21.1.8 检测NEON200
21.2 优化NEON汇编代码201
21.2.1 内存访问优化201
21.2.2 对齐202
21.2.3 调度202
21.3 NEON省电202
第22章 多重处理简介204
22.1 多处理器ARM系统205
22.2 对称多重处理206
22.3 非对称多重处理AMP207
第23章 SMP架构考虑209
23.1 缓存一致性209
23.1.1 MESI协议210
23.1.2 MOESI协议210
23.1.3 ACP211
23.2 TLB和缓存维护广播211
23.3 在SMP系统中处理中断212
23.4 独占访问212
23.5 引导SMP系统215
23.5.1 处理器ID215
23.5.2 Linux中SMP启动216
23.6 私有内存区域216
第24章 并行软件218
24.1 分解法218
24.2 线程模型219
24.3 线程库220
24.3.1 线程间的通信222
24.3.2 线程性能222
24.3.3 线程关联222
24.4 Linux内核中的同步机制222
24.4.1 结束(Completions)机制222
24.4.2 自旋锁223
24.4.3 信号量223
24.4.4 无锁同步223
第25章 并行软件的问题224
25.1 线程安全性和可重入性224
25.2 性能问题225
25.2.1 带宽问题225
25.2.2 线程依赖性225
25.2.3 缓存抖动226
25.2.4 伪共享226
25.2.5 死锁和活锁226
25.3 剖析SMP系统226
第26章 电源管理227
26.1 待机模式228
26.2 休眠模式228
26.3 汇编语言电源指令229
26.4 动态电压和频率调整229
第27章 安全性230
27.1 可信区的硬件架构230
27.2 多处理器系统的安全性扩展232
27.3 正常世界和安全世界的相互作用233
第28章 虚拟化235
28.1 用于ARMv7-A的虚拟化扩展236
28.1.1 在ARMv7-A的虚拟化扩展中的权限模型236
28.1.2 超级管理模式236
28.1.3 内存转换237
28.2 超级监控程序异常模型237
28.3 虚拟化和ARM安全扩展之间的关系238
第29章 big.LITTLE简介239
29.1 big.LITTLE配置239
29.2 big.LITTLE系统的结构240
29.3 big.LITTLE中的执行模型241
29.3.1 big.LITTLE迁移模型241
29.3.2 集群迁移242
29.3.3 CPU迁移243
29.4 big.LITTLE MP操作244
第30章 调试245
30.1 ARM调试硬件245
30.2 ARM跟踪硬件246
30.3 调试监视器248
30.4 调试Linux应用程序248
30.5 DS-5的调试和跟踪249
30.5.1 使用DS-5调试Linux应用程序250
30.5.2 调试Linux内核模块250
30.5.3 使用DS-5调试Linux内核251
30.5.4 使用DS-5调试多线程应用程序251
30.5.5 调试共享库251
30.5.6 DS-5的跟踪支持251
参考文献254
热门推荐
- 2165157.html
- 2811155.html
- 1756931.html
- 2447558.html
- 2348272.html
- 2247854.html
- 2650495.html
- 2383509.html
- 2617407.html
- 2562687.html
- http://www.ickdjs.cc/book_2239187.html
- http://www.ickdjs.cc/book_3390928.html
- http://www.ickdjs.cc/book_2615692.html
- http://www.ickdjs.cc/book_3809578.html
- http://www.ickdjs.cc/book_2871091.html
- http://www.ickdjs.cc/book_2854419.html
- http://www.ickdjs.cc/book_2181575.html
- http://www.ickdjs.cc/book_1109143.html
- http://www.ickdjs.cc/book_1921186.html
- http://www.ickdjs.cc/book_77723.html