注冊(cè) | 登錄讀書好,好讀書,讀好書!
讀書網(wǎng)-DuShu.com
當(dāng)前位置: 首頁(yè)出版圖書科學(xué)技術(shù)計(jì)算機(jī)/網(wǎng)絡(luò)計(jì)算機(jī)組織與體系結(jié)構(gòu)ARM嵌入式系統(tǒng)開發(fā):軟件設(shè)計(jì)與優(yōu)化

ARM嵌入式系統(tǒng)開發(fā):軟件設(shè)計(jì)與優(yōu)化

ARM嵌入式系統(tǒng)開發(fā):軟件設(shè)計(jì)與優(yōu)化

定 價(jià):¥75.00

作 者: (美)Andrew N.Sloss等著;沈建華譯;沈建華譯
出版社: 北京航空航天大學(xué)出版社
叢編項(xiàng):
標(biāo) 簽: 嵌入式計(jì)算機(jī)

ISBN: 9787810776523 出版時(shí)間: 2005-05-01 包裝: 平裝
開本: 23cm 頁(yè)數(shù): 646 字?jǐn)?shù):  

內(nèi)容簡(jiǎn)介

  【內(nèi)容提要】本書從軟件設(shè)計(jì)的角度,全面、系統(tǒng)地介紹了ARM處理器的基本體系結(jié)構(gòu)和軟件設(shè)計(jì)與優(yōu)化方法。內(nèi)容包括:ARM處理器基礎(chǔ);ARM/Thumb指令集;C語(yǔ)言與匯編語(yǔ)言程序的設(shè)計(jì)與優(yōu)化;基本運(yùn)算、操作的優(yōu)化;基于ARM的DSP;異常與中斷處理;固件與嵌入式OS;cache與存儲(chǔ)器管理;ARMv6體系結(jié)構(gòu)的特點(diǎn)等。全書內(nèi)容完整,針對(duì)各種不同的ARM內(nèi)核系統(tǒng)結(jié)構(gòu)都有詳盡論述,并有大量的例子和源代碼。附錄給出了完整的ARMv4/v5/Thumb指令的功能、編碼、周期定時(shí)以及匯編參考。本書適于從事ARM嵌入式系統(tǒng)教學(xué)與研發(fā),或想把其它嵌入式平臺(tái)的軟件移植到ARM平臺(tái)上去的專業(yè)技術(shù)人員使用,要求對(duì)ARM處理器有一定的了解,并有C語(yǔ)言和匯編語(yǔ)言基礎(chǔ)。若在編譯原理、操作系統(tǒng)、數(shù)字信號(hào)處理、計(jì)算機(jī)體系結(jié)構(gòu)等方面有一定的基礎(chǔ),則效果會(huì)更好。本書也可作為嵌入式系統(tǒng)專業(yè)方向的本科生和研究生相關(guān)課程的教材或教學(xué)參考書。【作者簡(jiǎn)介】Andrew N.Sloss于1992年獲得Herefordshire大學(xué)(英國(guó))計(jì)算機(jī)科學(xué)學(xué)士學(xué)位,英國(guó)計(jì)算機(jī)協(xié)會(huì)認(rèn)證注冊(cè)工程師(C.Eng,MBCS)。他已在計(jì)算機(jī)行業(yè)工作了16年,從1987年開始參與有關(guān)ARM處理器的研發(fā),在ARM處理器上開發(fā)了眾多領(lǐng)域的應(yīng)用項(xiàng)目,積累了豐富的經(jīng)驗(yàn)。他為Emerald出版集團(tuán)(英國(guó))設(shè)計(jì)了首個(gè)能夠在ARM2和ARM3處理器上運(yùn)行的針對(duì)中文和埃及象形文字的編輯系統(tǒng)。他在ARM公司工作了6個(gè)多,目前是ARM在美國(guó)加州Los Gatos的技術(shù)銷售工程師,負(fù)責(zé)為開發(fā)新產(chǎn)品的公司提供建議和支持?!灸夸洝康?章 基于ARM的嵌入式系統(tǒng)1.1 RISC設(shè)計(jì)思想1.2 ARM設(shè)計(jì)思想1.3 嵌入式系統(tǒng)的硬件1.3.1 ARM總線技術(shù)1.3.2 AMBA總線協(xié)議1.3.3 存儲(chǔ)器1.3.4 外設(shè)1.4 嵌入式系統(tǒng)的軟件1.4.1 初始化(啟動(dòng))代碼1.4.2 操作系統(tǒng)1.4.3 應(yīng)用程序1.5 總結(jié)第2章 ARM處理器基礎(chǔ)2.1 寄存器2.2 當(dāng)前程序狀態(tài)寄存器2.2.1 處理器模式2.2.2 分組寄存器2.2.3 狀態(tài)和指令集2.2.4 中斷屏蔽2.2.5 條件標(biāo)志2.2.6 條件執(zhí)行2.3 流水線2.4 異常、中斷及向量表2.5 內(nèi)核擴(kuò)展2.5.1 cache和緊耦合存儲(chǔ)器2.5.2 存儲(chǔ)管理2.5.3 協(xié)處理器2.6 體系結(jié)構(gòu)的不同版本2.6.1 命名規(guī)則2.6.2 體系結(jié)構(gòu)的發(fā)展2.7 ARM處理器系列2.7.1 ARM7系列2.7.2 ARM9系列2.7.3 ARM10系列2.7.4 ARM11系列2.7.5 專用處理器2.8 總結(jié)第3章 ARM指令集3.1 數(shù)據(jù)處理指令3.1.1 MOVE指令3.1.2 桶形移位器3.1.3 算術(shù)指令3.1.4 算術(shù)指令使用桶形移位器3.1.5 邏輯指令3.1.6 比較指令3.1.7 乘法指令3.2 分支指令3.3 loadstore指令3.3.1 單寄存器傳送指令3.3.2 單寄存器loadstore指令的尋址方式3.3.3 多寄存器傳送指令3.3.4 交換指令3.4 軟件中斷指令3.5 程序狀態(tài)寄存器指令3.5.1 協(xié)處理器指令3.5.2 協(xié)處理器15(CP15)指令語(yǔ)法3.6 常量的裝載3.7 ARMv5E擴(kuò)展3.7.1 零計(jì)數(shù)指令3.7.2 飽和算術(shù)指令3.7.3 ARMv5E乘法指令3.8 條件執(zhí)行3.9 總結(jié)第4章 Thumb指令集4.1 Thumb寄存器的使用4.2 ARM-Thumb交互4.3 其它分支指令4.4 數(shù)據(jù)處理指令4.5 單寄存器load-store指令4.6 多寄存器load-store指令4.7 堆棧指令4.8 軟件中斷指令4.9 總結(jié)第5章 高效的C編程5.1 C編譯器及其優(yōu)化概述5.2 基本的C數(shù)據(jù)類型5.2.1 局部變量類型5.2.2 函數(shù)參數(shù)類型5.2.3 有符號(hào)數(shù)與無(wú)符號(hào)數(shù)5.3 C循環(huán)結(jié)構(gòu)5.3.1 固定次數(shù)的循環(huán)5.3.2 不定次數(shù)的循環(huán)5.3.3 循環(huán)展開5.4 寄存器分配5.5 函數(shù)調(diào)用5.6 指針別名5.7 結(jié)構(gòu)體安排5.8 位域5.9 邊界不對(duì)齊數(shù)據(jù)和字節(jié)排列方式(大/小端)5.10 除法5.10.1 帶余數(shù)的無(wú)符號(hào)重復(fù)除法5.10.2 把除轉(zhuǎn)換為乘5.10.3 除數(shù)是常數(shù)的無(wú)符號(hào)除法5.10.4 除數(shù)是常數(shù)的有符號(hào)除法5.11 浮點(diǎn)運(yùn)算5.12 內(nèi)聯(lián)函數(shù)和內(nèi)嵌匯編5.13 移植問(wèn)題5.14 總結(jié)第6章 ARM匯編與優(yōu)化6.1 編寫匯編代碼6.2 性能分析和周期計(jì)數(shù)6.3 指令調(diào)整6.4 寄存器分配6.4.1 分配變量給寄存器6.4.2 使用超過(guò)14個(gè)的局部變量6.4.3 最大限度地使用寄存器6.5 條件執(zhí)行6.6 循環(huán)結(jié)構(gòu)6.6.1 減計(jì)數(shù)循環(huán)6.6.2 展開計(jì)數(shù)循環(huán)6.6.3 多層嵌套循環(huán)6.6.4 其它計(jì)數(shù)循環(huán)6.7 位操作6.7.1 固定寬度的位域打包和解包6.7.2 可變寬度編碼的位流打包6.7.3 可變寬度編碼的位流解包6.8 高效的switch6.8.1 在范圍0≤x 6.8.2 基于通用變量x的switch6.9 邊界不對(duì)齊數(shù)據(jù)的處理6.10 總結(jié)第7章 基本運(yùn)算優(yōu)化7.1 雙精度整數(shù)乘法7.1.1 長(zhǎng)整型乘法7.1.2 128位結(jié)果的無(wú)符號(hào)64位乘法7.1.3 128位結(jié)果的有符號(hào)64位整數(shù)乘法7.2 整數(shù)規(guī)格化和前導(dǎo)0計(jì)數(shù)7.2.1 ARMv5及以上體系結(jié)構(gòu)的整數(shù)規(guī)格化7.2.2 在ARMv4體系結(jié)構(gòu)上的規(guī)格化7.2.3 后綴0計(jì)數(shù)7.3 除法7.3.1 通過(guò)試探減法實(shí)現(xiàn)無(wú)符號(hào)數(shù)除法7.3.2 無(wú)符號(hào)整數(shù)的NewtonRaphson除法7.3.3 無(wú)符號(hào)小數(shù)NewtonRaphson除法7.3.4 有符號(hào)數(shù)除法7.4 平方根7.4.1 通過(guò)試探減法計(jì)算平方根7.4.2 使用NewtonRaphson迭代計(jì)算平方根7.5 超越函數(shù):log,exp,sin,cos7.5.1 以2為底的對(duì)數(shù)運(yùn)算7.5.2 2的乘冪7.5.3 三角函數(shù)7.6 字節(jié)順序反轉(zhuǎn)和位操作7.6.1 字節(jié)順序反轉(zhuǎn)7.6.2 位變換7.6.3‘1’位計(jì)數(shù)7.7 飽和及舍入運(yùn)算7.7.1 飽和32位數(shù)到16位7.7.2 飽和左移7.7.3 舍入右移7.7.4 飽和的32位加減法7.7.5 飽和絕對(duì)值7.8 隨機(jī)數(shù)產(chǎn)生7.9 總結(jié)第8章 數(shù)字信號(hào)處理8.1 表示一個(gè)數(shù)字信號(hào)8.1.1 選擇一種表示方法8.1.2 操作以定點(diǎn)格式存儲(chǔ)的值8.1.3 定點(diǎn)信號(hào)的加法和減法8.1.4 定點(diǎn)信號(hào)的乘法8.1.5 定點(diǎn)信號(hào)的除法8.1.6 定點(diǎn)信號(hào)的平方根8.1.7 小結(jié):數(shù)字信號(hào)的表示8.2 基于ARM的DSP介紹8.2.1 ARM7TDMI的DSP8.2.2 ARM9TDMI的DSP8.2.3 StrongARM的DSP8.2.4 ARM9E的DSP8.2.5 ARM10E的DSP8.2.6 Intel Xscale的DSP8.3 FIR濾波器8.4 IIR濾波8.5 離散傅里葉變換8.6 總結(jié)第9章 異常和中斷處理9.1 異常處理9.1.1 ARM處理器模式及異常9.1.2 向量表9.1.3 異常優(yōu)先級(jí)9.1.4 鏈接寄存器偏移9.2 中斷9.2.1 分配中斷9.2.2 中斷延遲9.2.3 IRQ與FIQ異常9.2.4 基本的中斷堆棧設(shè)計(jì)與實(shí)現(xiàn)9.3 中斷處理方法9.3.1 非嵌套中斷處理9.3.2 嵌套中斷處理9.3.3 可重入中斷處理9.3.4 優(yōu)先級(jí)簡(jiǎn)單中斷處理9.3.5 優(yōu)先級(jí)標(biāo)準(zhǔn)中斷處理9.3.6 優(yōu)先級(jí)直接中斷處理9.3.7 優(yōu)先級(jí)分組中斷處理9.3.8 基于VIC PL190的中斷服務(wù)例程9.4 總結(jié)第10章 固件10.1 固件和引導(dǎo)裝載程序10.1.1 ARM Firmware Suite10.1.2 Red Hat Redboot10.2 例子:Sandstone10.2.1 Sandstone的目錄結(jié)構(gòu)10.2.2 Sandstone的代碼結(jié)構(gòu)10.3 總結(jié)第11章 嵌入式操作系統(tǒng)11.1 基本模塊11.2 實(shí)例:簡(jiǎn)單小型操作系統(tǒng)SLOS11.2.1 SLOS目錄結(jié)構(gòu)11.2.2 初始化11.2.3 存儲(chǔ)模型11.2.4 中斷和異常處理11.2.5 調(diào)度程序11.2.6 上下文切換11.2.7 設(shè)備驅(qū)動(dòng)程序框架11.3 總結(jié)第12章 高速緩沖存儲(chǔ)器cache12.1 存儲(chǔ)層次和cache12.2 cache結(jié)構(gòu)12.2.1 cache存儲(chǔ)器的基本結(jié)構(gòu)12.2.2 cache控制器的基本操作12.2.3 cache與主存的關(guān)系12.2.4 組相聯(lián)12.2.5 寫緩沖器12.2.6 cache效率的衡量12.3 cache策略12.3.1 寫策略——直寫法或回寫法12.3.2 cache行替換策略12.3.3 cache失效時(shí)的分配策略12.4 協(xié)處理器15與cache12.5 清除和清理cache12.5.1 清除cache12.5.2 清理cache12.5.3 清理Dcache12.5.4 使用路和組索引尋址清理D-cache12.5.5 使用test-clean命令清理D-cache12.5.6 在Intel XScale SA110和Intel StrongARM內(nèi)核中清理D-cache12.5.7 清理和清除部分cache12.6 cache鎖定12.6.1 在cache中鎖定代碼和數(shù)據(jù)12.6.2 通過(guò)增加路索引來(lái)鎖定cache12.6.3 使用鎖定位鎖定cache12.6.4 在Intel XScale SA110中鎖定cache行12.7 cache與軟件性能12.8 總結(jié)第13章 存儲(chǔ)器保護(hù)單元MPU13.1 受保護(hù)的區(qū)域13.1.1 重疊區(qū)域13.1.2 背景區(qū)域13.2 初始化MPU,cache和寫緩沖器13.2.1 定義區(qū)域的大小和位置13.2.2 訪問(wèn)權(quán)限13.2.3 設(shè)置區(qū)域的cache和寫緩沖器屬性13.2.4 使能區(qū)域和MPU13.3 MPU系統(tǒng)示例13.3.1 系統(tǒng)需求13.3.2 使用存儲(chǔ)器映射分配區(qū)域13.3.3 初始化MPU13.3.4 初始化和配置區(qū)域13.3.5 完成初始化MPU13.3.6 受保護(hù)系統(tǒng)的上下文切換13.3.7 mpuSLOS13.4 總結(jié)第14章 存儲(chǔ)管理單元14.1 從MPU到MMU14.2 虛存如何工作14.2.1 使用頁(yè)定義區(qū)域14.2.2 多任務(wù)和MMU14.2.3 虛存系統(tǒng)的存儲(chǔ)器組織14.3 ARM MMU的詳情14.4 頁(yè)表14.4.1 一級(jí)頁(yè)表項(xiàng)14.4.2 L1轉(zhuǎn)換表基地址14.4.3 二級(jí)頁(yè)表項(xiàng)14.4.4 為嵌入式系統(tǒng)選擇合適的頁(yè)大小14.5 轉(zhuǎn)換旁路緩沖器14.5.1 單步頁(yè)表搜索14.5.2 2步頁(yè)表搜索14.5.3 TLB操作14.5.4 TLB鎖定14.6 域和存儲(chǔ)器訪問(wèn)權(quán)限14.7 cache和寫緩沖器14.8 協(xié)處理器CP15和MMU配置14.9 快速上下文切換擴(kuò)展14.9.1 FCSE如何使用頁(yè)表和域14.9.2 使用FCSE的提示14.10 示例:一個(gè)簡(jiǎn)單的虛擬存儲(chǔ)系統(tǒng)14.10.1 第1步:定義固定的系統(tǒng)軟件區(qū)域14.10.2 第2步:為每個(gè)任務(wù)定義虛存映射14.10.3 第3步:在物理存儲(chǔ)器中定位區(qū)域14.10.4 第4步:定義和定位頁(yè)表14.10.5 第5步:定義頁(yè)表和區(qū)域數(shù)據(jù)結(jié)構(gòu)14.10.6 第6步:初始化MMU、Cache和寫緩沖器14.10.7 第7步:建立上下文切換程序14.11 MMUSLOS示例14.12 總結(jié)第15章 ARM體系結(jié)構(gòu)的發(fā)展15.1 ARMv6對(duì)高級(jí)DSP和SIMD的支持15.1.1 SIMD算法操作15.1.2 打包指令15.1.3 復(fù)數(shù)運(yùn)算支持15.1.4 飽和指令15.1.5 絕對(duì)差值求和指令15.1.6 雙16位乘法指令15.1.7 高位字乘法15.1.8 密碼算法乘法擴(kuò)展15.2 ARMv6增加的系統(tǒng)和多處理器支持15.2.1 混合大小端支持15.2.2 異常處理15.2.3 多處理同步原語(yǔ)(Multiprocessing Synchronization Primitives)15.3 ARMv6的實(shí)現(xiàn)15.4 ARMv6之后的未來(lái)技術(shù)15.4.1 TrustZone15.4.2 Thumb-215.5 總結(jié)附錄A ARM和Thumb匯編指令A(yù).1 如何使用這篇附錄A.2 語(yǔ)法A.2.1 可選表達(dá)式A.2.2 寄存器A.2.3 立即數(shù) A.2.4 條件和標(biāo)志A.2.5 移位操作A.3 按字母順序列出ARM和Thumb指令A(yù).4 ARM匯編速查A.4.1 ARM匯編變量A.4.2 ARM匯編標(biāo)注A.4.3 ARM匯編表達(dá)式A.4.4 ARM匯編保留字A.5 GNU匯編快速查詢附錄 BARM和Thumb指令編碼B.1 ARM指令集編碼B.2 Thumb指令集編碼B.3 程序狀態(tài)寄存器附錄C 處理器與體系結(jié)構(gòu)C.1 ARM命名規(guī)則C.2 內(nèi)核與體系結(jié)構(gòu)附錄D 指令周期定時(shí)D.1指令周期定時(shí)表的使用D.2 ARM7TDMI指令周期定時(shí)D.3 ARM9TDMI指令周期定時(shí)D.4 StrongARM1 指令周期定時(shí)D.5 ARM9E指令周期定時(shí)D.6 ARM10E指令周期定時(shí)D.7 Intel XScale指令周期定時(shí)D.8 ARM11指令周期定時(shí)附錄E 建議的參考讀物E.1 ARM參考E.2 算法參考E.3 存儲(chǔ)器管理與cache體系結(jié)構(gòu)(硬件綜述與參考)E.4 操作系統(tǒng)參考

