圖書內容
本書介紹了基於
ARM核的嵌入式微處理器系統的體系結構、組成原理、工程設計方法和核心設計技術。全書首先講述微處理器系統的組成、系統結構的基本概念和原理;然後從邏輯電路、IP核設計的層次,對微處理器的體系結構、指令系統設計的核心技術進行深入研討,揭示了微處理器系統中軟體指令和硬體電路之間的接口聯繫、工程設計方法與流程。
書中討論了基於ARM微處理器IP核的微處理器軟硬體系統的結構及組成,以提高讀者編寫與底層硬體互動的高效代碼的工程設計能力和素質,並著重探討了嵌入式作業系統的系統結構、作業系統移植、引導和載入等關鍵技術;書中還討論了嵌入式系統的軟硬體協同設計及基於ARM核的SoC設計技術。
圖書目錄
第1章 概述 (1)
1.1 計算機發展概述 (1)
1.1.1 電子計算機發展概述 (1)
1.1.2 普適計算與泛在通信 (3)
1.2 積體電路與SoC設計 (8)
1.2.1 積體電路技術的發展 (9)
1.2.2 基於IP的SoC設計 (10)
1.3 先進的處理器技術 (13)
1.3.1 片上多核處理器(CMP) (13)
1.3.2 流處理器(Stream
Processor) (15)
1.3.3 PIM(Processor In
Memory) (16)
1.3.4 可重構計算處理器 (17)
1.4 嵌入式系統 (19)
1.4.1 嵌入式系統的概念 (20)
1.4.2 嵌入式系統的特點 (21)
1.4.3 嵌入式系統中的處理器 (21)
1.4.4 嵌入式系統的組成 (24)
1.4.5 嵌入式系統的發展現狀
與趨勢 (25)
1.4.6 學習嵌入式系統的意義 (27)
參考文獻 (28)
習題 (28)
第2章 計算機系統的結構組成與工作
原理 (29)
2.1 計算機系統的基本結構
與組成 (29)
2.1.1 計算機系統的層次模型 (29)
2.1.2 計算機系統的結構、組織
與實現 (31)
2.2 計算機系統的工作原理 (32)
2.2.1 馮諾依曼計算機架構 (32)
2.2.2 模型機系統結構 (33)
2.2.3 模型機指令集 (36)
2.2.4 模型機工作流程 (37)
2.3 微處理器體系結構的改進 (38)
2.3.1 馮諾依曼結構的改進 (39)
2.3.2 並行技術的發展 (43)
2.3.3 流水線結構 (44)
2.3.4 超標量與超長指令字結構 (48)
2.3.5 多機與多核結構 (50)
2.4 計算機體系結構分類 (52)
2.5 計算機性能評測 (54)
2.5.1 字長 (54)
2.5.2 存儲容量 (54)
2.5.3 運算速度 (55)
參考文獻 (56)
習題 (56)
第3章 微處理器體系結構及關鍵
技術 (58)
3.1 微處理器體系結構及功能模組
簡介 (58)
3.1.1 處理器的主要功能及部件 (59)
3.1.2 處理器的基本功能結構 (60)
3.1.3 一個簡化的處理器模型結
構示例 (62)
3.2 處理器設計 (64)
3.2.1 處理器的設計步驟 (65)
3.2.2 控制器的操作與功能 (66)
3.2.3 隨機邏輯控制器設計 (67)
3.2.4 微程式(微碼)控制器結構
及設計 (70)
3.2.5 暫存器組設計 (73)
3.3 指令系統設計 (74)
3.3.1 機器指令的組成 (74)
3.3.2 指令格式 (76)
3.3.3 指令類型 (77)
3.3.4 定址方式 (78)
3.3.5 指令系統設計要點 (82)
3.4 指令流水線技術 (82)
3.4.1 流水線技術的特點 (83)
3.4.2 流水線操作的詳細說明 (84)
3.4.3 流水線的局限性 (85)
3.4.4 指令流水線設計 (87)
3.5 典型微處理體系結構簡介 (90)
3.5.1 ARM體系結構簡介 (90)
3.5.2 Intel x86體系結構簡介 (91)
參考文獻 (93)
習題 (94)
第4章 匯流排技術與匯流排標準 (95)
4.1 匯流排技術 (95)
4.1.1 匯流排技術概述 (95)
4.1.2 匯流排仲裁 (100)
4.1.3 匯流排操作與時序 (103)
4.2 匯流排標準 (107)
4.2.1 片內AMBA匯流排 (108)
4.2.2 PCI系統匯流排 (116)
4.2.3 異步串列通信匯流排 (127)
參考文獻 (133)
習題 (133)
第5章 存儲器系統 (135)
5.1 存儲器件的分類 (135)
5.1.1 按存儲介質分類 (135)
5.1.2 按讀寫策略分類 (138)
5.2 半導體存儲晶片的基本結構
與性能指標 (139)
5.2.1 隨機存取存儲器 (139)
5.2.2 唯讀存儲器 (146)
5.2.3 存儲器晶片的性能指標 (154)
5.3 存儲系統的層次結構 (156)
5.3.1 存儲系統的分層管理 (156)
5.3.2 虛擬存儲器與地址映射 (158)
5.3.3 現代計算機的多層次存儲
體系 (161)
5.4 主存儲器設計技術 (164)
5.4.1 存儲晶片選型 (165)
5.4.2 存儲晶片的組織形式 (165)
5.4.3 地址解碼技術 (169)
5.4.4 存儲器接口設計 (174)
參考文獻 (176)
習題 (176)
第6章 輸入/輸出接口 (179)
6.1 輸入/輸出接口基礎 (179)
6.1.1 輸入/輸出接口的功能
與結構 (179)
6.1.2 輸入/輸出連線埠編址 (182)
6.2 接口地址解碼 (184)
6.3 接口信息傳輸方式 (185)
6.3.1 程式查詢傳輸方式 (185)
6.3.2 程式中斷傳輸方式 (188)
6.3.3 直接存儲器訪問(DMA)
方式 (195)
6.3.4 通道方式 (198)
6.4 並行接口 (198)
6.4.1 無握手信號的並行接口 (199)
6.4.2 帶握手信號的並行接口 (203)
6.4.3 可程式並行接口 (205)
6.5 串列接口 (209)
6.5.1 同步串列接口 (209)
6.5.2 異步串列接口 (212)
參考文獻 (214)
習題 (214)
第7章 ARM微處理器編程模型 (216)
7.1 ARM核心體系結構 (216)
7.1.1 ARM體系結構版本 (216)
7.1.2 ARM核心簡介 (220)
7.2 ARM編程模型 (225)
7.2.1 處理器工作狀態 (225)
7.2.2 處理器運行模式 (226)
7.2.3 暫存器組織 (226)
7.2.4 數據類型和存儲格式 (230)
7.2.5 異常 (231)
參考文獻 (235)
習題 (235)
第8章 ARM彙編指令 (236)
8.1 ARM指令格式 (236)
8.1.1 ARM指令的一般編碼
格式 (236)
8.1.2 ARM指令的條件域 (237)
8.1.3 指令的第二源運算元 (238)
8.2 ARM定址方式 (240)
8.2.1 立即定址 (240)
8.2.2 暫存器直接定址 (240)
8.2.3 暫存器移位定址 (240)
8.2.4 暫存器間接定址 (241)
8.2.5 基址變址定址 (241)
8.2.6 多暫存器直接定址 (243)
8.2.7 相對定址 (243)
8.2.8 堆疊定址 (243)
8.3 ARM指令集 (244)
8.3.1 數據處理指令 (244)
8.3.2 轉移指令 (254)
8.3.3 程式狀態暫存器訪問
指令 (256)
8.3.4 載入/存儲指令 (258)
8.3.5 異常產生指令 (265)
8.3.6 偽指令 (266)
參考文獻 (268)
習題 (268)
第9章 ARM程式設計 (269)
9.1 ARM程式開發環境 (269)
9.1.1 常用ARM程式開發環境
簡介 (269)
9.1.2 RVDS開發環境簡介 (272)
9.2 彙編語言偽指令 (273)
9.2.1 符號定義偽指令 (273)
9.2.2 數據定義偽指令 (274)
9.2.3 彙編控制偽指令 (275)
9.2.4 其他常用偽指令 (279)
9.2.5 彙編語言中常用的符號 (282)
9.2.6 常用運算符和表達式 (283)
9.3 ARM彙編語言程式設計 (285)
9.3.1 ARM彙編語言程式結構 (285)
9.3.2 ARM彙編程式設計實例 (286)
9.4 ARM彙編語言與C/C++的
混合編程 (295)
9.4.1 C語言與彙編語言之間的
函式調用 (295)
9.4.2 C/C++語言和彙編語言的
混合編程 (300)
參考文獻 (304)
習題 (304)
第10章 基於ARM微處理器的硬體
系統設計 (307)
10.1 基於ARM微處理器的系統
設計概述 (307)
10.2 S3C2440A微處理器 (307)
10.2.1 S3C2440A微處理器
簡介 (307)
10.2.2 S3C2440A內部結構及
主要特性 (308)
10.2.3 S3C2440A外部引腳 (311)
10.3 ARM微處理器最小硬體
系統 (311)
10.3.1 電源模組 (312)
10.3.2 時鐘模組 (313)
10.3.3 復位模組 (313)
10.3.4 JTAG調試接口模組 (315)
10.3.5 外部存儲器模組 (315)
10.4 人機互動接口 (318)
10.4.1 鍵盤與LED接口 (318)
10.4.2 LCD顯示接口 (320)
10.4.3 觸控螢幕接口 (323)
10.5 通信接口 (327)
10.5.1 串列通信接口 (327)
10.5.2 其他通信接口 (332)
參考文獻 (333)
習題 (334)
第11章 基於ARM微處理器的軟體
系統設計 (335)
11.1 嵌入式軟體系統結構及工作
流程 (335)
11.1.1 嵌入式軟體系統結構 (335)
11.1.2 嵌入式軟體系統工作
流程 (336)
11.2 嵌入式軟體系統的引導
和載入 (337)
11.2.1 Bootloader程式的基本
概念 (338)
11.2.2 U-Boot的分析與移植 (339)
11.3 嵌入式Linux核心的移植 (341)
11.3.1 Linux核心的結構 (344)
11.3.2 核心的配置與裁減 (345)
11.3.3 核心的編譯 (347)
11.3.4 Linux核心配置編譯
實例 (348)
11.4 Linux下驅動程式設計
示例 (350)
參考文獻 (354)
習題 (354)
第12章 基於ARM微處理器核的
SoC設計 (355)
12.1 概述 (355)
12.2 SoC設計 (356)
12.2.1 SoC的典型結構 (357)
12.2.2 SoC設計中的關鍵技術 (358)
12.3 SoC的片上匯流排 (361)
12.3.1 片上匯流排的特點 (361)
12.3.2 SoC中常用的匯流排標準 (362)
12.4 SoC系統的設計流程 (365)
12.4.1 SoC系統晶片的系統級
設計 (366)
12.4.2 系統晶片的設計流程 (367)
12.5 基於ARM核心的SoC系統
設計 (368)
12.5.1 常用ARM CPU核心所使
用的匯流排接口 (368)
12.5.2 基於ARM的SoC結構 (369)
12.5.3 基於ARM核心的SoC系
統套用設計舉例 (376)
參考文獻 (380)
習題 (380)
附錄A ASCII碼錶 (381)
附錄B ARM實驗系統簡介 (382)
附錄C AT91SAM9263引腳排列及
信號名稱表 (384)
附錄D S3C2440A引腳排列及信號
名稱表 (386)
附錄E MX21引腳排列及信號
名稱表 (388)
附錄F ARM指令速查表及符號
含義 (389)
附錄G Linux常用命令表 (399)