目錄
第1章 ARM概述及其基本編程模型 1
1.1 ARM技術簡介及其特點 1
1.2 ARM體系結構的版本及命名方法 1
1.3 ARM處理器的結構 6
1.4 ARM處理器模式 7
1.5 ARM的兩種工作狀態 8
1.6 ARM暫存器 9
1.7 ARM體系的異常中斷 11
1.8 ARM體系中存儲系統 12
1.9 ARM接口技術 14
1.10 小結 14
習題 14
第2章 ARM指令系統 15
2.1 ARM指令介紹 15
2.2 ARM指令定址方式 17
2.3 ARM指令集 20
2.4 Thumb指令介紹 34
2.5 小結 37
習題 37
第3章 ARM彙編語言程式設計 39
3.1 ARM彙編語言語句格式 39
3.2 ARM彙編語言偽操作 39
3.3 ARM彙編語言偽指令 50
3.4 ARM彙編語言中的符號 52
3.5 ARM彙編語言中的表達式 53
3.6 ARM彙編語言程式結構 56
3.7 彙編語言子程式調用 59
3.8 本章實訓 64
3.9 小結 67
習題 68
第4章 ARM存儲系統 69
4.1 ARM存儲系統概述 69
4.2 ARM中用於存儲管理的系統控制協處理器CP15 70
4.3 存儲器管理單元(MMU) 74
4.4 高速緩衝存儲器和寫緩衝區 82
4.5 快速上下文切換技術 89
4.6 與存儲系統相關的程式設計指南 89
4.7 小結 91
習題 91
第5章 異常中斷處理 92
5.1 ARM中異常中斷處理概述 92
5.2 進入和退出異常中斷的過程 94
5.3 在應用程式中安裝異常中斷處理程式 95
5.4 SWI異常中斷處理程式 98
5.5 FIQ和IRQ異常中斷處理程式 99
5.6 復位異常中斷處理程式 101
5.7 未定義指令異常中斷 101
5.8 指令預取中止異常中斷處理程式 102
5.9 數據訪問中止異常中斷處理程式 102
5.10 本章實訓 102
5.11 小結 111
習題 111
第6章 嵌入式C/C++語言程式設計基礎及混合編程 113
6.1 嵌入式C/C++語言程式設計基本語法介紹 113
6.2 嵌入式C/C++語言程式設計技巧 118
6.3 C/C++與彙編語言混合編程 121
6.4 本章實訓 127
6.5 小結 140
習題 140
第7章 ARM程式和Thumb程式混合使用 142
7.1 概述 142
7.2 在彙編語言程式中通過用戶代碼支持interwork 143
7.3 在C/C++程式中實現interwork 147
7.4 在彙編語言程式中通過連線器支持interwork 149
7.5 本章實訓 151
7.6 小結 154
習題 154
第8章 ARM C/C++編譯器 156
8.1 ARM C/C++編譯器概述 156
8.2 ARM編譯器命令行格式 157
8.3 ARM編譯器中的pragmas 167
8.4 ARM編譯器特定的關鍵字 167
8.5 ARM編譯器支持的基本數據類型 170
8.6 ARM編譯器中預定義宏 171
8.7 ARM中C/C++運行時庫概述 172
8.8 小結 174
習題 174
第9章 ARM連線器 175
9.1 ARM映像檔案 175
9.2 ARM連線器介紹 176
9.3 ARM連線器生成的符號 176
9.4 連線器的最佳化功能 178
9.5 運行時庫的使用 178
9.6 從一個映像檔案中使用另一個映像檔案中的符號 180
9.7 隱藏或者重命名全局符號 182
9.8 ARM連線器命令行選項 183
9.9 使用scatter檔案定義映像檔案的地址映射 188
9.10 小結 191
習題 191
第10章 ARM接口技術 192
10.1 鍵盤、顯示接口 192
10.2 串口 194
10.3 D/A、A/D轉換 195
10.4 匯流排接口 200
10.5 RTC實時時鐘 204
10.6 其他接口 205
10.7 小結 207
習題 207
第11章 ARM體系中的調試方法 208
11.1 ARM體系中調試系統概述 208
11.2 基於JTAG的調試系統 209
11.3 基於RVD的調試系統 210
11.4 CodeWarrior使用介紹 216