作者簡(jiǎn)介

  Andrew N.Sloss于1992年獲得Herefordshire大學(xué)(英國(guó))計(jì)算機(jī)科學(xué)學(xué)士學(xué)位,英國(guó)計(jì)算機(jī)協(xié)會(huì)認(rèn)證注冊(cè)工程師(C.Eng,MBCS)。他已在計(jì)算機(jī)行業(yè)工作了16年,從1987年開始參與有關(guān)ARM處理器的研發(fā),在ARM處理器上開發(fā)了眾多領(lǐng)域的應(yīng)用項(xiàng)目,積累了豐富的經(jīng)驗(yàn)。他為Emerald出版集團(tuán)(英國(guó))設(shè)計(jì)了首個(gè)能夠在ARM2和ARM3處理器上運(yùn)行的針對(duì)中文和埃及象形文字的編輯系統(tǒng)。他在ARM公司工作了6個(gè)多,目前是ARM在美國(guó)加州Los Gatos的技術(shù)銷售工程師,負(fù)責(zé)為開發(fā)新產(chǎn)品的公司提供建議和支持。

圖書目錄

第1章 基于ARM的嵌入式系統(tǒng)
  1.1 RISC設(shè)計(jì)思想
  1.2 ARM設(shè)計(jì)思想
  1.3 嵌入式系統(tǒng)的硬件
    1.3.1 ARM總線技術(shù)
    1.3.2 AMBA總線協(xié)議
    1.3.3 存儲(chǔ)器
    1.3.4 外設(shè)
  1.4 嵌入式系統(tǒng)的軟件
    1.4.1 初始化(啟動(dòng))代碼
    1.4.2 操作系統(tǒng)
    1.4.3 應(yīng)用程序
  1.5 總結(jié)
