注冊(cè) | 登錄讀書好,好讀書,讀好書!
讀書網(wǎng)-DuShu.com
當(dāng)前位置: 首頁(yè)出版圖書教育/教材/教輔考試計(jì)算機(jī)考試ARM認(rèn)證工程師應(yīng)試指南

ARM認(rèn)證工程師應(yīng)試指南

ARM認(rèn)證工程師應(yīng)試指南

定 價(jià):¥49.00

作 者: 奚海蛟,諶利 著
出版社: 電子工業(yè)出版社
叢編項(xiàng): 嵌入式技術(shù)與應(yīng)用叢書
標(biāo) 簽: 電工電氣 工業(yè)技術(shù)

ISBN: 9787121213618 出版時(shí)間: 2013-09-01 包裝: 平裝
開本: 16開 頁(yè)數(shù): 264 字?jǐn)?shù):  

內(nèi)容簡(jiǎn)介

  《嵌入式技術(shù)與應(yīng)用叢書:ARM認(rèn)證工程師應(yīng)試指南》是針對(duì)ARMAAE考試認(rèn)證編寫的,旨在為對(duì)參加AAE認(rèn)證考試的讀者提供有益的幫助,對(duì)匯編語(yǔ)言和C語(yǔ)言的程序員提供有用的信息。《嵌入式技術(shù)與應(yīng)用叢書:ARM認(rèn)證工程師應(yīng)試指南》分為ARM認(rèn)證工程師學(xué)習(xí)指南和Cortex-A系列程序員指南兩部分。在ARM認(rèn)證工程師學(xué)習(xí)指南部分給出了AAE認(rèn)證考試的要點(diǎn)及其要求掌握的程度;在Cortex-A系列程序員指南部分對(duì)第1部分給出的要點(diǎn)進(jìn)行了詳細(xì)論述,內(nèi)容涵蓋:ARM簡(jiǎn)介,ARM體系結(jié)構(gòu)和處理器,工具、操作系統(tǒng)和開發(fā)板,ARM寄存器、模式和指令集,匯編語(yǔ)言簡(jiǎn)介,ARM/Thumb的統(tǒng)一匯編,浮點(diǎn),NEON簡(jiǎn)介,高速緩存,內(nèi)存管理單元,內(nèi)存訪問排序,異常處理,中斷處理,其他異常處理程序,引導(dǎo)代碼,移植,應(yīng)用程序二進(jìn)制接口,性能分析,優(yōu)化運(yùn)行在ARM處理器的代碼,編寫NEON代碼,多重處理器簡(jiǎn)介,SMP架構(gòu)考慮,并行軟件,并行軟件的問題,電源管理,安全性,虛擬化,big.LITTLE簡(jiǎn)介,調(diào)試。

作者簡(jiǎn)介

  奚海蛟,男,北京航空航天大學(xué)博士、博士后,2000年開始在多個(gè)大型培訓(xùn)機(jī)構(gòu)和高校任講師,主講的課程有信號(hào)與系統(tǒng)、通信原理、游戲客戶端開發(fā)、3D數(shù)學(xué)、嵌入式移植、嵌入式驅(qū)動(dòng)程序設(shè)計(jì)、ARM體系結(jié)構(gòu)開發(fā)、物聯(lián)網(wǎng)等;2009創(chuàng)建北京融慧廣澤科技有限公司,2010年創(chuàng)建北京通聯(lián)物網(wǎng)教育咨詢有限公司合伙人,總經(jīng)理。

圖書目錄

目 錄
第1部分 ARM認(rèn)證工程師學(xué)習(xí)指南

第1章 學(xué)習(xí)指南 2
1.1 ARM認(rèn)證工程師介紹 2
1.2 ARM認(rèn)證工程師大綱概述 2
1.3 大綱詳述 3
1.3.1 實(shí)現(xiàn) 3
1.3.2 軟件調(diào)試 4
1.3.3 架構(gòu) 9
1.3.4 軟件開發(fā) 21
1.3.5 系統(tǒng) 30
1.3.6 軟件優(yōu)化 33

