作為一種32位高性能、低成本的嵌入式RISC微處理器, ARM已經(jīng)成為應(yīng)用最廣泛的嵌入式處理器。目前Cortex-A系列處理器已經(jīng)占據(jù)了大部分的中高端產(chǎn)品市場(chǎng)。本書在全面介紹Cortex-A9處理器的體系結(jié)構(gòu)、編程模型、指令系統(tǒng)及Eclipse For ARM開(kāi)發(fā)環(huán)境搭建的同時(shí), 以基于Cortex-A9為核心的應(yīng)用處理器Exynos4412為核心, 詳細(xì)介紹了ARM系統(tǒng)設(shè)計(jì)及相關(guān)接口技術(shù)。接口技術(shù)涵蓋了GPIO、GIC、UART、PWM、RTC、WDT、A/D、I2C、SPI等, 并提供了大量的實(shí)驗(yàn)例程和視頻講解, 通過(guò)練習(xí)和操作實(shí)踐, 幫助讀者鞏固所學(xué)的內(nèi)容。
國(guó)內(nèi)領(lǐng)先的嵌入式培訓(xùn)機(jī)構(gòu)華清遠(yuǎn)見(jiàn)出品,作者具有多年從業(yè)經(jīng)驗(yàn),真正從企業(yè)用人需求出發(fā),培養(yǎng)和提升讀者能力;
歷經(jīng)市場(chǎng)考驗(yàn),第三次修訂改版;
書中配有大量微課,詳細(xì)講解重點(diǎn)難點(diǎn)。
劉洪濤,北京華清遠(yuǎn)見(jiàn)科技信息有限公司技術(shù)總監(jiān),ARM公司全球認(rèn)證講師。參與編寫過(guò)幾十本專業(yè)圖書;國(guó)內(nèi)知名物聯(lián)網(wǎng)方向技術(shù)顧問(wèn);首批高校物聯(lián)網(wǎng)專業(yè)建設(shè)教學(xué)指導(dǎo)委員會(huì)專家委員會(huì)成員;豐富的嵌入式及物聯(lián)網(wǎng)系統(tǒng)軟、硬件產(chǎn)品開(kāi)發(fā)經(jīng)驗(yàn);主持開(kāi)發(fā)過(guò)多個(gè)大型嵌入式及物聯(lián)網(wǎng)項(xiàng)目,涉及工業(yè)控制、網(wǎng)絡(luò)、通訊、消費(fèi)電子等眾多領(lǐng)域。
第1章 嵌入式ARM技術(shù)概論 1
1.1 ARM體系結(jié)構(gòu)的技術(shù)特征及發(fā)展 2
1.1.1 ARM公司簡(jiǎn)介 2
1.1.2 ARM技術(shù)特征 2
1.1.3 ARM體系架構(gòu)的發(fā)展 3
1.2 ARM微處理器簡(jiǎn)介 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)狀與趨勢(shì) 8
1.3 ARM微處理器架構(gòu) 9
1.4 ARM微處理器的應(yīng)用選型 10
1.4.1 ARM芯片選擇的一般原則 10
1.4.2 選擇一款適合ARM教學(xué)的CPU 10
1.5 Cortex-A9內(nèi)部功能及特點(diǎn) 12
1.6 數(shù)據(jù)類型 13
1.6.1 ARM的基本數(shù)據(jù)類型 13
1.6.2 浮點(diǎn)數(shù)據(jù)類型 13
1.6.3 存儲(chǔ)器大/小端 14
1.7 Cortex-A9內(nèi)核工作模式 14
1.8 Cortex-A9存儲(chǔ)系統(tǒng) 15
1.8.1 協(xié)處理器(CP15) 16
1.8.2 存儲(chǔ)管理單元(MMU) 17
1.8.3 高速緩沖存儲(chǔ)器(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開(kāi)發(fā)平臺(tái)介紹 25
1.14 本章小結(jié) 29
1.15 練習(xí)題 29
第2章 ARM開(kāi)發(fā)環(huán)境搭建 30
2.1 仿真器簡(jiǎn)介 31
2.2 開(kāi)發(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 連接硬件平臺(tái) 42
2.2.5 USB轉(zhuǎn)串口驅(qū)動(dòng)安裝 42
2.2.6 Putty串口終端配置 43
2.3 Eclipse for ARM使用 45
2.4 導(dǎo)入一個(gè)已有工程 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 斷點(diǎn)設(shè)置方法 54
2.5.5 查看內(nèi)存數(shù)據(jù)信息方法 54
2.5.6 調(diào)試結(jié)束后的處理 55
2.6 創(chuàng)建一個(gè)新工程 56
2.7 編譯工程 58
2.8 64位eclipse編譯常見(jiàn)問(wèn)題及解決 60
2.9 本章小結(jié) 62
2.10 練習(xí)題 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 字及無(wú)符號(hào)字節(jié)的Load/Store指令的尋址方式 85
3.2.3 批量Load/Store指令的尋址方式 86
3.2.4 相對(duì)尋址 88
3.3 本章小結(jié) 88
3.4 練習(xí)題 88
第4章 ARM匯編程序設(shè)計(jì) 89
4.1 GNU ARM匯編器的偽操作 90
4.1.1 符號(hào)定義偽操作 90
4.1.2 數(shù)據(jù)定義偽操作 91
4.1.3 匯編控制偽操作 93
4.1.4 雜項(xiàng)偽操作 94
4.2 ARM匯編器支持的偽指令 96
4.2.1 ADR偽指令 96
4.2.2 ADRL偽指令 97
4.2.3 LDR偽指令 97
4.3 ARM匯編語(yǔ)言的程序結(jié)構(gòu) 98
4.3.1 匯編語(yǔ)言的程序格式 98
4.3.2 匯編語(yǔ)言的子程序調(diào)用 99
4.3.3 匯編語(yǔ)言程序設(shè)計(jì)舉例 99
4.4 匯編語(yǔ)言與C語(yǔ)言的混合編程 100
4.4.1 GNU內(nèi)聯(lián)匯編 100
4.4.2 C和匯編的相互調(diào)用 103
4.4.3 過(guò)程調(diào)用標(biāo)準(zhǔn)AAPCS/ATPCS 104
4.5 本章小結(jié) 105
4.6 練習(xí)題 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控制實(shí)驗(yàn) 112
5.3.1 實(shí)驗(yàn)?zāi)康摹?12
5.3.2 實(shí)驗(yàn)原理 112
5.3.3 實(shí)驗(yàn)內(nèi)容 113
5.3.4 實(shí)驗(yàn)代碼 113
5.3.5 實(shí)驗(yàn)現(xiàn)象 114
5.4 本章小結(jié) 114
5.5 練習(xí)題 114
第6章 ARM異常及中斷處理 115
6.1 ARM異常中斷處理概述 116
6.2 ARM體系異常種類 116
6.3 ARM異常的優(yōu)先級(jí) 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è)計(jì) 124
6.7 ARM中斷控制器簡(jiǎn)介 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中斷實(shí)驗(yàn) 135
6.11.1 實(shí)驗(yàn)?zāi)康摹?35
6.11.2 實(shí)驗(yàn)原理 135
6.11.3 實(shí)驗(yàn)內(nèi)容 136
6.11.4 實(shí)驗(yàn)代碼 137
6.11.5 實(shí)驗(yàn)現(xiàn)象 140
6.12 本章小結(jié) 140
6.13 練習(xí)題 140
第7章 串行通信接口 141
7.1 串行通信概述 142
7.1.1 串行通信與并行通信概念 142
7.1.2 異步串行方式的特點(diǎn) 142
7.1.3 異步串行方式的數(shù)據(jù)格式 142
7.1.4 同步串行方式的特點(diǎn) 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 串口通信實(shí)驗(yàn) 151
7.3.1 實(shí)驗(yàn)?zāi)康摹?51
7.3.2 實(shí)驗(yàn)原理 151
7.3.3 實(shí)驗(yàn)內(nèi)容 152
7.3.4 實(shí)驗(yàn)代碼 152
7.3.5 實(shí)驗(yàn)現(xiàn)象 154
7.4 本章小結(jié) 155
7.5 練習(xí)題 155
第8章 PWM定時(shí)器 156
8.1 定時(shí)器和PWM簡(jiǎn)介 157
8.1.1 定時(shí)器概述 157
8.1.2 脈沖寬度調(diào)制(PWM)概述 157
8.2 Exynos4412-PWM定時(shí)器詳解 157
8.2.1 PWM定時(shí)器概述 157
8.2.2 PWM定時(shí)器寄存器詳解 158
8.2.3 PWM定時(shí)器雙緩沖功能 161
8.2.4 PWM定時(shí)器PWM信號(hào)輸出 162
8.3 PWM定時(shí)器實(shí)驗(yàn)—定時(shí)觸發(fā) 163
8.3.1 實(shí)驗(yàn)?zāi)康摹?63
8.3.2 實(shí)驗(yàn)原理 163
8.3.3 實(shí)驗(yàn)代碼 163
8.3.4 實(shí)驗(yàn)現(xiàn)象 165
8.4 PWM定時(shí)器實(shí)驗(yàn)—PWM輸出 166
8.4.1 實(shí)驗(yàn)?zāi)康摹?66
8.4.2 實(shí)驗(yàn)原理 166
8.4.3 實(shí)驗(yàn)代碼 166
8.4.4 實(shí)驗(yàn)現(xiàn)象 167
8.5 本章小結(jié) 167
8.6 練習(xí)題 167
第9章 看門狗定時(shí)器 168
9.1 看門狗簡(jiǎn)介 169
9.2 Exynos4412看門狗定時(shí)器詳解 169
9.2.1 看門狗定時(shí)器概述 169
9.2.2 看門狗定時(shí)器寄存器詳解 170
9.3 看門狗定時(shí)器實(shí)驗(yàn) 171
9.3.1 實(shí)驗(yàn)?zāi)康摹?71
9.3.2 實(shí)驗(yàn)原理 171
9.3.3 實(shí)驗(yàn)內(nèi)容 171
9.3.4 實(shí)驗(yàn)代碼 171
9.3.5 實(shí)驗(yàn)現(xiàn)象 172
9.4 本章小結(jié) 173
9.5 練習(xí)題 173
第10章 RTC定時(shí)器 174
10.1 RTC簡(jiǎn)介 175
10.2 Exynos4412-RTC定時(shí)器詳解 175
10.2.1 RTC定時(shí)器概述 175
10.2.2 RTC定時(shí)器寄存器詳解 175
10.2.3 BCD碼 177
10.3 實(shí)時(shí)時(shí)鐘RTC實(shí)驗(yàn) 177
10.3.1 實(shí)驗(yàn)?zāi)康摹?77
10.3.2 實(shí)驗(yàn)原理 177
10.3.3 實(shí)驗(yàn)內(nèi)容 178
10.3.4 實(shí)驗(yàn)代碼 178
10.3.5 實(shí)驗(yàn)現(xiàn)象 179
10.4 本章小結(jié) 180
10.5 練習(xí)題 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ù)指標(biāo) 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實(shí)驗(yàn) 188
11.3.1 實(shí)驗(yàn)?zāi)康摹?88
11.3.2 實(shí)驗(yàn)原理 188
11.3.3 實(shí)驗(yàn)內(nèi)容 188
11.3.4 實(shí)驗(yàn)代碼 189
11.3.5 實(shí)驗(yàn)現(xiàn)象 191
11.4 本章小結(jié) 191
11.5 練習(xí)題 192
第12章 I2C接口 193
12.1 I2C總線協(xié)議 194
12.1.1 I2C總線協(xié)議簡(jiǎn)介 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)/陀螺儀實(shí)驗(yàn) 201
12.3.1 實(shí)驗(yàn)?zāi)康摹?01
12.3.2 實(shí)驗(yàn)原理 201
12.3.3 實(shí)驗(yàn)內(nèi)容 202
12.3.4 實(shí)驗(yàn)代碼 203
12.3.5 實(shí)驗(yàn)現(xiàn)象 206
12.4 本章小結(jié) 207
12.5 練習(xí)題 207
第13章 SPI接口 208
13.1 SPI總線協(xié)議 209
13.1.1 協(xié)議簡(jiǎn)介 209
13.1.2 協(xié)議內(nèi)容 209
13.2 Exynos4412-SPI控制器詳解 212
13.2.1 SPI控制器簡(jiǎn)介 212
13.2.2 SPI控制器時(shí)鐘源控制 212
13.2.3 SPI控制器寄存器詳解 215
13.3 SPI/CAN總線實(shí)驗(yàn) 218
13.3.1 實(shí)驗(yàn)?zāi)康摹?18
13.3.2 實(shí)驗(yàn)原理 218
13.3.3 實(shí)驗(yàn)內(nèi)容 219
13.3.4 實(shí)驗(yàn)代碼 220
13.3.5 實(shí)驗(yàn)現(xiàn)象 223
13.4 本章小結(jié) 224
13.5 練習(xí)題 224
收起全部↑