第2章 ARM處理器基礎(chǔ)
  2.1 寄存器
  2.2 當(dāng)前程序狀態(tài)寄存器
    2.2.1 處理器模式
    2.2.2 分組寄存器
    2.2.3 狀態(tài)和指令集
    2.2.4 中斷屏蔽
    2.2.5 條件標(biāo)志
    2.2.6 條件執(zhí)行
  2.3 流水線
  2.4 異常、中斷及向量表
  2.5 內(nèi)核擴(kuò)展
    2.5.1 cache和緊耦合存儲(chǔ)器
    2.5.2 存儲(chǔ)管理
    2.5.3 協(xié)處理器
  2.6 體系結(jié)構(gòu)的不同版本
    2.6.1 命名規(guī)則
    2.6.2 體系結(jié)構(gòu)的發(fā)展
  2.7 ARM處理器系列
    2.7.1 ARM7系列
    2.7.2 ARM9系列
    2.7.3 ARM10系列
    2.7.4 ARM11系列
    2.7.5 專用處理器
  2.8 總結(jié)
第3章 ARM指令集
  3.1 數(shù)據(jù)處理指令
    3.1.1 MOVE指令
    3.1.2 桶形移位器
    3.1.3 算術(shù)指令
    3.1.4 算術(shù)指令使用桶形移位器
    3.1.5 邏輯指令
    3.1.6 比較指令
    3.1.7 乘法指令
  3.2 分支指令
  3.3 loadstore指令
    3.3.1 單寄存器傳送指令
    3.3.2 單寄存器loadstore指令的尋址方式
    3.3.3 多寄存器傳送指令
    3.3.4 交換指令
  3.4 軟件中斷指令
  3.5 程序狀態(tài)寄存器指令
    3.5.1 協(xié)處理器指令
    3.5.2 協(xié)處理器15(CP15)指令語(yǔ)法
  3.6 常量的裝載
  3.7 ARMv5E擴(kuò)展
    3.7.1 零計(jì)數(shù)指令
    3.7.2 飽和算術(shù)指令
    3.7.3 ARMv5E乘法指令
  3.8 條件執(zhí)行
  3.9 總結(jié)