第2部分 Cortex-A系列程序員指南

第2章 ARM簡(jiǎn)介 38
2.1 ARM的歷史 38
2.2 片上系統(tǒng)(SoC) 39
2.3 嵌入式系統(tǒng) 39
第3章 ARM體系結(jié)構(gòu)和處理器 41
3.1 體系結(jié)構(gòu)的版本 42
3.2 體系結(jié)構(gòu)的歷史與擴(kuò)展 42
3.3 ARM Cortex-A系列處理器架構(gòu)關(guān)鍵點(diǎn) 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 高通公司的Scorpion 51
第4章 工具、操作系統(tǒng)和開發(fā)板 52
4.1 Linux發(fā)行版 52
4.1.1 ARM的Linux系統(tǒng) 52
4.1.2 Linux術(shù)語(yǔ) 53
4.1.3 嵌入式Linux 54
4.1.4 板級(jí)支持包 54
4.1.5 Linaro 54
4.2 有用工具 55
4.3 ARM處理器的軟件工具鏈 56
4.4 ARM DS-5 58
4.5 示例平臺(tái) 60
第5章 ARM寄存器、模式和指令集 61
5.1 指令集 61
5.2 模式 62
5.3 寄存器 62
5.4 指令流水線 64
5.4.1 并發(fā)流水線 66
5.4.2 寄存器重命名 66
5.5 分支預(yù)測(cè) 67
5.5.1 返回棧 67
5.5.2 程序員的觀點(diǎn) 68
第6章 匯編語(yǔ)言簡(jiǎn)介 69
6.1 與其他匯編語(yǔ)言的對(duì)比 69
6.2 指令集 70
6.3 GNU匯編器簡(jiǎn)介 71
6.3.1 激活GNU匯編器 71
6.3.2 GNU匯編器語(yǔ)法 71
6.3.3 程序段 72
6.3.4 編譯器的偽指令 72
6.3.5 表達(dá)式 73
6.3.6 GNU工具的命名慣例 73
6.4 ARM工具匯編語(yǔ)言 73
6.4.1 ARM匯編語(yǔ)法 74
6.4.2 標(biāo)簽 74
6.4.3 偽指令 74
6.5 交互工作 75
6.6 識(shí)別匯編代碼 76
第7章 ARM/Thumb的統(tǒng)一匯編語(yǔ)言指令 77
7.1 指令集基礎(chǔ) 77
7.1.1 常量的值 77
7.1.2 條件執(zhí)行 78
7.1.3 狀態(tài)標(biāo)志位和條件碼 80
7.2 數(shù)據(jù)處理操作 80
7.3 乘法運(yùn)算 82
7.4 存儲(chǔ)器指令 83
7.4.1 尋址方式 84
7.4.2 多指令傳送 84
7.5 分支指令 85
7.6 整數(shù)SIMD指令 85
7.6.1 整數(shù)寄存器SIMD指令 86
7.6.2 整數(shù)寄存器SIMD乘法 86
7.6.3 絕對(duì)差之和 87
7.6.4 數(shù)據(jù)打包和解包 87
7.6.5 字節(jié)選擇 88
7.7 飽和算法 88
7.8 雜項(xiàng)指令 88
7.8.1 協(xié)處理器指令 88
7.8.2 協(xié)處理器15(CP15) 89
7.8.3 SVC 90
7.8.4 修改PSR 91
7.8.5 位操作 91
7.8.6 高速緩存預(yù)加載 91
7.8.7 字節(jié)反轉(zhuǎn) 91
7.8.8 其他指令 92
第8章 浮點(diǎn) 93
8.1 浮點(diǎn)運(yùn)算的基本知識(shí)以及IEEE 754標(biāo)準(zhǔn) 93
8.1.1 舍入算法 95
8.1.2 ARM VFP 95
8.1.3 指令 97
8.1.4 啟用VFP 97
8.2 GCC對(duì)VFP的支持 97
8.3 ARM編譯器對(duì)VFP的支持 98
8.4 Linux對(duì)VFP的支持 98
8.5 浮點(diǎn)優(yōu)化 99
第9章 NEON簡(jiǎn)介 100
9.1 SIMD 100
9.2 NEON結(jié)構(gòu)概述 101
9.2.1 VFP的通用性 102
9.2.2 數(shù)據(jù)類型 102
9.2.3 NEON寄存器 102
9.2.4 NEON指令集 104
第10章 高速緩存 106
10.1 為什么高速緩存卓有成效 107
10.2 高速緩存的缺點(diǎn) 107
10.3 存儲(chǔ)器層次 107
10.4 高速緩存的結(jié)構(gòu) 108
10.4.1 高速緩存控制器 109
10.4.2 直接映射高速緩存 109
10.4.3 Set關(guān)聯(lián)高速緩存 110
10.4.4 高速緩存術(shù)語(yǔ) 111
10.4.5 現(xiàn)實(shí)中的例子 112
10.4.6 虛擬和物理的標(biāo)簽和索引 112
10.5 緩存策略 113
10.5.1 分配策略 113
10.5.2 替換策略 113
10.5.3 寫策略 114
10.6 寫緩沖區(qū)和取緩沖區(qū) 114
10.7 緩存的性能和命中率 115
10.8 無(wú)效化和清空緩存 115
10.9 一致點(diǎn)和統(tǒng)一點(diǎn) 116
10.10 二級(jí)緩存控制器 117
10.11 奇偶校驗(yàn)和ECC高速緩存 117
第11章 內(nèi)存管理單元 118
11.1 虛擬內(nèi)存 119
11.2 一級(jí)頁(yè)表 120
11.3 二級(jí)頁(yè)表 122
11.4 轉(zhuǎn)換查找緩沖區(qū) 123
11.5 TLB的一致性 124
11.6 頁(yè)大小的選擇 124
11.7 內(nèi)存屬性 125
11.7.1 內(nèi)存訪問權(quán)限 125
11.7.2 內(nèi)存類型 125
11.7.3 域 126
11.8 多任務(wù)和操作系統(tǒng)使用的頁(yè)表 127
11.8.1 地址空間ID 127
11.8.2 頁(yè)表基址寄存器0和1 128
11.8.3 快速上下文切換擴(kuò)展 128
11.9 大物理地址擴(kuò)展 129
第12章 內(nèi)存訪問排序 131
12.1 ARM存儲(chǔ)排序模型 132
12.1.1 Strongly-ordered和Device內(nèi)存 132
12.1.2 Normal內(nèi)存 133
12.2 內(nèi)存隔離 134
12.2.1 內(nèi)存隔離使用示例 135
12.2.2 用隔離避免死鎖 136
12.2.3 WFE和WFI的隔離 137
12.2.4 Linux下使用的隔離 137
12.3 緩存一致性問題 138
12.3.1 復(fù)制代碼的問題 138
12.3.2 編譯器的重新排序優(yōu)化 138
第13章 異常處理 139
13.1 異常類型 140
13.2 異常模式一覽 141
13.3 進(jìn)入異常處理程序 142
13.4 退出異常處理程序 143
13.5 向量表 143
13.6 返回指令 143
第14章 中斷處理 144
14.1 外部中斷請(qǐng)求 144
14.1.1 中斷分配 145
14.1.2 簡(jiǎn)單中斷處理 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 引導(dǎo)過(guò)程 151
15.4.2 中斷調(diào)度 151
第16章 引導(dǎo)代碼 152
16.1 啟動(dòng)一個(gè)裸機(jī)系統(tǒng) 152
16.2 配置 156
16.3 引導(dǎo)LINUX 156
16.3.1 復(fù)位異常處理 157
16.3.2 引導(dǎo)程序 157
16.3.3 初始化內(nèi)存系統(tǒng) 157
16.3.4 內(nèi)核鏡像 157
16.3.5 內(nèi)核參數(shù) 158
16.3.6 內(nèi)核入口 158
16.3.7 平臺(tái)的具體行為 158
16.3.8 內(nèi)核啟動(dòng)代碼 158
第17章 移植 160
17.1 大小端 160
17.2 對(duì)齊 163
17.3 其他的C代碼移植問題 164
17.3.1 unsigned char和signed char 164
17.3.2 編譯器packing結(jié)構(gòu)體 164
17.3.3 堆棧的使用 165
17.3.4 其他問題 166
17.4 移植ARM的匯編代碼到ARMV-7 166
17.5 移植ARM代碼到THUMB架構(gòu) 167
17.5.1 使用PC作為操作數(shù) 167
17.5.2 分支和互連 167
17.5.3 操作數(shù)組合 168
17.5.4 ARM/Thumb的其他差異 169
第18章 應(yīng)用程序二進(jìn)制接口 170
18.1 過(guò)程調(diào)用標(biāo)準(zhǔn) 170
18.1.1 VFP和NEON寄存器的使用 173
18.1.2 鏈接 174
18.1.3 棧和堆 175
18.1.4 返回結(jié)果 175
18.2 C和匯編代碼混合編程 175
第19章 性能分析 178
19.1 分析器輸出 179
19.2 Gprof 179
19.3 OProfile 180
19.4 DS-5 Streamline 180
19.5 ARM性能監(jiān)視器 181
19.6 Linux的Perf事件 182
19.7 Ftrace 182
19.8 Valgrind和Cachegrind 182
第20章 優(yōu)化運(yùn)行在ARM處理器的代碼 183
20.1 編譯器優(yōu)化 184
20.1.1 函數(shù)內(nèi)聯(lián) 184
20.1.2 消除公共子表達(dá)式 184
20.1.3 循環(huán)展開 185
20.1.4 GCC優(yōu)化選項(xiàng) 186
20.1.5 armcc優(yōu)化選項(xiàng) 187
20.2 ARM存儲(chǔ)系統(tǒng)優(yōu)化 187
20.2.1 數(shù)據(jù)緩存優(yōu)化 188
20.2.2 循環(huán)分片 188
20.2.3 循環(huán)交換 189
20.2.4 結(jié)構(gòu)對(duì)齊 189
20.2.5 關(guān)聯(lián)性的影響 190
20.2.6 優(yōu)化指令緩存的使用 190
20.2.7 優(yōu)化L2和外部緩存的使用 191
20.2.8 優(yōu)化TLB的使用 191
20.2.9 數(shù)據(jù)中止優(yōu)化 191
20.2.10 預(yù)取內(nèi)存塊訪問 192
20.3 修改源代碼 192
20.3.1 循環(huán)結(jié)束 192
20.3.2 循環(huán)合并 192
20.3.3 減少堆和棧的使用 193
20.3.4 變量選擇 193
20.3.5 指針別名 194
20.3.6 除法和取模 195
20.3.7 外部數(shù)據(jù) 195
20.3.8 內(nèi)聯(lián)或嵌入?yún)R編 195
20.3.9 復(fù)雜尋址模式 195
20.3.10 非對(duì)齊訪問 196
20.3.11 鏈接器優(yōu)化 196
第21章 編寫NEON代碼 197
21.1 NEON C編譯器和匯編器 197
21.1.1 矢量化 197
21.1.2 NEON庫(kù) 197
21.1.3 內(nèi)部函數(shù) 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 檢測(cè)NEON 200
21.2 優(yōu)化NEON匯編代碼 201
21.2.1 內(nèi)存訪問優(yōu)化 201
21.2.2 對(duì)齊 202
21.2.3 調(diào)度 202
21.3 NEON省電 202
第22章 多重處理器簡(jiǎn)介 204
22.1 多處理器ARM系統(tǒng) 205
22.2 對(duì)稱多重處理 206
22.3 非對(duì)稱多重處理AMP 207
第23章 SMP架構(gòu)考慮 209
23.1 緩存一致性 209
23.1.1 MESI協(xié)議 210
23.1.2 MOESI協(xié)議 210
23.1.3 ACP 211
23.2 TLB和緩存維護(hù)廣播 211
23.3 在SMP系統(tǒng)中處理中斷 212
23.4 獨(dú)占訪問 212
23.5 引導(dǎo)SMP系統(tǒng) 215
23.5.1 處理器ID 215
23.5.2 Linux中SMP啟動(dòng) 216
23.6 私有內(nèi)存區(qū)域 216
第24章 并行軟件 218
24.1 分解法 218
24.2 線程模型 219
24.3 線程庫(kù) 220
24.3.1 線程間的通信 222
24.3.2 線程性能 222
24.3.3 線程關(guān)聯(lián) 222
24.4 Linux內(nèi)核中的同步機(jī)制 222
24.4.1 結(jié)束(Completions)機(jī)制 222
24.4.2 自旋鎖 223
24.4.3 信號(hào)量 223
24.4.4 無(wú)鎖同步 223
第25章 并行軟件的問題 224
25.1 線程安全性和可重入性 224
25.2 性能問題 225
25.2.1 帶寬問題 225
25.2.2 線程依賴性 225
25.2.3 緩存抖動(dòng) 226
25.2.4 偽共享 226
25.2.5 死鎖和活鎖 226
25.3 剖析SMP系統(tǒng) 226
第26章 電源管理 227
26.1 待機(jī)模式 228
26.2 休眠模式 228
26.3 匯編語(yǔ)言電源指令 229
26.4 動(dòng)態(tài)電壓和頻率調(diào)整 229
第27章 安全性 230
27.1 可信區(qū)的硬件架構(gòu) 230
27.2 多處理器系統(tǒng)的安全性擴(kuò)展 232
27.3 正常世界和安全世界的相互作用 233
第28章 虛擬化 235
28.1 用于ARMV7-A的虛擬化擴(kuò)展 236
28.1.1 在ARMv7-A的虛擬化擴(kuò)展中的權(quán)限模型 236
28.1.2 超級(jí)管理模式 236
28.1.3 內(nèi)存轉(zhuǎn)換 237
28.2 超級(jí)監(jiān)控程序異常模型 237
28.3 虛擬化和ARM安全擴(kuò)展之間的關(guān)系 238
第29章 big.LITTLE簡(jiǎn)介 239
29.1 big.LITTLE配置 239
29.2 big.LITTLE系統(tǒng)的結(jié)構(gòu) 240
29.3 big.LITTLE中的執(zhí)行模型 241
29.3.1 big.LITTLE遷移模型 241
29.3.2 集群遷移 242
29.3.3 CPU遷移 243
29.4 big.LITTLE MP操作 244
第30章 調(diào)試 245
30.1 ARM調(diào)試硬件 245
30.2 ARM跟蹤硬件 246
30.3 調(diào)試監(jiān)視器 248
30.4 調(diào)試Linux應(yīng)用程序 248
30.5 DS-5的調(diào)試和跟蹤 249
30.5.1 使用DS-5調(diào)試Linux應(yīng)用程序 250
30.5.2 調(diào)試Linux內(nèi)核模塊 250
30.5.3 使用DS-5調(diào)試Linux內(nèi)核 251
30.5.4 使用DS-5調(diào)試多線程應(yīng)用程序 251
30.5.5 調(diào)試共享庫(kù) 251
30.5.6 DS-5的跟蹤支持 251
參考文獻(xiàn) 254

本目錄推薦

掃描二維碼
Copyright ? 讀書網(wǎng) m.ranfinancial.com 2005-2020, All Rights Reserved.
鄂ICP備15019699號(hào) 鄂公網(wǎng)安備 42010302001612號(hào)