《ARM處理器開發詳解》是2012年出版的圖書,作者是劉洪濤,鄒南。
基本介紹
- 作者:劉洪濤 / 鄒南
- ISBN:9787121177149
- 頁數:274
- 定價:49.00元
- 出版時間:2012-9
- 裝幀:平裝
- 副標題:ARM處理器開發詳解
內容介紹,作品目錄,
內容介紹
《高等院校嵌入式人才培養規劃教材·ARM處理器開發詳解:基於ARM Cortex-A8處理器的開發設計》內容簡介:作為一種32位高性能、低成本的嵌入式RISC微處理器,ARM目前已經成為套用最廣泛的嵌入式處理器。目前Cortex-A系列處理器已經占據了大部分中高端產品市場。《高等院校嵌入式人才培養規劃教材·ARM處理器開發詳解:基於ARM Cortex-A8處理器的開發設計》在全面介紹Cortex-A8處理器的體系結構、編程模型、指令系統及開發環境的同時,以基於Cortex-A8的套用處理器——S5PC100為核心,詳細介紹了系統的設計及相關接口技術。接口技術涵蓋了I/O、中斷、串口、存儲器、PWM、A/D、DMA、IIC、SPI、Camera、LCD等,並提供了大量的實驗例程。
作品目錄
第1章 嵌入式系統基礎知識 1
1.1 嵌入式系統概述 1
1.1.1 嵌入式系統簡介 1
1.1.2 嵌入式系統的特點 2
1.1.3 嵌入式系統的發展 3
1.2 嵌入式系統的組成 5
1.2.1 嵌入式系統硬體組成 5
1.2.2 嵌入式系統軟體組成 6
1.3 嵌入式作業系統舉例 6
1.3.1 商業版嵌入式作業系統 7
1.3.2 開源版嵌入式作業系統 7
1.4 嵌入式系統開發概述 8
1.5 學好微處理器在嵌入式學習中的重要性 14
1.6 本章小結 16
1.7 思考題 16
第2章 ARM技術概述 17
2.1 ARM體系結構的技術特徵及發展 17
2.1.1 ARM公司簡介 17
2.1.2 ARM技術特徵 18
2.1.3 ARM體系架構的發展 19
2.2 ARM微處理器簡介 20
2.2.1 ARM9 處理器系列 21
2.2.2 ARM9E 處理器系列 22
2.2.3 ARM11 處理器系列 22
2.2.4 SecurCore 處理器系列 23
2.2.5 StrongARM和Xscale 處理器系列 23
2.2.6 MPCore 處理器系列 23
2.2.7 Cortex處理器系列 24
2.2.8 最新ARM套用處理器發展現狀 26
2.3 ARM 微處理器結構 27
2.4 ARM 微處理器的套用選型 27
2.4.1 ARM晶片選擇的一般原則 28
2.4.2 選擇一款適合ARM教學的CPU 28
2.5 CORTEX-A8內部功能及特點 31
2.6 數據類型 32
2.6.1 ARM的基本數據類型 32
2.6.2 浮點數據類型 33
2.6.3 存儲器大/小端 33
2.7 CORTEX-A8核心工作模式 34
2.8 CORTEX-A8存儲系統 35
2.8.1 協處理器(CP15) 36
2.8.2 存儲管理單元(MMU) 37
2.8.3 高速緩衝存儲器(Cache) 37
2.9 流水線 37
2.9.1 流水線的概念與原理 37
2.9.2 流水線的分類 38
2.9.3 影響流水線性能的因素 40
2.10 暫存器組織 40
2.11 程式狀態暫存器 43
2.12 三星S5PC100處理器介紹 46
2.13 FS_S5PC100開發平台介紹 47
2.14 本章小結 49
2.15 練習題 50
第3章 ARM微處理器的指令系統 51
3.1 ARM處理器的定址方式 51
3.1.1 數據處理指令定址方式 51
3.1.2 記憶體訪問指令定址方式 53
3.2 ARM處理器的指令集 55
3.2.1 數據操作指令 55
3.2.2 乘法指令 62
3.2.3 Load/Store指令 65
3.2.4 跳轉指令 71
3.2.5 狀態操作指令 74
3.2.6 協處理器指令 76
3.2.7 異常產生指令 80
3.2.8 其他指令介紹 81
3.3 本章小結 83
3.4 思考題 83
第4章 ARM彙編語言程式設計 85
4.1 GNU ARM彙編器支持的偽操作 85
4.1.1 偽操作概述 85
4.1.2 數據定義(Data Definition)偽操作 85
4.1.3 彙編控制偽操作 87
4.1.4 雜項偽操作 89
4.2 ARM彙編器支持的偽指令 89
4.2.1 ADR偽指令 89
4.2.2 ADRL偽指令 90
4.2.3 LDR偽指令 91
4.3 GNU ARM 彙編語言的語句格式 92
4.4 ARM 彙編語言的程式結構 94
4.4.1 彙編語言的程式格式 94
4.4.2 彙編語言子程式調用 95
4.4.3 過程調用標準AAPCS 95
4.4.4 彙編語言程式設計舉例 97
4.5 彙編語言與C語言的混合編程 98
4.5.1 GNU ARM內聯彙編 98
4.5.2 混合編程調用舉例 100
4.6 本章小結 102
4.7 思考題 102
第5章 ARM開發及環境搭建 103
5.1 仿真器簡介 103
5.1.1 FS-JTAG仿真器介紹 103
5.1.2 ULINK介紹 104
5.2 開發環境搭建 105
5.3 ECLIPSE FOR ARM 使用 108
5.4 編譯工程 109
5.5 調試工程 110
5.5.1 配置FS-JTAG 調試工具 110
5.5.2 配置調試工具 111
5.6 本章小結 114
5.7 練習題 114
第6章 GPIO編程 115
6.1 GPIO功能介紹 115
6.2 S5PC100晶片的GPIO控制器詳解 115
6.2.1 特性 115
6.2.2 GPIO分組預覽 116
6.2.3 S5PC100的GPIO常用暫存器分類 116
6.2.4 GPIO功能描述 116
6.2.5 S5PC100 I/O接口常用暫存器詳解 117
6.2.6 GPIO數據暫存器 118
6.3 S5PC100 GPIO的套用 118
6.3.1 電路連線 119
6.3.2 暫存器設定 119
6.3.3 程式編寫 119
6.4 本章小結 120
6.5 練習題 120
第7章 ARM異常及中斷處理 121
7.1 ARM異常中斷處理概述 121
7.2 ARM體系異常種類 122
7.3 ARM異常的優先權 127
7.4 ARM處理器模式和異常 127
7.5 ARM異常回響和處理程式返回 128
7.5.1 中斷回響的概念 128
7.5.2 ARM異常回響流程 128
7.5.3 從異常處理程式中返回 129
7.6 ARM的SWI異常中斷處理程式設計 131
7.7 FIQ和IRQ中斷 133
7.7.1 中斷分支 133
7.7.2 S5PC100中斷機制分析 134
7.7.3 S5PC100中斷處理程式實例 138
7.8 本章小結 140
7.9 練習題 140
第8章 串列通信接口 141
8.1 串列通信概述 141
8.1.1 串列通信與並行通信概念 141
8.1.2 異步串列方式的特點 141
8.1.3 異步串列方式的數據格式 142
8.1.4 同步串列方式的特點 142
8.1.5 同步串列方式的數據格式 142
8.1.6 比特率、比特率因子與位周期 143
8.1.7 RS-232C串口規範 143
8.1.8 RS-232C接線方式 145
8.2 S5PC100異步串列通信 145
8.2.1 S5PC100串口控制器概述 145
8.2.2 UART暫存器詳解 147
8.3 接口電路與程式設計 150
8.3.1 電路連線 150
8.3.2 程式編寫 150
8.3.3 調試與運行結果 152
8.3.4 紅外收發程式 154
8.4 本章小結 157
8.5 練習題 157
第9章 存儲器接口 158
9.1 FLASH ROM介紹 158
9.2 NOR FLASH操作 160
9.2.1 AM29LV160D晶片介紹 160
9.2.2 AM29LV160D字編程操作 161
9.2.3 AM29LV160D扇區/塊擦除操作 162
9.2.4 AM29LV160D晶片擦除操作 163
9.2.5 AM29LV160D與S5PC100的接口電路 163
9.2.6 AM29LV160D存儲器的程式設計 164
9.3 NAND FLASH操作 166
9.3.1 晶片介紹 166
9.3.2 讀操作過程 167
9.3.3 擦除操作過程 168
9.3.4 寫操作過程 169
9.4 S5PC100中NAND Flash控制器的操作 170
9.4.1 S5PC100 NAND Flash控制器概述 170
9.4.2 S5PC100 NAND Flash控制器暫存器詳解 170
9.5 S5PC100 NAND Flash接口電路與程式設計 172
9.5.1 K9F2G080U和S5PC100的接口電路 172
9.5.2 S5PC100控制K9F2G080U的程式設計 173
9.6 本章小結 176
9.7 練習題 176
第10章 定時器與RTC 177
10.1 S5PC100 PWM定時器 177
10.1.1 PWM定時器概述 177
10.1.2 PWM定時器特點 178
10.1.3 PWM定時器的暫存器 179
10.1.4 PWM定時器操作示例 184
10.2 S5PC100看門狗定時器 185
10.2.1 S5PC100看門狗定時器概述 185
10.2.2 看門狗定時器暫存器 186
10.2.3 看門狗定時器程式編寫 187
10.3 RTC 190
10.3.1 RTC介紹 190
10.3.2 RTC控制器 190
10.3.3 RTC控制器暫存器詳解 191
10.3.4 RTC測試例子 192
10.4 本章小結 193
10.5 練習題 193
第11章 A/D轉換器 194
11.1 A/D轉換器原理 194
11.1.1 A/D轉換基礎 194
11.1.2 A/D轉換的技術指標 195
11.1.3 A/D轉換器類型 196
11.1.4 A/D轉換的一般步驟 200
11.2 S5PC100 A/D轉換器 200
11.2.1 S5PC100 A/D轉換器概述 200
11.2.2 S5PC100 A/D控制器暫存器 201
11.3 A/D轉換器套用舉例 203
11.3.1 電路連線 203
11.3.2 程式編寫 203
11.3.3 調試與運行結果 204
11.4 本章小結 205
11.5 練習題 205
第12章 DMA(PL330)控制器 206
12.1 PL330原理概述 206
12.1.1 DMAC簡述 206
12.1.2 S5PC100下的DMAC模型 207
12.1.3 PL330簡述 208
12.2 PL330詳解 209
12.2.1 PL330指令集 209
12.2.2 相關暫存器詳解 215
12.3 S5PC100 PL330測試例子 217
12.4 本章小結 221
12.5 練習題 221
第13章 LCD接口設計 222
13.1 LCD控制器 222
13.1.1 LCD控制器介紹 222
13.1.2 S5PC100的 LCD控制器介紹 223
13.1.3 S5PC100的LCD控制器操作 224
13.1.4 LCD控制器暫存器 226
13.2 LCD控制器實例 231
13.3 本章小結 235
13.4 練習題 235
第14章 CAMIF接口技術 236
14.1 OV9650介紹 236
14.1.1 晶片功能描述 236
14.1.2 OV9650物理參數 237
14.1.3 OV9650暫存器詳解 238
14.2 SCCB匯流排 240
14.2.1 SCCB協定介紹 240
14.2.2 SCCB的匯流排編程 241
14.3 CAMIF接口詳解 242
14.3.1 基於S5PC100的CAMIF接口介紹 242
14.3.2 S5PC100 CAMIF暫存器詳解 244
14.3.3 CAMIF操作案例 247
14.4 本章小結 251
14.5 練習題 251
第15章 SPI接口 252
15.1 SPI匯流排協定理論 252
15.1.1 協定簡介 252
15.1.2 協定內容 252
15.2 SPI控制器詳解 254
15.2.1 S5PC100的SPI控制器簡介 254
15.2.2 時鐘源控制 255
15.2.3 暫存器詳解 255
15.3 SPI開發例子 257
15.4 本章小結 264
15.5 練習題 264
第16章 I2C接口 265
16.1 I2C匯流排 265
16.1.1 I2C匯流排介紹 265
16.1.2 I2C匯流排術語 265
16.1.3 I2C匯流排位傳輸 266
16.1.4 I2C匯流排數據傳輸 266
16.1.5 I2C匯流排定址方式 267
16.1.6 快速和高速模式 268
16.2 I2C匯流排控制器 269
16.2.1 S5PC100下的I2C控制器介紹 269
16.2.2 I2C匯流排控制暫存器詳解 269
16.3 I2C匯流排的實際套用 270
16.3.1 套用分析 270
16.3.2 代碼實現 272
16.4 本章小結 274
16.5 練習題 274
參考文獻 275
1.1 嵌入式系統概述 1
1.1.1 嵌入式系統簡介 1
1.1.2 嵌入式系統的特點 2
1.1.3 嵌入式系統的發展 3
1.2 嵌入式系統的組成 5
1.2.1 嵌入式系統硬體組成 5
1.2.2 嵌入式系統軟體組成 6
1.3 嵌入式作業系統舉例 6
1.3.1 商業版嵌入式作業系統 7
1.3.2 開源版嵌入式作業系統 7
1.4 嵌入式系統開發概述 8
1.5 學好微處理器在嵌入式學習中的重要性 14
1.6 本章小結 16
1.7 思考題 16
第2章 ARM技術概述 17
2.1 ARM體系結構的技術特徵及發展 17
2.1.1 ARM公司簡介 17
2.1.2 ARM技術特徵 18
2.1.3 ARM體系架構的發展 19
2.2 ARM微處理器簡介 20
2.2.1 ARM9 處理器系列 21
2.2.2 ARM9E 處理器系列 22
2.2.3 ARM11 處理器系列 22
2.2.4 SecurCore 處理器系列 23
2.2.5 StrongARM和Xscale 處理器系列 23
2.2.6 MPCore 處理器系列 23
2.2.7 Cortex處理器系列 24
2.2.8 最新ARM套用處理器發展現狀 26
2.3 ARM 微處理器結構 27
2.4 ARM 微處理器的套用選型 27
2.4.1 ARM晶片選擇的一般原則 28
2.4.2 選擇一款適合ARM教學的CPU 28
2.5 CORTEX-A8內部功能及特點 31
2.6 數據類型 32
2.6.1 ARM的基本數據類型 32
2.6.2 浮點數據類型 33
2.6.3 存儲器大/小端 33
2.7 CORTEX-A8核心工作模式 34
2.8 CORTEX-A8存儲系統 35
2.8.1 協處理器(CP15) 36
2.8.2 存儲管理單元(MMU) 37
2.8.3 高速緩衝存儲器(Cache) 37
2.9 流水線 37
2.9.1 流水線的概念與原理 37
2.9.2 流水線的分類 38
2.9.3 影響流水線性能的因素 40
2.10 暫存器組織 40
2.11 程式狀態暫存器 43
2.12 三星S5PC100處理器介紹 46
2.13 FS_S5PC100開發平台介紹 47
2.14 本章小結 49
2.15 練習題 50
第3章 ARM微處理器的指令系統 51
3.1 ARM處理器的定址方式 51
3.1.1 數據處理指令定址方式 51
3.1.2 記憶體訪問指令定址方式 53
3.2 ARM處理器的指令集 55
3.2.1 數據操作指令 55
3.2.2 乘法指令 62
3.2.3 Load/Store指令 65
3.2.4 跳轉指令 71
3.2.5 狀態操作指令 74
3.2.6 協處理器指令 76
3.2.7 異常產生指令 80
3.2.8 其他指令介紹 81
3.3 本章小結 83
3.4 思考題 83
第4章 ARM彙編語言程式設計 85
4.1 GNU ARM彙編器支持的偽操作 85
4.1.1 偽操作概述 85
4.1.2 數據定義(Data Definition)偽操作 85
4.1.3 彙編控制偽操作 87
4.1.4 雜項偽操作 89
4.2 ARM彙編器支持的偽指令 89
4.2.1 ADR偽指令 89
4.2.2 ADRL偽指令 90
4.2.3 LDR偽指令 91
4.3 GNU ARM 彙編語言的語句格式 92
4.4 ARM 彙編語言的程式結構 94
4.4.1 彙編語言的程式格式 94
4.4.2 彙編語言子程式調用 95
4.4.3 過程調用標準AAPCS 95
4.4.4 彙編語言程式設計舉例 97
4.5 彙編語言與C語言的混合編程 98
4.5.1 GNU ARM內聯彙編 98
4.5.2 混合編程調用舉例 100
4.6 本章小結 102
4.7 思考題 102
第5章 ARM開發及環境搭建 103
5.1 仿真器簡介 103
5.1.1 FS-JTAG仿真器介紹 103
5.1.2 ULINK介紹 104
5.2 開發環境搭建 105
5.3 ECLIPSE FOR ARM 使用 108
5.4 編譯工程 109
5.5 調試工程 110
5.5.1 配置FS-JTAG 調試工具 110
5.5.2 配置調試工具 111
5.6 本章小結 114
5.7 練習題 114
第6章 GPIO編程 115
6.1 GPIO功能介紹 115
6.2 S5PC100晶片的GPIO控制器詳解 115
6.2.1 特性 115
6.2.2 GPIO分組預覽 116
6.2.3 S5PC100的GPIO常用暫存器分類 116
6.2.4 GPIO功能描述 116
6.2.5 S5PC100 I/O接口常用暫存器詳解 117
6.2.6 GPIO數據暫存器 118
6.3 S5PC100 GPIO的套用 118
6.3.1 電路連線 119
6.3.2 暫存器設定 119
6.3.3 程式編寫 119
6.4 本章小結 120
6.5 練習題 120
第7章 ARM異常及中斷處理 121
7.1 ARM異常中斷處理概述 121
7.2 ARM體系異常種類 122
7.3 ARM異常的優先權 127
7.4 ARM處理器模式和異常 127
7.5 ARM異常回響和處理程式返回 128
7.5.1 中斷回響的概念 128
7.5.2 ARM異常回響流程 128
7.5.3 從異常處理程式中返回 129
7.6 ARM的SWI異常中斷處理程式設計 131
7.7 FIQ和IRQ中斷 133
7.7.1 中斷分支 133
7.7.2 S5PC100中斷機制分析 134
7.7.3 S5PC100中斷處理程式實例 138
7.8 本章小結 140
7.9 練習題 140
第8章 串列通信接口 141
8.1 串列通信概述 141
8.1.1 串列通信與並行通信概念 141
8.1.2 異步串列方式的特點 141
8.1.3 異步串列方式的數據格式 142
8.1.4 同步串列方式的特點 142
8.1.5 同步串列方式的數據格式 142
8.1.6 比特率、比特率因子與位周期 143
8.1.7 RS-232C串口規範 143
8.1.8 RS-232C接線方式 145
8.2 S5PC100異步串列通信 145
8.2.1 S5PC100串口控制器概述 145
8.2.2 UART暫存器詳解 147
8.3 接口電路與程式設計 150
8.3.1 電路連線 150
8.3.2 程式編寫 150
8.3.3 調試與運行結果 152
8.3.4 紅外收發程式 154
8.4 本章小結 157
8.5 練習題 157
第9章 存儲器接口 158
9.1 FLASH ROM介紹 158
9.2 NOR FLASH操作 160
9.2.1 AM29LV160D晶片介紹 160
9.2.2 AM29LV160D字編程操作 161
9.2.3 AM29LV160D扇區/塊擦除操作 162
9.2.4 AM29LV160D晶片擦除操作 163
9.2.5 AM29LV160D與S5PC100的接口電路 163
9.2.6 AM29LV160D存儲器的程式設計 164
9.3 NAND FLASH操作 166
9.3.1 晶片介紹 166
9.3.2 讀操作過程 167
9.3.3 擦除操作過程 168
9.3.4 寫操作過程 169
9.4 S5PC100中NAND Flash控制器的操作 170
9.4.1 S5PC100 NAND Flash控制器概述 170
9.4.2 S5PC100 NAND Flash控制器暫存器詳解 170
9.5 S5PC100 NAND Flash接口電路與程式設計 172
9.5.1 K9F2G080U和S5PC100的接口電路 172
9.5.2 S5PC100控制K9F2G080U的程式設計 173
9.6 本章小結 176
9.7 練習題 176
第10章 定時器與RTC 177
10.1 S5PC100 PWM定時器 177
10.1.1 PWM定時器概述 177
10.1.2 PWM定時器特點 178
10.1.3 PWM定時器的暫存器 179
10.1.4 PWM定時器操作示例 184
10.2 S5PC100看門狗定時器 185
10.2.1 S5PC100看門狗定時器概述 185
10.2.2 看門狗定時器暫存器 186
10.2.3 看門狗定時器程式編寫 187
10.3 RTC 190
10.3.1 RTC介紹 190
10.3.2 RTC控制器 190
10.3.3 RTC控制器暫存器詳解 191
10.3.4 RTC測試例子 192
10.4 本章小結 193
10.5 練習題 193
第11章 A/D轉換器 194
11.1 A/D轉換器原理 194
11.1.1 A/D轉換基礎 194
11.1.2 A/D轉換的技術指標 195
11.1.3 A/D轉換器類型 196
11.1.4 A/D轉換的一般步驟 200
11.2 S5PC100 A/D轉換器 200
11.2.1 S5PC100 A/D轉換器概述 200
11.2.2 S5PC100 A/D控制器暫存器 201
11.3 A/D轉換器套用舉例 203
11.3.1 電路連線 203
11.3.2 程式編寫 203
11.3.3 調試與運行結果 204
11.4 本章小結 205
11.5 練習題 205
第12章 DMA(PL330)控制器 206
12.1 PL330原理概述 206
12.1.1 DMAC簡述 206
12.1.2 S5PC100下的DMAC模型 207
12.1.3 PL330簡述 208
12.2 PL330詳解 209
12.2.1 PL330指令集 209
12.2.2 相關暫存器詳解 215
12.3 S5PC100 PL330測試例子 217
12.4 本章小結 221
12.5 練習題 221
第13章 LCD接口設計 222
13.1 LCD控制器 222
13.1.1 LCD控制器介紹 222
13.1.2 S5PC100的 LCD控制器介紹 223
13.1.3 S5PC100的LCD控制器操作 224
13.1.4 LCD控制器暫存器 226
13.2 LCD控制器實例 231
13.3 本章小結 235
13.4 練習題 235
第14章 CAMIF接口技術 236
14.1 OV9650介紹 236
14.1.1 晶片功能描述 236
14.1.2 OV9650物理參數 237
14.1.3 OV9650暫存器詳解 238
14.2 SCCB匯流排 240
14.2.1 SCCB協定介紹 240
14.2.2 SCCB的匯流排編程 241
14.3 CAMIF接口詳解 242
14.3.1 基於S5PC100的CAMIF接口介紹 242
14.3.2 S5PC100 CAMIF暫存器詳解 244
14.3.3 CAMIF操作案例 247
14.4 本章小結 251
14.5 練習題 251
第15章 SPI接口 252
15.1 SPI匯流排協定理論 252
15.1.1 協定簡介 252
15.1.2 協定內容 252
15.2 SPI控制器詳解 254
15.2.1 S5PC100的SPI控制器簡介 254
15.2.2 時鐘源控制 255
15.2.3 暫存器詳解 255
15.3 SPI開發例子 257
15.4 本章小結 264
15.5 練習題 264
第16章 I2C接口 265
16.1 I2C匯流排 265
16.1.1 I2C匯流排介紹 265
16.1.2 I2C匯流排術語 265
16.1.3 I2C匯流排位傳輸 266
16.1.4 I2C匯流排數據傳輸 266
16.1.5 I2C匯流排定址方式 267
16.1.6 快速和高速模式 268
16.2 I2C匯流排控制器 269
16.2.1 S5PC100下的I2C控制器介紹 269
16.2.2 I2C匯流排控制暫存器詳解 269
16.3 I2C匯流排的實際套用 270
16.3.1 套用分析 270
16.3.2 代碼實現 272
16.4 本章小結 274
16.5 練習題 274
參考文獻 275