第4章 Thumb指令集
  4.1 Thumb寄存器的使用
  4.2 ARM-Thumb交互
  4.3 其它分支指令
  4.4 數(shù)據(jù)處理指令
  4.5 單寄存器load-store指令
  4.6 多寄存器load-store指令
  4.7 堆棧指令
  4.8 軟件中斷指令
  4.9 總結(jié)
第5章 高效的C編程
  5.1 C編譯器及其優(yōu)化概述
  5.2 基本的C數(shù)據(jù)類型
    5.2.1 局部變量類型
    5.2.2 函數(shù)參數(shù)類型
    5.2.3 有符號(hào)數(shù)與無(wú)符號(hào)數(shù)
  5.3 C循環(huán)結(jié)構(gòu)
    5.3.1 固定次數(shù)的循環(huán)
    5.3.2 不定次數(shù)的循環(huán)
    5.3.3 循環(huán)展開
  5.4 寄存器分配
  5.5 函數(shù)調(diào)用
  5.6 指針別名
  5.7 結(jié)構(gòu)體安排
  5.8 位域
  5.9 邊界不對(duì)齊數(shù)據(jù)和字節(jié)排列方式(大/小端)
  5.10 除法
    5.10.1 帶余數(shù)的無(wú)符號(hào)重復(fù)除法
    5.10.2 把除轉(zhuǎn)換為乘
    5.10.3 除數(shù)是常數(shù)的無(wú)符號(hào)除法
    5.10.4 除數(shù)是常數(shù)的有符號(hào)除法
  5.11 浮點(diǎn)運(yùn)算
  5.12 內(nèi)聯(lián)函數(shù)和內(nèi)嵌匯編
  5.13 移植問(wèn)題
  5.14 總結(jié)
