內容簡介
ARM處理器是一種低功耗、高性能的32位RISC處理器。《ARM體系結構與程式設計》分兩條主線闡述了ARM的編程:一條主線是基於uC/OS-II作業系統的ARM編程;另一條主線是基於Linux作業系統的ARM編程。《ARM體系結構與程式設計》深入淺出,既可作為高等職業院校相關課程的教材,也可作為相關技術人員的技術參考書。
目錄
第1章 ARM技術概述
1.1 ARM體系結構的發展及技術特徵
1.1.1 ARM體系結構的發展
1.1.2 ARM微處理器的套用領域
1.2 ARM微處理器簡介
1.2.1 ARM微處理器
1.2.2 ARM微處理器系列
1.3 ARM微處理器結構
1.3.1 RISC體系結構
1.3.2 ARM微處理器的暫存器結構
1.3.3 ARM微處理器的指令結構
1.4 ARM微處理器的套用選型
練習題
第2章 ARM920T核心的編程模型
2.1 ARM920T的內部功能及特點
2.2 ARM920T核心編程模型
2.3 ARM體系結構的存儲器格式
2.4 處理器模式
2.5 暫存器組織
2.5.1 ARM狀態下的暫存器組織
2.5.2 Thumb狀態下的暫存器組織
2.6 程式狀態暫存器
2.7 異常(Exceptions)
練習題
第3章 ARM微處理器的指令系統
3.1 ARM指令的定址方式
3.1.1 立即定址
3.1.2 暫存器定址
3.1.3 暫存器偏移定址
3.1.4 暫存器間接定址
3.1.5 基址變址定址
3.1.6 多暫存器定址
3.1.7 相對定址
3.1.8 堆疊定址
3.1.9 塊複製定址
3.2 ARM指令集
3.2.1 ARM微處理器指令的分類與格式
3.2.2 指令的條件域
3.2.3 ARM指令詳解
3.3 Thumb指令及套用
練習題
第4章 ARM彙編語言程式設計
4.1 ADS編譯環境下的ARM的偽操作和宏指令
4.1.1 符號定義(SymbolDefinition)偽指令
4.1.2 數據定義(DataDefinition)偽指令
4.1.3 彙編控制(AssemblyControl)偽指令
4.1.4 其他常用的偽指令
4.2 GNU編譯環境下的ARM偽操作與宏指令
4.3 ARM彙編語言偽指令
4.4 彙編語言的語句格式
4.4.1 彙編語言程式中常用的符號
4.4.2 彙編語言程式中的表達式和運算符
4.5 彙編語言的程式結構
4.5.1 彙編語言的程式結構
4.5.2 彙編語言的子程式調用
4.5.3 彙編語言程式示例
練習題
第5章 嵌入式C語言程式設計基礎
5.1 嵌入式C語言的預處理偽指令
5.2 嵌入式C語言的基本數據類型
5.2.1 數據類型與表達式
5.2.2 常量
5.2.3 變數
5.2.4 運算符
5.3 程式的控制結構
5.3.1 選擇結構
5.3.2 switch語句
5.3.3 循環結構
5.3.4 其他控制語句
5.4 函式
5.5 數組
5.6 指針
5.7 構造數據類型
5.8 彙編語言與C/C++的混合編程
5.8.1 內嵌彙編指令
5.8.2 在彙編程式中訪問C程式變數
5.8.3 彙編程式與C/C++程式的相互調用規則——ARPCS
5.8.4 彙編程式與C/C++程式的相互調用
5.9 嵌入式Linux下C語言編程——一檔案的操作
5.9.1 檔案的創建和讀寫
5.9.2 移動檔案的讀寫位置
5.9.3 檔案的各個屬性
5.9.4 目錄檔案的操作
練習題
第6章 ARMADS集成開發環境
6.1 ADS1.2 的安裝
6.1.1 ADS概述
6.1.2 ADS1.2 的安裝
6.2 ADS集成開發環境的使用
6.2.1 建立一個新下程
6.2.2 配置生成目標
6.2.3 編譯和連結工程
6.3 用AXD進行代碼凋試
練習題
第7章 ARM異常中斷處理及編程
7.1 ARM異常中斷處理概述
7.2 ARM體系異常中斷
7.2.1 ARM體系異常中斷種類
7.2.2 異常中斷向量表及異常中斷優先權
7.2.3 支持中斷跳轉的解析程式
7.3 ARM套用系統中異常中斷處理程式的安裝
7.3.1 在系統復位時安裝異常中斷處理程式
7.3.2 在C程式中安裝異常中斷處理程式
7.4 ARM的SWI異常中斷處理程式設計
7.4.1 SWI異常中斷處理程式的實現
7.4.2 SWI異常中斷調用
7.5 FIQ和IRQ異常中斷程式設計
7.5.1 IRQ和FIQ異常中斷處理程式
7.5.2 多中斷源的IRQ異常中斷處理程式
7.6 基於ARM9晶片S3C2410異常中斷程式設計
7.6.1 異常中斷回響和返回
7.6.2 異常處理程式設計
7.6.3 外中斷初始化程式設計
練習題
第8章 基於μC/OS-II作業系統的ARM編程
8.1 μC/OS-II的核心
8.1.1 μC/OS-II核心調度特點
8.1.2 任務控制塊OS_TCB描述
8.1.3 就緒表(ReadyList)
8.1.4 任務狀態
8.1.5 任務調度分析
8.1.6 μC/OS-II的初始化
8.2 μC/OS-II核心的API函式
8.2.1 任務類
8.2.2 訊息類
8.2.3 同步信號量類
8.2.4 時間類
8.2.5 記憶體操作類
8.2.6 互斥信號量管理類
8.3 μC/OS-II應用程式的基本結構
8.4 μC/OS-II在S3C2410X上的移植
8.4.1 移植原理
8.4.2 移植實現
8.5 基於μC/OS-II作業系統的開發案例
8.5.1 繪圖API函式的套用
8.5.2 系統的訊息循環
8.5.3 檔案的使用
8.5.4 列表控制項的使用
8.5.5 文本框控制項的使用
練習題
第9章 基於ARM9和Linux嵌入式系統設計
9.1 嵌入式Linux的開發環境
9.1.1 嵌入式Linux開發環境建立
9.1.2 嵌入式Linux開發的一般過程
9.2 Linux開發工具的使用
9.2.1 Linux開發工具GNUgcc的使用
9.2.2 gdb調試器簡介
9.3 GNUmake命令和Makefile檔案
9.3.1 Makefile檔案的規則
9.3.2 Makefile檔案中隱含規則
9.3.3 Makefile檔案的命令
9.3.4 Makefile檔案中的變數
9.3.5 Makefile檔案的條件判斷
9.3.6 Makefile檔案中的常用函式
9.3.7 子目錄Makefile
9.4 嵌入式Linux引導程式
9.4.1 BootLoader引導程式
9.4.2 VIVI簡介
9.5 嵌入式Linux下程式調試套用舉例
9.5.1 Linux宿主機下的應用程式調試
9.5.2 目標機下的應用程式調試
練習題
附錄AS3C2410X引腳及信號定義
參考文獻