出版時間:2003-2-1 出版社:清華大學(xué)出版社 作者:杜春雷 頁數(shù):496
Tag標(biāo)簽:無
內(nèi)容概要
ARM處理器是一種16/32位的高性能、低成本、低功耗的嵌入式RISC微處理器,由ARM公司設(shè)計,然后授權(quán)給各半導(dǎo)體廠商生產(chǎn),它目前已經(jīng)成為應(yīng)用最為廣泛的嵌入式處理器。本書分14章對ARM處理器的體系結(jié)構(gòu)、指令系統(tǒng)和開發(fā)工具作了比較全面的介紹。其中包括ARM體系介紹、ARM程序設(shè)計模型、ARM匯編語言程序設(shè)計、ARM C/C++語言程序設(shè)計、ARM連接器的使用、ARM集成開發(fā)環(huán)境CodeWarrior IDE的介紹及高性能的調(diào)試工具ADW的使用。并在此基礎(chǔ)之上介紹一些典型的基于ARM體系的嵌入式應(yīng)用系統(tǒng)設(shè)計時的基本技術(shù)。通過閱讀本書可以使讀者掌握開發(fā)基于ARM的應(yīng)用系統(tǒng)的各方面的知識。本書既可作為學(xué)習(xí)ARM技術(shù)的培訓(xùn)材料,也可作為嵌入式系統(tǒng)開發(fā)人員的參考手冊。
書籍目錄
第1章 ARM概述及其基本編程模型 1. 1 ARM技術(shù)的應(yīng)用領(lǐng)域及其特點(diǎn) 1. 2 ARM體系結(jié)構(gòu)的版本及命名方法 1. 2. 1 ARM體系結(jié)構(gòu)的版本 1. 2. 2 ARM體系的變種 1. 2. 3 ARM/Thumb體系版本的命名格式 l. 3 ARM處理器系列 1. 3. 1 ARM7系列 1. 3. 2 ARM9系列 1. 3. 3 ARM9E系列 1. 3. 4 ARM1OE系列 1. 3. 5 SecurCore系列 l. 4 ARM處理器模式 1. 5 ARM寄存器介紹 1. 5. l 通用寄存器 1. 5. 3 程序狀態(tài)寄存器 1. 6 ARM體系的異常中斷 1. 6. 1 ARM中異常中斷種類 1. 6. 2 ARM處理器對異常中斷的響應(yīng)過程 1. 6. 3 從異常中斷處理程序中返回 1. 7 ARM體系中存儲系統(tǒng) 1. 7. 1 ARM體系中的存儲空間 1. 7. 2 ARM存儲器格式 1. 7. 3 非對齊的存儲訪問操作 1. 7. 4 指令預(yù)取和自修改代碼 第2章 ARM指令分類及其尋址方式 2. 1 ARM指令集概要介紹 2. 1. 1 ARM指令的分類 2. 1. 2 ARM指令的一般編碼格式 2. 1. 3 ARM指令的條件碼域 2. 2 ARM指令尋址方式 2. 2. l 數(shù)據(jù)處理指令的操作數(shù)的尋址方式 2. 2. 2 字及無符號字節(jié)的Load/Store指令的尋址方式 2. 2. 3 雜類Load/Store指令的尋址方式 2. 2. 4 批量Load/Store指令的尋址方式 2. 2. 5 協(xié)處理器Load/Store指令的尋址方式 第3章 ARM指令集介紹 3. 1 ARM指令集 3. 1. l 跳轉(zhuǎn)指令 3. l. 2 數(shù)據(jù)處理指令 3. 1. 3 乘法指令 3. 1. 4 雜類的算術(shù)指令 3. 1. 5 狀態(tài)寄存器訪問指令 3. l. 6 Load/Store內(nèi)存訪問指令 3. 1. 7 批量Load/Store內(nèi)存訪問指令 3. 1. 8 信號量操作指令 3. 1. 9 異常中斷產(chǎn)生指令 3. 1. 10 ARM協(xié)處理器指令 3. 2 一些基本的ARM指令功能段 3. 2. l 算術(shù)邏輯運(yùn)算指令的應(yīng)用 3. 2. 2 跳轉(zhuǎn)指令的應(yīng)用 3. 2. 3 Loacl/Store指令的應(yīng)用 3. 2. 4 批量Load/Store指令的應(yīng)用 3. 2. 5 信號量指令的應(yīng)用 3. 2. 6 與系統(tǒng)相關(guān)的一些指令代碼段 3. 3 Thumb指令介紹 第4章 ARM匯編語言程序設(shè)計 4. 1 偽操作 4. 1. l 符號定義偽操作 4. 1. 2 數(shù)據(jù)定義偽操作 4. 1. 3 匯編控制偽操作 4. 1. 4 棧中數(shù)據(jù)幀描述偽操作 4. 1. 5 信息報告?zhèn)尾僮? 4. 1. 6 其他的偽操作 4. 2 ARM匯編語言偽指令 4. 3 ARM匯編語言語句格式 4. 3. 1 ARM匯編語言中的符號 4. 3. 2 ARM匯編語言中的表達(dá)式 4. 4 ARM匯編語言程序格式. 4. 4. l 匯編語言程序格式 4. 4. 2 匯編語言子程序調(diào)用 4. 5 ARM匯編編譯器的使用 4. 6 匯編程序設(shè)計舉例 4. 6. 1 ARM中偽操作使用實例 4. 6. 2 ARM中匯編程序?qū)嵗? 第5章 ARM存儲系統(tǒng) 5. 1 ARM存儲系統(tǒng)概述 5. 2 ARM中用于存儲管理的系統(tǒng)控制協(xié)處理器CP15 5. 2. 1 訪問CP15寄存器的指令 5. 2. 2 CP15中的寄存器 5. 3 存儲器管理單元MMU 5. 3. l 存儲器管理單元MMU概述 5. 3. 2 禁止/使能MMU 5. 3. 3 MMU中地址變換過程 5. 3. 4 MMU中存儲訪問權(quán)限控制 5. 3. 5 MMU中的域 5. 3. 6 關(guān)于快表的操作 5. 3. 7 ARM中的存儲訪問失效 5. 4 高速緩沖存儲器和寫緩沖區(qū) 5. 4. 1 基本概念 5. 4. 2 cache的工作原理和地址映像方法 5. 4. 3 cache的分類 5. 4. 4 cache的替換算法 5. 4. 5 緩沖技術(shù)的使用注意事項 5. 4. 6 存儲系統(tǒng)的一致性問題 5. 4. 7 cache內(nèi)容鎖定 5. 4. 8 與cache和寫緩沖區(qū)相關(guān)的編程接口 5. 5 快速上下文切換技術(shù) 5. 5. l 快速上下文切換技術(shù)原理 5. 5. 2 快速上下文切換技術(shù)編程接口 5. 6 與存儲系統(tǒng)相關(guān)的程序設(shè)計指南 5. 6. l 地址空間 5. 6. 2 存儲器格式 5. 6. 3 非對齊的存儲訪問操作 5. 6. 4 指令預(yù)取和自修改代碼 5. 6. 5 IMB 5. 6. 6 存儲器映射的I/O空間 5. 7 AIOA存儲系統(tǒng)的實例 5. 7. 1 L7205的存儲系統(tǒng)概述 5. 7. 2 L7205中的SDRAM 5. 7. 3 L7205中的 MMU 第6章 ATPCS介紹 6. 1 ATPCS概述 6. 2 基本ATPCS 6. 2. l 寄存器的使用規(guī)則 6. 2. 2 數(shù)據(jù)棧使用規(guī)則 6. 2. 3 參數(shù)傳遞規(guī)則 6. 3 幾種特定的ATPCS 6. 3. l 支持?jǐn)?shù)據(jù)棧限制檢查的ATPCS 6. 3. 2 支持只讀段位置無關(guān)(ROPI)的ATPCS 6. 3. 3 支持可讀寫段位置無關(guān)(RWPI)的ATPCS 6. 3. 4 支持ARM程序和Thumb程序混合使用的ATPCS 6. 3. 5 處理浮點(diǎn)運(yùn)算的ATPCS 第7章 ARM程序和Thumb程序混合使用 7. 1 概述 7. 2 在匯編語言程序中通過用戶代碼支持interwork 7. 2. l 可以實現(xiàn)程序狀態(tài)切換的指令 7. 2. 2 與程序狀態(tài)切換相關(guān)的偽操作 7. 2. 3 進(jìn)行狀態(tài)切換的匯編程序?qū)嵗? 7. 3 在C/C++程序中實現(xiàn)interwork 7. 4 在匯編語言程序中通過連接器支持interwork 7. 4. l 利用veneers實現(xiàn)匯編程序間的程序狀態(tài)切換 7. 4. 2 利用veneers實現(xiàn)匯編程序與C/C++程序間的程序狀態(tài)切換 第8章 C\C++以及匯編語言的混合編程 8. l 內(nèi)嵌匯編器的使用 8. 1. l 內(nèi)嵌的匯編指令用法 8. 1. 2 內(nèi)嵌的匯編器和armasm的區(qū)別 8. l. 3 在C\C++程序中使用內(nèi)嵌的匯編指令 8. 1. 4 內(nèi)嵌匯編指令的應(yīng)用舉例 8. 2 從匯編程序中訪問C程序變量 8. 3 匯編程序.C程序以及C++程序的相互調(diào)用 8. 3. l 在C++程序中使用C程序頭文件 8. 3. 2 匯編程序.C程序以及C++程序的相互調(diào)用舉例 第9章 異常中斷處理 9. 1 ARM中異常中斷處理概述 9. 1. 1 ARM體系中異常中斷種類 9. 1. 2 異常中斷向量表及異常中斷優(yōu)先級 9. 1. 3 異常中斷使用的寄存器 9. 2 進(jìn)入和退出異常中斷的過程 9. 2. 1 ARM處理器對異常中斷的響應(yīng)過程 9. 2. 2 從異常中斷處理程序中返回 9. 3 在應(yīng)用程序中安裝異常中斷處理程序 9. 3. 1 在系統(tǒng)復(fù)位時安裝異常中斷處理程序 9. 3. 2 在C程序中安裝異常中斷處理程序 9. 4 SWI異常中斷處理程序 9. 4. 1 SWI異常中斷處理程序的實現(xiàn) 9. 4. 2 SWI異常中斷調(diào)用 9. 5 FIQ和IRQ異常中斷處理程序 9. 5. 1 IRQ/FIQ異常中斷處理程序 9. 5. 2 IRQ異常中斷處理程序舉例 9. 6 復(fù)位異常中斷處理程序 9. 7 未定義指令異常中斷 9. 8 指令預(yù)取中止異常中斷處理程序 9. 9 數(shù)據(jù)訪問中止異常中斷處理程序 第10章 ARM C/0++編譯器 10. 1 ARM C/C++編譯器概述 10. 1. 1 ARM C/C++編譯器及語言庫介紹 10. l. 2 ARM編譯器中與搜索路徑相關(guān)的一些基本概念 10. 2 ARM編譯器命令行格式 10. 2. l 過程調(diào)用標(biāo)準(zhǔn) 10. 2. 2 設(shè)置源程序語言類型 10. 2. 3 指定搜索路徑 10. 2. 4 設(shè)置預(yù)處理選項 10. 2. 5 設(shè)置輸出文件類型 10. 2. 6 指定目標(biāo)處理器和ARM體系版本 10. 2. 7 生成調(diào)試信息 10. 2. 8 代碼生成的控制 10. 2. 9 控制警告信息的產(chǎn)生 10. 2. 10 編譯時進(jìn)行的一些額外的檢查 10. 2. 11 控制錯誤信息 10. 3 ARM編譯器中的pragmas 10. 4 ARM編譯器特定的關(guān)鍵詞 10. 4. 1 用于聲明函數(shù)的關(guān)鍵詞 10. 4. 2 用于聲明交量的關(guān)鍵詞 10. 4. 3 用于限定數(shù)據(jù)類型的關(guān)鍵詞 10. 5 ARM編譯器支持的基本數(shù)據(jù)類型 10. 6 ARM編譯器中預(yù)定義宏 10. 7 ARM中C/C++庫 10. 7. 1 ARM中C/C++運(yùn)行時庫概述 10. 7. 2 建立一個包含C/C++運(yùn)行時庫的C/C++應(yīng)用程序 10. 7. 3 建立不包含C運(yùn)行時庫的應(yīng)用程序 10. 7. 4 裁減C/C++運(yùn)行時庫以適應(yīng)特定的目標(biāo)運(yùn)行環(huán)境 第11章 ARM連接器 11. 1 ARM映像文件 11. 1. 1 ARM映像文件的組成 11. 1. 2 ARM映像文件的入口點(diǎn) 11. 1. 3 輸入段的排序規(guī)則 11. 2 ARM連接器介紹 11. 3 ARM連接器生成的符號 11. 3. 1 連接器生成的與域相關(guān)的符號 11. 3. 2 連接器生成的與輸出段相關(guān)的符號 11. 3. 3 連接器生成的與輸入段相關(guān)的符號 11. 4 連接器的優(yōu)化功能 11. 5 運(yùn)行時庫的使用 11. 5. 1 C/C++運(yùn)行時庫與目標(biāo)文件 11. 5. 2 查找需要的C/C++運(yùn)行時庫 11. 5. 3 選擇合適種類的C/C++運(yùn)行時庫 11. 5. 4 掃描C/C++運(yùn)行時庫 11. 6 從一個映像文件中使用另一個映像文件中的符號 11. 6. 1 symdefs文件 11. 6. 2 建立symdefs文件 11. 6. 3 symdefs文件的使用 11. 7 隱藏或者重命名全局符號 11. 7. l steering文件的格式 11. 7. 2 steering文件中的命令 11. 8 ARM連接器命令行選項 11. 9 使用scatter文件定義映像文件的地址映射 11. 9. l scatter文件概述 11. 9. 2 satter文件中各部分介紹 11. 9. 3 scatter文件使用舉例 第12章 嵌入式應(yīng)用程序示例 12. l 嵌入式應(yīng)用程序設(shè)計的基本知識 12. 1. 1 嵌入式應(yīng)用系統(tǒng)中的存儲映射 12. 1. 2 系統(tǒng)初始化 12. 2 使用semihosting的 C語言程序示例 12. 2. 1 源程序分析 12. 2. 2 生成映像文件 12. 3 一個嵌入式應(yīng)用系統(tǒng)示例 12. 3. l 源程序分析 12. 3. 2 生成映像文件 12. 3. 3 本例中地址映射模式 12. 4 進(jìn)行ROM/RAM地址重映射的嵌入式應(yīng)用系統(tǒng) 12. 4. l 地址映射模式 12. 4. 2 源程序分析 12. 4. 3 生成映像文件 12. 5 一個嵌入式操作系統(tǒng)示例 第13章 使用CodeWarrior 13. 1 CodeWarrior for ADS概述 13. 2 簡單工程項目的使用 13. 2. 1 工程項目窗口 13. 2. 2 簡單工程項目的使用 13. 3 配置生成目標(biāo) 13. 3. 1 Debug Settings對話框介紹 13. 3. 2 設(shè)置牛成目標(biāo)的基本選項 13. 3. 3 匯編器選項設(shè)置 13. 3. 4 編譯器的選項設(shè)置 13. 3. 5 連接器的選項設(shè)置 13. 3. 6 fromELF工具的選項設(shè)置 13. 4 復(fù)雜工程項目的使用 13. 4. l 建立一個新的生成目標(biāo) 13. 4. 2 將一個生成目標(biāo)更名 13. 4. 3 建立生成目標(biāo)之間的依賴關(guān)系 13. 4. 4 子工程項目的使用 13. 5 工程項目模板 13. 5. 1 ADS中工程項目模板的使用 13. 5. 2 建立用戶工程項目模板 13. 6 編譯和連接工程項目 13. 6. 1 編譯文件 13. 6. 2 生成工程項目 第14章 ARM體系中的調(diào)試方法 14. 1 ARM體系中調(diào)試系統(tǒng)概述 14. 2 基于Angel的調(diào)試系統(tǒng) 14. 2. l 基于Angel的調(diào)試系統(tǒng)的概述 14. 2. 2 使用Angel開發(fā)應(yīng)用程序 14. 2. 3 Angel執(zhí)行的操作 14. 2. 4 將Angel移植到特定的目標(biāo)系統(tǒng) 14. 3 基于JTAG的調(diào)試系統(tǒng) 14. 3. l 基于JTAG的調(diào)試系統(tǒng)的特點(diǎn) 14. 3. 2 基于JTAG的調(diào)試系統(tǒng)結(jié)構(gòu) 14. 3. 3 目標(biāo)系統(tǒng)中的調(diào)試功能擴(kuò)展部件 14. 3. 4 基于JTAG的調(diào)試過程 14. 4 ADW使用介紹 14. 4. 1 ADW概述 14. 4. 2 ADW中的窗口 14. 4. 3 ADW使用介紹
圖書封面
圖書標(biāo)簽Tags
無
評論、評分、閱讀與下載