第6章 ARM匯編與優(yōu)化
  6.1 編寫匯編代碼
  6.2 性能分析和周期計(jì)數(shù)
  6.3 指令調(diào)整
  6.4 寄存器分配
    6.4.1 分配變量給寄存器
    6.4.2 使用超過(guò)14個(gè)的局部變量
    6.4.3 最大限度地使用寄存器
  6.5 條件執(zhí)行
  6.6 循環(huán)結(jié)構(gòu)
    6.6.1 減計(jì)數(shù)循環(huán)
    6.6.2 展開計(jì)數(shù)循環(huán)
    6.6.3 多層嵌套循環(huán)
    6.6.4 其它計(jì)數(shù)循環(huán)
  6.7 位操作
    6.7.1 固定寬度的位域打包和解包
    6.7.2 可變寬度編碼的位流打包
    6.7.3 可變寬度編碼的位流解包
  6.8 高效的switch
    6.8.1 在范圍0≤x    6.8.2 基于通用變量x的switch
  6.9 邊界不對(duì)齊數(shù)據(jù)的處理
  6.10 總結(jié)
第7章 基本運(yùn)算優(yōu)化
  7.1 雙精度整數(shù)乘法
    7.1.1 長(zhǎng)整型乘法
    7.1.2 128位結(jié)果的無(wú)符號(hào)64位乘法
    7.1.3 128位結(jié)果的有符號(hào)64位整數(shù)乘法
  7.2 整數(shù)規(guī)格化和前導(dǎo)0計(jì)數(shù)
    7.2.1 ARMv5及以上體系結(jié)構(gòu)的整數(shù)規(guī)格化
    7.2.2 在ARMv4體系結(jié)構(gòu)上的規(guī)格化
    7.2.3 后綴0計(jì)數(shù)
  7.3 除法
    7.3.1 通過(guò)試探減法實(shí)現(xiàn)無(wú)符號(hào)數(shù)除法
    7.3.2 無(wú)符號(hào)整數(shù)的NewtonRaphson除法
    7.3.3 無(wú)符號(hào)小數(shù)NewtonRaphson除法
    7.3.4 有符號(hào)數(shù)除法
  7.4 平方根
    7.4.1 通過(guò)試探減法計(jì)算平方根
    7.4.2 使用NewtonRaphson迭代計(jì)算平方根
  7.5 超越函數(shù):log,exp,sin,cos
    7.5.1 以2為底的對(duì)數(shù)運(yùn)算
    7.5.2 2的乘冪
    7.5.3 三角函數(shù)
  7.6 字節(jié)順序反轉(zhuǎn)和位操作
    7.6.1 字節(jié)順序反轉(zhuǎn)
    7.6.2 位變換
    7.6.3‘1’位計(jì)數(shù)
  7.7 飽和及舍入運(yùn)算
    7.7.1 飽和32位數(shù)到16位
    7.7.2 飽和左移
    7.7.3 舍入右移
    7.7.4 飽和的32位加減法
    7.7.5 飽和絕對(duì)值
  7.8 隨機(jī)數(shù)產(chǎn)生
  7.9 總結(jié)
