作為一種32位高性能、低成本的嵌入式RISC微處理器, ARM已經(jīng)成為應(yīng)用最廣泛的嵌入式處理器。目前Cortex-A系列處理器已經(jīng)占據(jù)了大部分的中高端產(chǎn)品市場。本書在全面介紹Cortex-A9處理器的體系結(jié)構(gòu)、編程模型、指令系統(tǒng)及Eclipse For ARM開發(fā)環(huán)境搭建的同時, 以基于Cortex-A9為核心的應(yīng)用處理器Exynos4412為核心, 詳細介紹了ARM系統(tǒng)設(shè)計及相關(guān)接口技術(shù)。接口技術(shù)涵蓋了GPIO、GIC、UART、PWM、RTC、WDT、A/D、I2C、SPI等, 并提供了大量的實驗例程和視頻講解, 通過練習和操作實踐, 幫助讀者鞏固所學的內(nèi)容。
國內(nèi)領(lǐng)先的嵌入式培訓機構(gòu)華清遠見出品,作者具有多年從業(yè)經(jīng)驗,真正從企業(yè)用人需求出發(fā),培養(yǎng)和提升讀者能力;
歷經(jīng)市場考驗,第三次修訂改版;
書中配有大量微課,詳細講解重點難點。
劉洪濤,北京華清遠見科技信息有限公司技術(shù)總監(jiān),ARM公司全球認證講師。參與編寫過幾十本專業(yè)圖書;國內(nèi)知名物聯(lián)網(wǎng)方向技術(shù)顧問;首批高校物聯(lián)網(wǎng)專業(yè)建設(shè)教學指導(dǎo)委員會專家委員會成員;豐富的嵌入式及物聯(lián)網(wǎng)系統(tǒng)軟、硬件產(chǎn)品開發(fā)經(jīng)驗;主持開發(fā)過多個大型嵌入式及物聯(lián)網(wǎng)項目,涉及工業(yè)控制、網(wǎng)絡(luò)、通訊、消費電子等眾多領(lǐng)域。
第1章 嵌入式ARM技術(shù)概論 1
1.1 ARM體系結(jié)構(gòu)的技術(shù)特征及發(fā)展 2
1.1.1 ARM公司簡介 2
1.1.2 ARM技術(shù)特征 2
1.1.3 ARM體系架構(gòu)的發(fā)展 3
1.2 ARM微處理器簡介 4
1.2.1 ARM9處理器系列 5
1.2.2 ARM9E處理器系列 5
1.2.3 ARM11處理器系列 6
1.2.4 SecurCore處理器系列 6
1.2.5 StrongARM和Xscale處理器系列 6
1.2.6 MPCore處理器系列 6
1.2.7 Cortex處理器系列 6
1.2.8 ARM應(yīng)用處理器發(fā)展現(xiàn)狀與趨勢 8
1.3 ARM微處理器架構(gòu) 9
1.4 ARM微處理器的應(yīng)用選型 10
1.4.1 ARM芯片選擇的一般原則 10
1.4.2 選擇一款適合ARM教學的CPU 10
1.5 Cortex-A9內(nèi)部功能及特點 12
1.6 數(shù)據(jù)類型 13
1.6.1 ARM的基本數(shù)據(jù)類型 13
1.6.2 浮點數(shù)據(jù)類型 13
1.6.3 存儲器大/小端 14
1.7 Cortex-A9內(nèi)核工作模式 14
1.8 Cortex-A9存儲系統(tǒng) 15
1.8.1 協(xié)處理器(CP15) 16
1.8.2 存儲管理單元(MMU) 17
1.8.3 高速緩沖存儲器(Cache) 17
1.9 流水線 17
1.9.1 流水線的概念與原理 17
1.9.2 流水線的分類 18
1.9.3 影響流水線性能的因素 19
1.10 寄存器組織 19
1.11 程序狀態(tài)寄存器 21
1.12 三星Exynos4412處理器介紹 24
1.13 FS4412開發(fā)平臺介紹 25
1.14 本章小結(jié) 29
1.15 練習題 29
第2章 ARM開發(fā)環(huán)境搭建 30
2.1 仿真器簡介 31
2.2 開發(fā)環(huán)境搭建 31
2.2.1 Windows XP環(huán)境安裝FS-JTAG工具 32
2.2.2 Windows 7/Windows 8環(huán)境安裝FS-JTAG工具 34
2.2.3 Windows8.1環(huán)境安裝FS-JTAG工具 39
2.2.4 連接硬件平臺 42
2.2.5 USB轉(zhuǎn)串口驅(qū)動安裝 42
2.2.6 Putty串口終端配置 43
2.3 Eclipse for ARM使用 45
2.4 導(dǎo)入一個已有工程 45
2.5 調(diào)試工程 49
2.5.1 配置FS-JTAG調(diào)試工具 49
2.5.2 配置調(diào)試工具 49
2.5.3 查看變量及寄存器的方法 53
2.5.4 斷點設(shè)置方法 54
2.5.5 查看內(nèi)存數(shù)據(jù)信息方法 54
2.5.6 調(diào)試結(jié)束后的處理 55
2.6 創(chuàng)建一個新工程 56
2.7 編譯工程 58
2.8 64位eclipse編譯常見問題及解決 60
2.9 本章小結(jié) 62
2.10 練習題 62
第3章 ARM指令 63
3.1 ARM指令集 64
3.1.1 數(shù)據(jù)處理指令尋址方式 64
3.1.2 乘法指令 69
3.1.3 跳轉(zhuǎn)指令 71
3.1.4 Load/Store指令 74
3.1.5 狀態(tài)寄存器傳輸指令 79
3.1.6 協(xié)處理器指令 81
3.1.7 異常產(chǎn)生指令 82
3.2 ARM指令的尋址方式 84
3.2.1 數(shù)據(jù)處理指令的操作數(shù)的尋址方式 84
3.2.2 字及無符號字節(jié)的Load/Store指令的尋址方式 85
3.2.3 批量Load/Store指令的尋址方式 86
3.2.4 相對尋址 88
3.3 本章小結(jié) 88
3.4 練習題 88
第4章 ARM匯編程序設(shè)計 89
4.1 GNU ARM匯編器的偽操作 90
4.1.1 符號定義偽操作 90
4.1.2 數(shù)據(jù)定義偽操作 91
4.1.3 匯編控制偽操作 93
4.1.4 雜項偽操作 94
4.2 ARM匯編器支持的偽指令 96
4.2.1 ADR偽指令 96
4.2.2 ADRL偽指令 97
4.2.3 LDR偽指令 97
4.3 ARM匯編語言的程序結(jié)構(gòu) 98
4.3.1 匯編語言的程序格式 98
4.3.2 匯編語言的子程序調(diào)用 99
4.3.3 匯編語言程序設(shè)計舉例 99
4.4 匯編語言與C語言的混合編程 100
4.4.1 GNU內(nèi)聯(lián)匯編 100
4.4.2 C和匯編的相互調(diào)用 103
4.4.3 過程調(diào)用標準AAPCS/ATPCS 104
4.5 本章小結(jié) 105
4.6 練習題 105
第5章 GPIO編程 106
5.1 GPIO功能介紹 107
5.2 Exynos4412-GPIO控制器詳解 107
5.2.1 GPIO功能描述 107
5.2.2 GPIO特性 107
5.2.3 GPIO分組預(yù)覽 108
5.2.4 Exynos4412-GPIO常用寄存器分類 108
5.2.5 Exynos4412-GPIO接口常用寄存器詳解 109
5.2.6 GPIO寄存器封裝 110
5.3 GPIO控制實驗 112
5.3.1 實驗?zāi)康摹?12
5.3.2 實驗原理 112
5.3.3 實驗內(nèi)容 113
5.3.4 實驗代碼 113
5.3.5 實驗現(xiàn)象 114
5.4 本章小結(jié) 114
5.5 練習題 114
第6章 ARM異常及中斷處理 115
6.1 ARM異常中斷處理概述 116
6.2 ARM體系異常種類 116
6.3 ARM異常的優(yōu)先級 121
6.4 ARM處理器模式和異!121
6.5 ARM異常響應(yīng)和處理程序返回 122
6.5.1 中斷響應(yīng)的概念 122
6.5.2 ARM異常響應(yīng)流程 122
6.5.3 從異常處理程序中返回 123
6.6 ARM的SWI異常中斷處理程序設(shè)計 124
6.7 ARM中斷控制器簡介 126
6.7.1 中斷軟件分支處理(NVIC和GIC) 126
6.7.2 硬件支持的分支處理(VIC) 127
6.8 通用中斷控制器(GIC) 128
6.8.1 GIC功能模塊 129
6.8.2 GIC中斷控制器中斷類型 130
6.8.3 GIC中斷控制器中斷狀態(tài) 130
6.8.4 GIC中斷處理流程 130
6.9 Exynos4412中斷源 131
6.10 Exynos4412-GIC寄存器詳解 131
6.11 GIC中斷實驗 135
6.11.1 實驗?zāi)康摹?35
6.11.2 實驗原理 135
6.11.3 實驗內(nèi)容 136
6.11.4 實驗代碼 137
6.11.5 實驗現(xiàn)象 140
6.12 本章小結(jié) 140
6.13 練習題 140
第7章 串行通信接口 141
7.1 串行通信概述 142
7.1.1 串行通信與并行通信概念 142
7.1.2 異步串行方式的特點 142
7.1.3 異步串行方式的數(shù)據(jù)格式 142
7.1.4 同步串行方式的特點 142
7.1.5 同步串行方式的數(shù)據(jù)格式 143
7.1.6 波特率、波特率因子與位周期 143
7.1.7 RS-232C串口規(guī)范 143
7.1.8 RS-232C接線方式 145
7.2 Exynos4412異步串行通信 145
7.2.1 Exynos4412串口控制器概述 145
7.2.2 UART寄存器詳解 146
7.3 串口通信實驗 151
7.3.1 實驗?zāi)康摹?51
7.3.2 實驗原理 151
7.3.3 實驗內(nèi)容 152
7.3.4 實驗代碼 152
7.3.5 實驗現(xiàn)象 154
7.4 本章小結(jié) 155
7.5 練習題 155
第8章 PWM定時器 156
8.1 定時器和PWM簡介 157
8.1.1 定時器概述 157
8.1.2 脈沖寬度調(diào)制(PWM)概述 157
8.2 Exynos4412-PWM定時器詳解 157
8.2.1 PWM定時器概述 157
8.2.2 PWM定時器寄存器詳解 158
8.2.3 PWM定時器雙緩沖功能 161
8.2.4 PWM定時器PWM信號輸出 162
8.3 PWM定時器實驗—定時觸發(fā) 163
8.3.1 實驗?zāi)康摹?63
8.3.2 實驗原理 163
8.3.3 實驗代碼 163
8.3.4 實驗現(xiàn)象 165
8.4 PWM定時器實驗—PWM輸出 166
8.4.1 實驗?zāi)康摹?66
8.4.2 實驗原理 166
8.4.3 實驗代碼 166
8.4.4 實驗現(xiàn)象 167
8.5 本章小結(jié) 167
8.6 練習題 167
第9章 看門狗定時器 168
9.1 看門狗簡介 169
9.2 Exynos4412看門狗定時器詳解 169
9.2.1 看門狗定時器概述 169
9.2.2 看門狗定時器寄存器詳解 170
9.3 看門狗定時器實驗 171
9.3.1 實驗?zāi)康摹?71
9.3.2 實驗原理 171
9.3.3 實驗內(nèi)容 171
9.3.4 實驗代碼 171
9.3.5 實驗現(xiàn)象 172
9.4 本章小結(jié) 173
9.5 練習題 173
第10章 RTC定時器 174
10.1 RTC簡介 175
10.2 Exynos4412-RTC定時器詳解 175
10.2.1 RTC定時器概述 175
10.2.2 RTC定時器寄存器詳解 175
10.2.3 BCD碼 177
10.3 實時時鐘RTC實驗 177
10.3.1 實驗?zāi)康摹?77
10.3.2 實驗原理 177
10.3.3 實驗內(nèi)容 178
10.3.4 實驗代碼 178
10.3.5 實驗現(xiàn)象 179
10.4 本章小結(jié) 180
10.5 練習題 180
第11章 A/D轉(zhuǎn)換器 181
11.1 A/D 轉(zhuǎn)換器原理 182
11.1.1 A/D轉(zhuǎn)換基礎(chǔ) 182
11.1.2 A/D轉(zhuǎn)換的技術(shù)指標 182
11.1.3 A/D轉(zhuǎn)換器類型 183
11.1.4 A/D轉(zhuǎn)換的一般步驟 186
11.2 Exynos4412-A/D轉(zhuǎn)換器詳解 186
11.2.1 Exynos4412-A/D轉(zhuǎn)換器概述 186
11.2.2 Exynos4412-A/D轉(zhuǎn)換器寄存器詳解 187
11.3 A/D實驗 188
11.3.1 實驗?zāi)康摹?88
11.3.2 實驗原理 188
11.3.3 實驗內(nèi)容 188
11.3.4 實驗代碼 189
11.3.5 實驗現(xiàn)象 191
11.4 本章小結(jié) 191
11.5 練習題 192
第12章 I2C接口 193
12.1 I2C總線協(xié)議 194
12.1.1 I2C總線協(xié)議簡介 194
12.1.2 I2C總線協(xié)議內(nèi)容 194
12.2 Exynos4412-I2C控制器詳解 197
12.2.1 I2C總線控制器概述 197
12.2.2 I2C總線控制器寄存器詳解 197
12.2.3 I2C控制器操作流程 200
12.3 I2C重力感應(yīng)/陀螺儀實驗 201
12.3.1 實驗?zāi)康摹?01
12.3.2 實驗原理 201
12.3.3 實驗內(nèi)容 202
12.3.4 實驗代碼 203
12.3.5 實驗現(xiàn)象 206
12.4 本章小結(jié) 207
12.5 練習題 207
第13章 SPI接口 208
13.1 SPI總線協(xié)議 209
13.1.1 協(xié)議簡介 209
13.1.2 協(xié)議內(nèi)容 209
13.2 Exynos4412-SPI控制器詳解 212
13.2.1 SPI控制器簡介 212
13.2.2 SPI控制器時鐘源控制 212
13.2.3 SPI控制器寄存器詳解 215
13.3 SPI/CAN總線實驗 218
13.3.1 實驗?zāi)康摹?18
13.3.2 實驗原理 218
13.3.3 實驗內(nèi)容 219
13.3.4 實驗代碼 220
13.3.5 實驗現(xiàn)象 223
13.4 本章小結(jié) 224
13.5 練習題 224
收起全部↑