<內容簡介>
本書從軟體設計的角度,全面、而有系統的介紹ARM處理器基本族系架構和軟體設計與最佳化方法。內容包括:ARM處理器基礎;ARM/Thumb指令集;C與組合語言程式的設計與最佳化;基本運算、操作的最佳化;基於ARM的DSP;異常與中斷處理;韌體與嵌入式OS;Cache與記憶體管理;ARMv6架構的特點等。全書內容完整,針對各種不同的ARM核心架構都有詳盡論述,並有大量的範例和原始程式碼。附錄部分提供了完整的ARMv4/v5/Thumb指令的功能、編碼、時序週期,以及組合語言參考。本書適合私立大學、科大資工、電子系四年級之「嵌入式系統」課程使用。
<本書特色>
1.本書從軟體設計的角度,全面、有系統地介紹ARM處理器基本族系架構和軟體設計與最佳化方法。
2.書中將ARM處理器系統概念,用不同角度搭配範例,讓讀者可以清楚且通盤了解此系統的架構。
<章節目錄>
目 錄
第1章 ARM為基礎的嵌入式系統
1.1 RISC設計理念 1-1
1.2 ARM設計理念 1-3
1.3 嵌入式系統的硬體 1-4
1.4 嵌入式系統的軟體 1-10
1.5 總 結 1-13
第2章 ARM處理器基礎
2.1 暫存器 2-3
2.2 目前程式狀態暫存器 2-4
2.3 管 線 2-11
2.4 異常、中斷及向量表 2-14
2.5 核心擴充 2-15
2.6 體系結構的不同版本 2-18
2.7 ARM處理器系列 2-21
2.8 總 結 2-25
第3章 ARM指令集
3.1 資料處理指令 3-3
3.2 分支指令 3-12
3.3 Load-Store指令 3-14
3.4 軟體中斷指令 3-26
3.5 程式狀態暫存器指令 3-27
3.6 常數的載入 3-30
3.7 ARMv5E擴展 3-32
3.8 條件執行 3-35
3.9 總 結 3-36
第4章 Thumb指令集
4.1 Thumb暫存器的使用 4-4
4.2 ARM-Thumb交互 4-4
4.3 其他分支指令 4-6
4.4 資料處理指令 4-7
4.5 單暫存器Load-Store指令 4-10
4.6 多暫存器Load-Store指令 4-11
4.7 堆疊指令 4-12
4.8 軟體中斷指令 4-13
4.9 總 結 4-14
第5章 高效率的C程式設計
5.1 C編譯器及其最佳化概述 5-1
5.2基本的C資料類型 5-3
5.3 C迴圈結構 5-12
5.4 暫存器分配 5-19
5.5 函數呼叫 5-21
5.6 指標別名 5-26
5.7 結構體安排 5-29
5.8 位元區域 5-32
5.9 邊界不對齊資料和位元組排列方式(大/小結尾) 5-35
5.10 除法 5-40
5.11 浮點運算 5-49
5.12 內建函數和內嵌組合語言 5-49
5.13 移植問題 5-53
5.14 總 結 5-55
第6章 ARM組合語言與最佳化
6.1 設計組合語言程式碼 6-2
6.2 性能分析和週期計數 6-7
6.3 指令調整 6-8
6.4 暫存器分配 6-15
6.5 條件執行 6-25
6.6 迴圈結構 6-28
6.7 位操作 6-36
6.8 高效率的switch 6-42
6.9 邊界不對齊資料的處理 6-46
6.10 總 結 6-50
第7章 基本運算最佳化
7.1 雙精度整數乘法 7-2
7.2 整數正規化和前導0計數 7-6
7.3 除法 7-11
7.4 平方根 7-34
7.5 超越函數:LOG、EXP、SIN、COS 7-38
7.6 位元組順序反轉和位元操作 7-45
7.7 飽和及捨入運算 7-49
7.8 亂數產生 7-51
7.9 總 結 7-52
第8章 數位信號處理
8.1 表示一個數位信號 8-2
8.2 基於ARM的DSP介紹 8-11