第8章 數(shù)字信號(hào)處理
  8.1 表示一個(gè)數(shù)字信號(hào)
    8.1.1 選擇一種表示方法
    8.1.2 操作以定點(diǎn)格式存儲(chǔ)的值
    8.1.3 定點(diǎn)信號(hào)的加法和減法
    8.1.4 定點(diǎn)信號(hào)的乘法
    8.1.5 定點(diǎn)信號(hào)的除法
    8.1.6 定點(diǎn)信號(hào)的平方根
    8.1.7 小結(jié):數(shù)字信號(hào)的表示
  8.2 基于ARM的DSP介紹
    8.2.1 ARM7TDMI的DSP
    8.2.2 ARM9TDMI的DSP
    8.2.3 StrongARM的DSP
    8.2.4 ARM9E的DSP
    8.2.5 ARM10E的DSP
    8.2.6 Intel Xscale的DSP
  8.3 FIR濾波器
  8.4 IIR濾波
  8.5 離散傅里葉變換
  8.6 總結(jié)
第9章 異常和中斷處理
  9.1 異常處理
    9.1.1 ARM處理器模式及異常
    9.1.2 向量表
    9.1.3 異常優(yōu)先級(jí)
    9.1.4 鏈接寄存器偏移
  9.2 中斷
    9.2.1 分配中斷
    9.2.2 中斷延遲
    9.2.3 IRQ與FIQ異常
    9.2.4 基本的中斷堆棧設(shè)計(jì)與實(shí)現(xiàn)
  9.3 中斷處理方法
    9.3.1 非嵌套中斷處理
    9.3.2 嵌套中斷處理
    9.3.3 可重入中斷處理
    9.3.4 優(yōu)先級(jí)簡(jiǎn)單中斷處理
    9.3.5 優(yōu)先級(jí)標(biāo)準(zhǔn)中斷處理
    9.3.6 優(yōu)先級(jí)直接中斷處理
    9.3.7 優(yōu)先級(jí)分組中斷處理
    9.3.8 基于VIC PL190的中斷服務(wù)例程
  9.4 總結(jié)
第10章 固件
  10.1 固件和引導(dǎo)裝載程序
    10.1.1 ARM Firmware Suite
    10.1.2 Red Hat Redboot
  10.2 例子:Sandstone
    10.2.1 Sandstone的目錄結(jié)構(gòu)
    10.2.2 Sandstone的代碼結(jié)構(gòu)
  10.3 總結(jié)
第11章 嵌入式操作系統(tǒng)
  11.1 基本模塊
  11.2 實(shí)例:簡(jiǎn)單小型操作系統(tǒng)SLOS
    11.2.1 SLOS目錄結(jié)構(gòu)
    11.2.2 初始化
    11.2.3 存儲(chǔ)模型
    11.2.4 中斷和異常處理
    11.2.5 調(diào)度程序
    11.2.6 上下文切換
    11.2.7 設(shè)備驅(qū)動(dòng)程序框架
  11.3 總結(jié)
第12章 高速緩沖存儲(chǔ)器cache
  12.1 存儲(chǔ)層次和cache
  12.2 cache結(jié)構(gòu)
    12.2.1 cache存儲(chǔ)器的基本結(jié)構(gòu)
    12.2.2 cache控制器的基本操作
    12.2.3 cache與主存的關(guān)系
    12.2.4 組相聯(lián)
    12.2.5 寫緩沖器
    12.2.6 cache效率的衡量
  12.3 cache策略
    12.3.1 寫策略——直寫法或回寫法
    12.3.2 cache行替換策略
    12.3.3 cache失效時(shí)的分配策略
  12.4 協(xié)處理器15與cache
  12.5 清除和清理cache
    12.5.1 清除cache
    12.5.2 清理cache
    12.5.3 清理Dcache
    12.5.4 使用路和組索引尋址清理D-cache
    12.5.5 使用test-clean命令清理D-cache
    12.5.6 在Intel XScale SA110和Intel StrongARM內(nèi)核中清理D-cache
    12.5.7 清理和清除部分cache
  12.6 cache鎖定
    12.6.1 在cache中鎖定代碼和數(shù)據(jù)
    12.6.2 通過(guò)增加路索引來(lái)鎖定cache
    12.6.3 使用鎖定位鎖定cache
    12.6.4 在Intel XScale SA110中鎖定cache行
  12.7 cache與軟件性能
  12.8 總結(jié)
第13章 存儲(chǔ)器保護(hù)單元MPU
  13.1 受保護(hù)的區(qū)域
    13.1.1 重疊區(qū)域
    13.1.2 背景區(qū)域
  13.2 初始化MPU,cache和寫緩沖器
    13.2.1 定義區(qū)域的大小和位置
    13.2.2 訪問(wèn)權(quán)限
    13.2.3 設(shè)置區(qū)域的cache和寫緩沖器屬性
    13.2.4 使能區(qū)域和MPU
  13.3 MPU系統(tǒng)示例
    13.3.1 系統(tǒng)需求
    13.3.2 使用存儲(chǔ)器映射分配區(qū)域
    13.3.3 初始化MPU
    13.3.4 初始化和配置區(qū)域
    13.3.5 完成初始化MPU
    13.3.6 受保護(hù)系統(tǒng)的上下文切換
    13.3.7 mpuSLOS
  13.4 總結(jié)
第14章 存儲(chǔ)管理單元
  14.1 從MPU到MMU
  14.2 虛存如何工作
    14.2.1 使用頁(yè)定義區(qū)域
    14.2.2 多任務(wù)和MMU
    14.2.3 虛存系統(tǒng)的存儲(chǔ)器組織
  14.3 ARM MMU的詳情
  14.4 頁(yè)表
    14.4.1 一級(jí)頁(yè)表項(xiàng)
    14.4.2 L1轉(zhuǎn)換表基地址
    14.4.3 二級(jí)頁(yè)表項(xiàng)
    14.4.4 為嵌入式系統(tǒng)選擇合適的頁(yè)大小
  14.5 轉(zhuǎn)換旁路緩沖器
    14.5.1 單步頁(yè)表搜索
    14.5.2 2步頁(yè)表搜索
    14.5.3 TLB操作
    14.5.4 TLB鎖定
  14.6 域和存儲(chǔ)器訪問(wèn)權(quán)限
  14.7 cache和寫緩沖器
  14.8 協(xié)處理器CP15和MMU配置
  14.9 快速上下文切換擴(kuò)展
    14.9.1 FCSE如何使用頁(yè)表和域
    14.9.2 使用FCSE的提示
  14.10 示例:一個(gè)簡(jiǎn)單的虛擬存儲(chǔ)系統(tǒng)
    14.10.1 第1步:定義固定的系統(tǒng)軟件區(qū)域
    14.10.2 第2步:為每個(gè)任務(wù)定義虛存映射
    14.10.3 第3步:在物理存儲(chǔ)器中定位區(qū)域
    14.10.4 第4步:定義和定位頁(yè)表
    14.10.5 第5步:定義頁(yè)表和區(qū)域數(shù)據(jù)結(jié)構(gòu)
    14.10.6 第6步:初始化MMU、Cache和寫緩沖器
    14.10.7 第7步:建立上下文切換程序
  14.11 MMUSLOS示例
  14.12 總結(jié)
第15章 ARM體系結(jié)構(gòu)的發(fā)展
  15.1 ARMv6對(duì)高級(jí)DSP和SIMD的支持
    15.1.1 SIMD算法操作
    15.1.2 打包指令
    15.1.3 復(fù)數(shù)運(yùn)算支持
    15.1.4 飽和指令
    15.1.5 絕對(duì)差值求和指令
    15.1.6 雙16位乘法指令
    15.1.7 高位字乘法
    15.1.8 密碼算法乘法擴(kuò)展
  15.2 ARMv6增加的系統(tǒng)和多處理器支持
    15.2.1 混合大小端支持
    15.2.2 異常處理
    15.2.3 多處理同步原語(yǔ)(Multiprocessing Synchronization Primitives)
  15.3 ARMv6的實(shí)現(xiàn)
  15.4 ARMv6之后的未來(lái)技術(shù)
    15.4.1 TrustZone
    15.4.2 Thumb-2
  15.5 總結(jié)
附錄A  ARM和Thumb匯編指令
  A.1 如何使用這篇附錄
  A.2 語(yǔ)法
    A.2.1 可選表達(dá)式
    A.2.2 寄存器
    A.2.3 立即數(shù) 
    A.2.4 條件和標(biāo)志
    A.2.5 移位操作
  A.3 按字母順序列出ARM和Thumb指令
  A.4 ARM匯編速查
    A.4.1 ARM匯編變量
    A.4.2 ARM匯編標(biāo)注
    A.4.3 ARM匯編表達(dá)式
    A.4.4 ARM匯編保留字
  A.5 GNU匯編快速查詢
附錄  BARM和Thumb指令編碼
  B.1 ARM指令集編碼
  B.2 Thumb指令集編碼
  B.3 程序狀態(tài)寄存器
附錄C  處理器與體系結(jié)構(gòu)
  C.1 ARM命名規(guī)則
  C.2 內(nèi)核與體系結(jié)構(gòu)
附錄D  指令周期定時(shí)
  D.1指令周期定時(shí)表的使用
  D.2 ARM7TDMI指令周期定時(shí)
  D.3 ARM9TDMI指令周期定時(shí)
  D.4 StrongARM1 指令周期定時(shí)
  D.5 ARM9E指令周期定時(shí)
  D.6 ARM10E指令周期定時(shí)
  D.7 Intel XScale指令周期定時(shí)
  D.8 ARM11指令周期定時(shí)
附錄E  建議的參考讀物
  E.1 ARM參考
  E.2 算法參考
  E.3 存儲(chǔ)器管理與cache體系結(jié)構(gòu)(硬件綜述與參考)
  E.4 操作系統(tǒng)參考

本目錄推薦

掃描二維碼
Copyright ? 讀書網(wǎng) www.afriseller.com 2005-2020, All Rights Reserved.
鄂ICP備15019699號(hào) 鄂公網(wǎng)安備 42010302001612號(hào)