版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、主講內(nèi)容,第1章 嵌入式系統(tǒng)概述 第2章 ARM微處理器概述與編程模型 第3章 ARM9指令系統(tǒng) 第4章 嵌入式程序設(shè)計(jì)基礎(chǔ) 第5章 嵌入式內(nèi)部可編程模塊 第6章 嵌入式接口技術(shù)應(yīng)用 第7章 軟件開(kāi)發(fā)環(huán)境,第2章 ARM微處理器概述與編程模型,ARM微處理器概述 ARM微處理器結(jié)構(gòu) ARM微處理器的工作狀態(tài) ARM體系結(jié)構(gòu)的存儲(chǔ)器格式 處理器模式 寄存器組織 異常(Exceptions),2.1 ARM微處理器概述,ARM公司簡(jiǎn)介,ARM是Advanced RISC Machines的縮寫(xiě),它是一家微處理器行業(yè)的知名企業(yè),該企業(yè)設(shè)計(jì)了大量高性能、廉價(jià)、耗能低的RISC (精簡(jiǎn)指令集)處理器。
2、公司的特點(diǎn)是只設(shè)計(jì)芯片,而不生產(chǎn)。它將技術(shù)授權(quán)給世界上許多著名的半導(dǎo)體、軟件和OEM廠商,并提供服務(wù)。,2.1 ARM微處理器概述,ARM公司簡(jiǎn)介,將技術(shù)授權(quán)給其它芯片廠商,形成各具特色的ARM芯片,2.1 ARM微處理器概述,ARM(Advanced RISC Machines)有3種含義 一個(gè)公司的名稱 一類(lèi)微處理器的通稱 一種技術(shù)的名稱,2.1.1 ARM微處理器的特點(diǎn),采用RISC架構(gòu)的ARM微處理器一般具有如下特點(diǎn): 體積小、低功耗、低成本、高性能; 支持Thumb(16位)/ARM(32位)雙指令集,能很好的兼容8位/16位器件; 大量使用寄存器,指令執(zhí)行速度更快; 大多數(shù)數(shù)據(jù)操作
3、都在寄存器中完成; 尋址方式靈活簡(jiǎn)單,執(zhí)行效率高; 指令長(zhǎng)度固定。,2.1.2 ARM微處理器系列,ARM處理器的產(chǎn)品系列非常廣,包括ARM7、ARM9、ARM9E、ARM10E、ARM11和SecurCore、Cortex等。以及其它廠商基于ARM體系結(jié)構(gòu)的處理器,除了具有ARM體系結(jié)構(gòu)的共同特點(diǎn)以外,每一系列提供一套特定的性能來(lái)滿足設(shè)計(jì)者對(duì)功耗、性能、體積的需求。 表2-1總結(jié)了ARM各系列處理器所包含的不同類(lèi)型。,2.1.2 ARM微處理器系列,2.1.2 ARM微處理器系列,2.1.2 ARM微處理器系列,ARM Cortex系列簡(jiǎn)介,基于ARMv7版本的ARM Cortex系列產(chǎn)品由
4、A、R、M三個(gè)系列組成,具體分類(lèi)延續(xù)了一直以來(lái)ARM面向具體應(yīng)用設(shè)計(jì)CPU的思路。,ARM Cortex,2.1.2 ARM微處理器系列,CortexTM-M3處理器簡(jiǎn)介,該處理器是首款基于ARMv7-M架構(gòu)的處理器,采用了純Thumb2指令的執(zhí)行方式,具有極高的運(yùn)算能力和中斷相應(yīng)能力。 Cortex-M3主要應(yīng)用于汽車(chē)車(chē)身系統(tǒng),工業(yè)控制系統(tǒng)和無(wú)線網(wǎng)絡(luò)等對(duì)功耗和成本敏感的嵌入式應(yīng)用領(lǐng)域。目前最便宜的基于該內(nèi)核的ARM單片機(jī)售價(jià)為1美元。,2.1.2 ARM微處理器系列,CortexTM-R4處理器簡(jiǎn)介,該處理器是首款基于ARMv7架構(gòu)的高級(jí)嵌入式處理器,其主要目標(biāo)為產(chǎn)量巨大的高級(jí)嵌入式應(yīng)用系統(tǒng)
5、,如硬盤(pán),噴墨式打印機(jī),以及汽車(chē)安全系統(tǒng)等等。,CortexTM-R4F處理器簡(jiǎn)介,該處理器在CortexTM-R4處理器的基礎(chǔ)上加入了代碼錯(cuò)誤校正(ECC)技術(shù),浮點(diǎn)運(yùn)算單元(FPU)以及DMA綜合配置的能力,增強(qiáng)了處理器在存儲(chǔ)器保護(hù)單元、緩存、緊密耦合存儲(chǔ)器、DMA訪問(wèn)以及調(diào)試方面的能力。,2.1.2 ARM微處理器系列,CortexTM-A8處理器簡(jiǎn)介,該處理器是ARM公司所開(kāi)發(fā)的基于ARMv7架構(gòu)的首款應(yīng)用級(jí)處理器,其特色是運(yùn)用了可增加代碼密度和加強(qiáng)性能的技術(shù)、可支持多媒體以及信號(hào)處理能力的NEONTM技術(shù)、以及能夠支持Java和其他文字代碼語(yǔ)言的提前和即時(shí)編譯的JazelleRTC技
6、術(shù)。 眾多先進(jìn)的技術(shù)使其適用于家電以及電子行業(yè)等各種高端的應(yīng)用領(lǐng)域。,2.1.2 ARM微處理器系列,ARM7系列簡(jiǎn)介,該系列包括ARM7TDMI、ARM7TDMI-S、帶有高速緩存處理器宏單元的ARM720T和擴(kuò)充了Jazelle的ARM7EJ-S。該系列處理器提供Thumb 16位壓縮指令集和EmbededICE軟件調(diào)試方式,適用于更大規(guī)模的SoC設(shè)計(jì)中。 ARM7系列廣泛應(yīng)用于多媒體和嵌入式設(shè)備,包括Internet設(shè)備、網(wǎng)絡(luò)和調(diào)制解調(diào)器設(shè)備,以及移動(dòng)電話、PDA等無(wú)線設(shè)備。,2.1.2 ARM微處理器系列,該系列包括ARM9TDMI、ARM920T和帶有高速緩存處理器宏單元的ARM94
7、0T。除了兼容ARM7系列,而且能夠更加靈活的設(shè)計(jì)。 ARM9系列主要應(yīng)用于引擎管理、儀器儀表、安全系統(tǒng)和機(jī)頂盒等領(lǐng)域。,ARM9系列簡(jiǎn)介,2.1.2 ARM微處理器系列,該系列為含有DSP指令集的綜合處理器,包括ARM926EJ-S、帶有高速緩存處理器宏單元的ARM966E-S/ARM946E-S。其內(nèi)核在ARM7處理器內(nèi)核的基礎(chǔ)上使用了Jazelle增強(qiáng)技術(shù),該技術(shù)支持一種新的Java操作狀態(tài),允許在硬件中執(zhí)行Java字節(jié)碼。 ARM9E系列主要應(yīng)用于下一代無(wú)線設(shè)備、數(shù)字消費(fèi)品、成像設(shè)備、工業(yè)控制、存儲(chǔ)設(shè)備和網(wǎng)絡(luò)設(shè)備等領(lǐng)域。,ARM9E系列簡(jiǎn)介,2.1.2 ARM微處理器系列,ARM10E
8、系列簡(jiǎn)介,該系列包括ARM1020E和ARM1020E處理器核,其核心在于使用向量浮點(diǎn)(VFP)單元VFP10提供高性能的浮點(diǎn)解決方案,從而極大提高了處理器的整型和浮點(diǎn)運(yùn)算性能。 可以用于視頻游戲機(jī)和高性能打印機(jī)等場(chǎng)合。,2.1.2 ARM微處理器系列,Xscale簡(jiǎn)介,Intel Xscale微控制器則提供全性能、高性價(jià)比、低功耗的解決方案,支持16位Thumb指令并集成數(shù)字信號(hào)處理(DSP)指令。 主要應(yīng)用于手提式通訊和消費(fèi)電子類(lèi)設(shè)備。,2.2. ARM微處理器結(jié)構(gòu),2.2.1 RISC體系結(jié)構(gòu) 1嵌入式CISC微處理器 傳統(tǒng)的CISC(Complex Instruction Set Co
9、mputer,復(fù)雜指令集計(jì)算機(jī))結(jié)構(gòu)有其固有的缺點(diǎn),即隨著計(jì)算機(jī)技術(shù)的發(fā)展而不斷引入新的復(fù)雜的指令集,為支持這些新增的指令,計(jì)算機(jī)的體系結(jié)構(gòu)會(huì)越來(lái)越復(fù)雜,然而,在CISC指令集的各種指令中,其使用頻率卻相差懸殊,大約有20的指令會(huì)被反復(fù)使用,占整個(gè)程序代碼的80。而余下的80的指令卻不經(jīng)常使用,在程序設(shè)計(jì)中只占20,顯然,這種結(jié)構(gòu)是不太合理的。,2.2.1 RISC體系結(jié)構(gòu),2. 嵌入式RISC微處理器 基于以上的不合理性,1979年美國(guó)加州大學(xué)伯克利分校提出了RISC(Reduced Instruction Set Computer,精簡(jiǎn)指令集計(jì)算機(jī))的概念, RISC是精簡(jiǎn)指令集計(jì)算機(jī),但
10、RISC并非只是簡(jiǎn)單地去減少指令,而是把著眼點(diǎn)放在了如何使計(jì)算機(jī)的結(jié)構(gòu)更加簡(jiǎn)單合理地提高運(yùn)算速度上。RISC結(jié)構(gòu)優(yōu)先選取使用頻最高的簡(jiǎn)單指令,拋棄復(fù)雜指令,固定指令長(zhǎng)度,減少指令格式和尋址方式,以控制邏輯為主,不用或少用微碼控制等措施來(lái)達(dá)到上述目的。,2.2.1 RISC體系結(jié)構(gòu),RISC體系結(jié)構(gòu)應(yīng)具有如下特點(diǎn): 采用固定長(zhǎng)度的指令格式,指令歸整、簡(jiǎn)單、基本尋址方式有23種。 使用單周期指令,便于流水線操作執(zhí)行。 大量使用寄存器,數(shù)據(jù)處理指令只對(duì)寄存器進(jìn)行操作,只有加載/ 存儲(chǔ)指令可以訪問(wèn)存儲(chǔ)器,以提高指令的執(zhí)行效率。 除此以外,ARM體系結(jié)構(gòu)還采用了一些特別的技術(shù),在保證高性能的前提下盡量縮
11、小芯片的面積,并降低功耗.,2.2.1 RISC體系結(jié)構(gòu),RISC體系結(jié)構(gòu)應(yīng)具有如下特點(diǎn): 所有的指令都可根據(jù)前面的執(zhí)行結(jié)果決定是否被執(zhí)行,從而提高指令的執(zhí)行效率。 可用加載/存儲(chǔ)指令批量傳輸數(shù)據(jù),以提高數(shù)據(jù)的傳輸效率。 可在一條數(shù)據(jù)處理指令中同時(shí)完成邏輯處理和移位處理。 在循環(huán)處理中使用地址的自動(dòng)增減來(lái)提高運(yùn)行效率。,2.2.1 RISC體系結(jié)構(gòu),RISC和CISC之間的主要區(qū)別:,2.2.2 ARM微處理器的寄存器結(jié)構(gòu),ARM處理器共有37個(gè)寄存器,被分為若干個(gè)組(BANK),這些寄存器包括: 31個(gè)通用寄存器,包括程序計(jì)數(shù)器(PC指針),均為32位的寄存器。 6個(gè)狀態(tài)寄存器,用以標(biāo)識(shí)CP
12、U的工作狀態(tài)及程序的運(yùn)行狀態(tài),均為32位,目前只使用了其中的一部分。,2.2.2 ARM微處理器的寄存器結(jié)構(gòu),ARM處理器又有7種不同的處理器模式,在每一種處理器模式下均有一組相應(yīng)的寄存器與之對(duì)應(yīng)。 即在任意一種處理器模式下,可訪問(wèn)的寄存器包括15個(gè)通用寄存器(R0R14)、12個(gè)狀態(tài)寄存器和程序計(jì)數(shù)器。 在所有的寄存器中,有些是在7種處理器模式下共用的同一個(gè)物理寄存器,而有些寄存器則是在不同的處理器模式下有不同的物理寄存器。,2.2.3 ARM微處理器的指令結(jié)構(gòu),ARM微處理器在較新的體系結(jié)構(gòu)中支持兩種指令集:ARM指令集和Thumb指令集。 ARM指令為32位的長(zhǎng)度 Thumb指令為16位
13、長(zhǎng)度 Thumb指令集為ARM指令集的功能子集,但與等價(jià)的ARM代碼相比較,可節(jié)省3040以上的存儲(chǔ)空間,同時(shí)具備32位代碼的所有優(yōu)點(diǎn)。,2.2.4 ARM微處理器的應(yīng)用選型,從應(yīng)用的角度出發(fā),對(duì)在選擇ARM微處理器時(shí)所應(yīng)考慮的主要問(wèn)題 : ARM微處理器內(nèi)核的選擇 從前面所介紹的內(nèi)容可知,ARM微處理器包含一系列的內(nèi)核結(jié)構(gòu),以適應(yīng)不同的應(yīng)用領(lǐng)域,用戶如果希望使用WinCE或標(biāo)準(zhǔn)Linux等操作系統(tǒng)以減少軟件開(kāi)發(fā)時(shí)間,就需要選擇ARM720T以上帶有MMU(Memory Management Unit)功能的ARM芯片,ARM720T、ARM920T、ARM922T、ARM946T、Stron
14、g-ARM都帶有MMU功能。 而ARM7TDMI則沒(méi)有MMU,不支持Windows CE和標(biāo)準(zhǔn)Linux,但目前有uCLinux等不需要MMU支持的操作系統(tǒng)可運(yùn)行于ARM7TDMI硬件平臺(tái)之上。事實(shí)上,uCLinux已經(jīng)成功移植到多種不帶MMU的微處理器平臺(tái)上,并在穩(wěn)定性和其他方面都有上佳表現(xiàn)。,2.2.4 ARM微處理器的應(yīng)用選型,系統(tǒng)的工作頻率 系統(tǒng)的工作頻率在很大程度上決定了ARM微處理器的處理能力。 ARM7系列微處理器的典型處理速度為0.9MIPS/MHz,常見(jiàn)的ARM7芯片系統(tǒng)主時(shí)鐘為20MHz-133MHz。 ARM9系列微處理器的典型處理速度為1.1MIPS/MHz,常見(jiàn)的AR
15、M9的系統(tǒng)主時(shí)鐘頻率為100MHz-233MHz。 ARM10最高可以達(dá)到700MHz。 不同芯片對(duì)時(shí)鐘的處理不同,有的芯片只需要一個(gè)主時(shí)鐘頻率,有的芯片內(nèi)部時(shí)鐘控制器可以分別為ARM核和USB、UART、DSP、音頻等功能部件提供不同頻率的時(shí)鐘。,2.2.4 ARM微處理器的應(yīng)用選型,芯片內(nèi)存儲(chǔ)器的容量 大多數(shù)的ARM微處理器片內(nèi)存儲(chǔ)器的容量都不太大,需要用戶在設(shè)計(jì)系統(tǒng)時(shí)外擴(kuò)存儲(chǔ)器. 但也有部分芯片具有相對(duì)較大的片內(nèi)存儲(chǔ)空間,如ATMEL的AT91F40162就具有高達(dá)2MB的片內(nèi)程序存儲(chǔ)空間,用戶在設(shè)計(jì)時(shí)可考慮選用這種類(lèi)型,以簡(jiǎn)化系統(tǒng)的設(shè)計(jì)。,2.2.4 ARM微處理器的應(yīng)用選型,片內(nèi)外圍
16、電路的選擇 幾乎所有的ARM芯片均根據(jù)各自不同的應(yīng)用領(lǐng)域,擴(kuò)展了相關(guān)功能模塊,并集成在芯片之中,稱之為片內(nèi)外圍電路. 如USB接口、IIS接口、LCD控制器、鍵盤(pán)接口、RTC、ADC和DAC、DSP協(xié)處理器等,設(shè)計(jì)者應(yīng)分析系統(tǒng)的需求,盡可能采用片內(nèi)外圍電路完成所需的功能,這樣既可簡(jiǎn)化系統(tǒng)的設(shè)計(jì),同時(shí)提高系統(tǒng)的可靠性。,2.3 ARM微處理器的工作狀態(tài),ARM微處理器的工作狀態(tài)一般有兩種,并可在兩種狀態(tài)之間切換: ARM狀態(tài),此時(shí)處理器執(zhí)行32位的字對(duì)齊的ARM指令; Thumb狀態(tài),此時(shí)處理器執(zhí)行16位的、半字對(duì)齊的Thumb指令。 ARM指令集和Thumb指令集均有切換處理器狀態(tài)的指令,并可
17、在兩種工作狀態(tài)之間切換,但ARM微處理器在開(kāi)始執(zhí)行代碼時(shí),應(yīng)該處于ARM狀態(tài)。,2.3 ARM微處理器的工作狀態(tài),進(jìn)入Thumb狀態(tài):當(dāng)操作數(shù)寄存器的狀態(tài)位(位0)為1時(shí),可以采用執(zhí)行BX指令的方法,使微處理器從ARM狀態(tài)切換到Thumb狀態(tài)。此外,當(dāng)處理器處于Thumb狀態(tài)時(shí)發(fā)生異常(如IRQ、FIQ、Undef、Abort、SWI等),則異常處理返回時(shí),自動(dòng)切換到Thumb狀態(tài)。 進(jìn)入ARM狀態(tài):當(dāng)操作數(shù)寄存器的狀態(tài)位為0時(shí),執(zhí)行BX指令時(shí)可以使微處理器從Thumb狀態(tài)切換到ARM狀態(tài)。此外,在處理器進(jìn)行異常處理時(shí),把PC指針?lè)湃氘惓DJ芥溄蛹拇嫫髦?,并從異常向量地址開(kāi)始執(zhí)行程序,也可以使
18、處理器切換到ARM狀態(tài)。,2.4 ARM處理器狀態(tài),狀態(tài)切換的一個(gè)例子,使用BX指令將ARM內(nèi)核的操作狀態(tài)在ARM狀態(tài)和Thumb狀態(tài)之間進(jìn)行切換。,ARM指令集,Thumb 指令集,CODE32 LDRR0, =Lable+1 BX R0 CODE16 Lable MOV R1, #12,CODE16 LDR R0, =Lable BX R0 CODE32 LableMOV R1, #10,執(zhí)行完BX指令,處理器切換到Thumb狀態(tài),開(kāi)始執(zhí)行Thumb指令,程序代碼,指令集關(guān)系,從ARM狀態(tài)切換到Thumb狀態(tài)的程序代碼如下:,從Thumb狀態(tài)切換到ARM狀態(tài)的程序代碼如下:,執(zhí)行完BX指令
19、,處理器切換到ARM狀態(tài),開(kāi)始執(zhí)行ARM指令,2.4 ARM體系結(jié)構(gòu)的存儲(chǔ)器格式,ARM體系結(jié)構(gòu)將存儲(chǔ)器看作是從零地址開(kāi)始的字節(jié)的線性組合。 從零字節(jié)到三字節(jié)放置第一個(gè)存儲(chǔ)的字?jǐn)?shù)據(jù). 從第四個(gè)字節(jié)到第七個(gè)字節(jié)放置第二個(gè)存儲(chǔ)的字?jǐn)?shù)據(jù),依次排列。 作為32位的微處理器,ARM體系結(jié)構(gòu)所支持的最大尋址空間為4GB(232字節(jié))。 ARM體系結(jié)構(gòu)可以用兩種方法存儲(chǔ)字?jǐn)?shù)據(jù),稱之為 大端格式 小端格式,2.4 ARM體系結(jié)構(gòu)的存儲(chǔ)器格式,大端格式 在這種格式中,字?jǐn)?shù)據(jù)的高字節(jié)存儲(chǔ)在低地址中,而字?jǐn)?shù)據(jù)的低字節(jié)則存放在高地址中,如圖所示。,2.4 ARM體系結(jié)構(gòu)的存儲(chǔ)器格式,小端格式 在這種格式中,字?jǐn)?shù)據(jù)的高
20、字節(jié)存儲(chǔ)在低地址中,而字?jǐn)?shù)據(jù)的低字節(jié)則存放在高地址中,如圖所示。,2.4.1 指令長(zhǎng)度及數(shù)據(jù)類(lèi)型,ARM微處理器的指令長(zhǎng)度可以是 32位(在ARM狀態(tài)下) 16位(在Thumb狀態(tài)下) ARM微處理器中支持字節(jié)(8位)、半字(16位)、字(32位)三種數(shù)據(jù)類(lèi)型. 其中,字需要4字節(jié)對(duì)齊(地址的低兩位為0)、半字需要2字節(jié)對(duì)齊(地址的最低位為0)。,2.4.2 存儲(chǔ)管理單元-MMU,在復(fù)雜的嵌入式系統(tǒng)設(shè)計(jì)時(shí),越來(lái)越多的會(huì)選用帶有存儲(chǔ)管理單元(MMU)的微處理器芯片。 MMU完成的主要功能有: 將主存地址從虛擬存儲(chǔ)空間映射到物理存儲(chǔ)空間。 存儲(chǔ)器訪問(wèn)權(quán)限控制。 設(shè)置虛擬存儲(chǔ)空間的緩沖特性等。,2.
21、4.2 存儲(chǔ)管理單元-MMU,虛擬地址存儲(chǔ)系統(tǒng)示意圖,2.4.2 存儲(chǔ)管理單元-MMU,ARM920T微處理器核的MMU采用了分頁(yè)虛擬存儲(chǔ)管理方式。它把虛擬存儲(chǔ)空間分成一個(gè)個(gè)固定大小的頁(yè),把物理主存儲(chǔ)的空間也分成同樣大小的一個(gè)個(gè)頁(yè)。 通過(guò)查詢存放在主存中的頁(yè)表,來(lái)實(shí)現(xiàn)虛擬地址到物理地址的轉(zhuǎn)換。但由于頁(yè)表存儲(chǔ)在主存儲(chǔ)中,查詢頁(yè)表所花的代價(jià)很大,因此,通常又采用快表技術(shù)(TLB translation lookaside buffer)來(lái)提高地址變換效率。,2.4.2 存儲(chǔ)管理單元-MMU,TLB技術(shù)中,將當(dāng)前需要訪問(wèn)的地址變換條目存儲(chǔ)在一個(gè)容量較?。ㄍǔ?16個(gè)字)、訪問(wèn)速度更快(與微處理器中通
22、用寄存器速度相當(dāng))的存儲(chǔ)器件中。當(dāng)微處理器訪問(wèn)主存時(shí),先在TLB中查找需要的地址變換條目,如果該條目不存在,再?gòu)拇鎯?chǔ)在主存中的頁(yè)表中查詢,并添加到TLB中。 這樣,當(dāng)微處理器下一次又需要該地址變換條目時(shí),可以從TLB中直接得到,從而提高了地址變換速度。,2.4.2 存儲(chǔ)管理單元-MMU,表2-5是ARM920T的寫(xiě)出其CP15中與MMU操作相關(guān)的寄存器。設(shè)計(jì)者編程控制這些寄存器,則可以相應(yīng)地控制MMU操作。,2.4.2 存儲(chǔ)管理單元-MMU,1.禁止與使能MMU CP15的寄存器C1的位0用于設(shè)置禁止/使能MMU。C1的位0為0時(shí),禁止MMU;當(dāng)C1的位0為1時(shí),使能MMU。下面指令實(shí)現(xiàn)了使能
23、MMU。 MRC P15,0,R0,C1,0,0 ; C1的內(nèi)容賦給R0 ORR R0,#0 x1 MCR P15,0,R0,C1,0,0 ;R0的內(nèi)容賦給C1,2.4.2 存儲(chǔ)管理單元-MMU,使能MMU時(shí),其控制存儲(chǔ)訪問(wèn)的過(guò)程是: 首先在TLB中查找虛擬地址,如果該虛擬地址對(duì)應(yīng)的地址變換條目不在TLB中,則到頁(yè)表中查詢對(duì)應(yīng)的地址變換條目,并把查詢到的結(jié)果添加到TLB中。如果TLB已滿,還需根據(jù)一定的淘汰算法進(jìn)行替換。得到地址變換條目后,進(jìn)行一下步驟的操作。,2.4.2 存儲(chǔ)管理單元-MMU,禁止MMU時(shí),所有的虛擬地址和物理地址是相等的,也不進(jìn)行存儲(chǔ)訪問(wèn)權(quán)限的控制。是否支持cache和寫(xiě)緩
24、存由具體芯片設(shè)計(jì)確定。 在禁止/使能MMU時(shí),應(yīng)該注意以下幾點(diǎn)。 使能MMU之前,要在內(nèi)存中建立0號(hào)頁(yè)表,同時(shí)CP15中的各相關(guān)寄存器必須完成初始化. 如果設(shè)計(jì)的物理地址與虛擬地址空間不相等,在禁止/使能MMU時(shí),虛擬地址和物理地址的對(duì)應(yīng)關(guān)系會(huì)改變,應(yīng)清除cache中當(dāng)前地址變換條目。 完成禁止/使能MMU代碼的物理地址最好和虛擬地址相同。,2.4.2 存儲(chǔ)管理單元-MMU,2.MMU中的地址變換過(guò)程 虛擬存儲(chǔ)空間到物理存儲(chǔ)空間的映射是以內(nèi)存塊為單位進(jìn)行的。在頁(yè)表或TLB中,每個(gè)地址變換條目記錄了一個(gè)虛擬存儲(chǔ)空間的存儲(chǔ)塊的基地址與物理存儲(chǔ)空間的一個(gè)存儲(chǔ)塊基地址的對(duì)應(yīng)關(guān)系。 ARM920T支持的
25、存儲(chǔ)塊大小有一下幾種: 段(section)是大小為1MB的存儲(chǔ)塊。 大頁(yè)(large pages)是大小為64KB的存儲(chǔ)塊。 小頁(yè)(small pages)是大小為4KB的存儲(chǔ)塊。 極小頁(yè)(tiny pages)是大小為1KB的存儲(chǔ)塊。,2.4.2 存儲(chǔ)管理單元-MMU,3.MMU中的存儲(chǔ)訪問(wèn)權(quán)限控制 在MMU中,CP15的寄存器C1的R、S控制位和頁(yè)表中地址轉(zhuǎn)換條目中的訪問(wèn)權(quán)限控制位聯(lián)合作用控制存儲(chǔ)訪問(wèn)權(quán)限。 具體規(guī)則如表2-6所示。,2.4.2 存儲(chǔ)管理單元-MMU,表2-6 MMU中存儲(chǔ)訪問(wèn)控制權(quán)限控制規(guī)則,2.4.2 存儲(chǔ)管理單元-MMU,4.MMU中的域 MMU中的域指的是一些段、
26、大頁(yè)或者小頁(yè)的集合。ARM920T支持最大16個(gè)域,每個(gè)域的訪問(wèn)控制特性由CP15的寄存器C3中的兩位來(lái)控制。 C3寄存器是32位的,每?jī)晌豢刂埔粋€(gè)域,其控制編碼如表2-7所示。,2.4.2 存儲(chǔ)管理單元-MMU,表2-7 MMU中域訪問(wèn)控制字段編碼及含義,2.4.2 存儲(chǔ)管理單元-MMU,5.快表操作 從虛擬地址到物理地址的變換過(guò)程其實(shí)就是查詢頁(yè)表的過(guò)程,由于頁(yè)表存放在主存儲(chǔ)器中,這個(gè)查詢代價(jià)很大。而程序在執(zhí)行時(shí)其過(guò)程具有局部性,對(duì)頁(yè)表中各存儲(chǔ)單元的訪問(wèn)并不是隨機(jī)的,在一段時(shí)間內(nèi),只局限在少數(shù)幾個(gè)單元中。 因此,采用TLB技術(shù)可以提高存儲(chǔ)系統(tǒng)的整體性能。,2.4.2 存儲(chǔ)管理單元-MMU,6
27、.存儲(chǔ)訪問(wèn)失效 在ARM920T中,MMU可以產(chǎn)生4種類(lèi)型的存儲(chǔ)訪問(wèn)失效,即地址對(duì)齊失效、地址變換失效、域控制失效和訪問(wèn)權(quán)限控制失效。當(dāng)發(fā)生存儲(chǔ)訪問(wèn)失效時(shí),存儲(chǔ)系統(tǒng)可以中止3種存儲(chǔ)訪問(wèn),即cache內(nèi)容預(yù)取、非緩沖的存儲(chǔ)器訪問(wèn)操S作和頁(yè)表訪問(wèn)。,2.4.2 存儲(chǔ)管理單元-MMU,有下面兩種機(jī)制可以檢測(cè)存儲(chǔ)訪問(wèn)失效,并進(jìn)而中止微處理器的執(zhí)行。 (1)當(dāng)MMU檢測(cè)到存儲(chǔ)訪問(wèn)失效時(shí),它可以向微處理器報(bào)告該情況,并將存儲(chǔ)訪問(wèn)失效的相關(guān)信息保存到寄存器C5和C6中。這種機(jī)制成為MMU失效。 (2)存儲(chǔ)系統(tǒng)也可以向微處理器報(bào)告存儲(chǔ)訪問(wèn)失效。這種機(jī)制稱為外部存儲(chǔ)訪問(wèn)中止(external abort)。 上
28、述兩種情況通稱為存儲(chǔ)訪問(wèn)中止(abort)。,2.4.2 存儲(chǔ)管理單元-MMU,如果存儲(chǔ)訪問(wèn)發(fā)生在數(shù)據(jù)訪問(wèn)周期,微處理器將產(chǎn)生數(shù)據(jù)訪問(wèn)中止異常。 如果存儲(chǔ)訪問(wèn)發(fā)生在指令預(yù)取周期,當(dāng)該指令執(zhí)行時(shí),微處理器將產(chǎn)生指令預(yù)取異常。 MMU中與存儲(chǔ)訪問(wèn)失效相關(guān)的寄存器有兩個(gè): C5和C6。 C5為失效狀態(tài)寄存器,C6為失效地址寄存器。,2.5 處理器模式,ARM微處理器支持7種運(yùn)行模式,分別為: 用戶模式(usr): ARM處理器正常的程序執(zhí)行狀態(tài)。 快速中斷模式(fiq):用于高速數(shù)據(jù)傳輸或通道處理。 外部中斷模式(irq):用于通用的中斷處理。 管理模式(svc):操作系統(tǒng)使用的保護(hù)模式。 數(shù)據(jù)訪問(wèn)
29、終止模式(abt):當(dāng)數(shù)據(jù)或指令預(yù)取終止時(shí)進(jìn)入該模式,可用于虛擬存儲(chǔ)及存儲(chǔ)保護(hù)。 系統(tǒng)模式(sys):運(yùn)行具有特權(quán)的操作系統(tǒng)任務(wù)。 未定義指令中止模式(und):當(dāng)未定義的指令執(zhí)行時(shí)進(jìn)入該模式,可用于支持硬件協(xié)處理器的軟件仿真。,特權(quán)模式,除用戶模式外,其它模式均為特權(quán)模式。ARM內(nèi)部寄存器和一些片內(nèi)外設(shè)在硬件設(shè)計(jì)上只允許(或者可選為只允許)特權(quán)模式下訪問(wèn)。此外,特權(quán)模式可以自由的切換處理器模式,而用戶模式不能直接切換到別的模式。,2.5 處理器模式,異常模式,這五種模式稱為異常模式。它們除了可以通過(guò)程序切換進(jìn)入外,也可以由特定的異常進(jìn)入。當(dāng)特定的異常出現(xiàn)時(shí),處理器進(jìn)入相應(yīng)的模式。每種異常模式
30、都有一些獨(dú)立的寄存器,以避免異常退出時(shí)用戶模式的狀態(tài)不可靠。,2.5 處理器模式,用戶和系統(tǒng)模式,這兩種模式都不能由異常進(jìn)入,而且它們使用完全相同的寄存器組。 系統(tǒng)模式是特權(quán)模式,不受用戶模式的限制。操作系統(tǒng)在該模式下訪問(wèn)用戶模式的寄存器就比較方便,而且操作系統(tǒng)的一些特權(quán)任務(wù)可以使用這個(gè)模式訪問(wèn)一些受控的資源。,2.5 處理器模式,處理器啟動(dòng)時(shí)的模式轉(zhuǎn)換圖,管理模式SVC (Supervisor),多種特權(quán)模式變化,用戶程序的運(yùn)行模式,復(fù)位后 缺省模式,主要完成各模式的堆棧設(shè)置,注意不要進(jìn)入用戶模式,一般為用戶模式User,2.5 處理器模式,2.6 寄存器組織,ARM微處理器中的寄存器不能被
31、同時(shí)訪問(wèn),具體哪些寄存器是可編程訪問(wèn)的,取決微處理器的工作狀態(tài)及具體的運(yùn)行模式。 但在任何時(shí)候,通用寄存器R14R0、程序計(jì)數(shù)器PC、一個(gè)或兩個(gè)狀態(tài)寄存器都是可訪問(wèn)的。,2.6.1 ARM狀態(tài)下的寄存器組織,2.6.1 ARM狀態(tài)下的寄存器組織,所有的37個(gè)寄存器,分成兩大類(lèi): 31個(gè)通用32位寄存器; 6個(gè)狀態(tài)寄存器。,2.6.1 ARM狀態(tài)下的寄存器組織,2.6.1 ARM狀態(tài)下的寄存器組織,1.通用寄存器 通用寄存器包括R0R15,可以分為三類(lèi): 未分組寄存器R0R7; 分組寄存器R8R14; 程序計(jì)數(shù)器PC(R15)。,在匯編語(yǔ)言中寄存器R0R13為保存數(shù)據(jù)或地址值的通用寄存器。它們是
32、完全通用的寄存器,不會(huì)被體系結(jié)構(gòu)作為特殊用途,并且可用于任何使用通用寄存器的指令。,2.6.1 ARM狀態(tài)下的寄存器組織,2.6.1 ARM狀態(tài)下的寄存器組織,2.未分組寄存器R0R7 在所有的運(yùn)行模式下,未分組寄存器都指向同一個(gè)物理寄存器,他們未被系統(tǒng)用作特殊的用途,因此,在中斷或異常處理進(jìn)行運(yùn)行模式轉(zhuǎn)換時(shí),由于不同的處理器運(yùn)行模式均使用相同的物理寄存器,可能會(huì)造成寄存器中數(shù)據(jù)的破壞,這一點(diǎn)在進(jìn)行程序設(shè)計(jì)時(shí)應(yīng)引起注意。,其中R0R7為未分組的寄存器,也就是說(shuō)對(duì)于任何處理器模式,這些寄存器都對(duì)應(yīng)于相同的32位物理寄存器。,2.6.1 ARM狀態(tài)下的寄存器組織,2.6.1 ARM狀態(tài)下的寄存器組
33、織,3.分組寄存器R8R14 對(duì)于分組寄存器,他們每一次所訪問(wèn)的物理寄存器與處理器當(dāng)前的運(yùn)行模式有關(guān)。 對(duì)于R8R12來(lái)說(shuō),每個(gè)寄存器對(duì)應(yīng)兩個(gè)不同的物理寄存器,當(dāng)使用fiq模式時(shí),訪問(wèn)寄存器R8_fiqR12_fiq;當(dāng)使用除fiq模式以外的其他模式時(shí),訪問(wèn)寄存器R8_usrR12_usr。 對(duì)于R13、R14來(lái)說(shuō),每個(gè)寄存器對(duì)應(yīng)6個(gè)不同的物理寄存器,其中的一個(gè)是用戶模式與系統(tǒng)模式共用,另外5個(gè)物理寄存器對(duì)應(yīng)于其他5種不同的運(yùn)行模式。 采用以下的記號(hào)來(lái)區(qū)分不同的物理寄存器: R13_ R14_ 其中,mode為以下幾種模式之一:usr、fiq、irq、svc、abt、und。,寄存器R8R14
34、為分組寄存器。它們所對(duì)應(yīng)的物理寄存器取決于當(dāng)前的處理器模式,幾乎所有允許使用通用寄存器的指令都允許使用分組寄存器,2.6.1 ARM狀態(tài)下的寄存器組織,寄存器R8R12有兩個(gè)分組的物理寄存器。一個(gè)用于除FIQ模式之外的所有寄存器模式,另一個(gè)用于FIQ模式。這樣在發(fā)生FIQ中斷后,可以加速FIQ的處理速度。,2.6.1 ARM狀態(tài)下的寄存器組織,寄存器R13、R14分別有6個(gè)分組的物理寄存器。一個(gè)用于用戶和系統(tǒng)模式,其余5個(gè)分別用于5種異常模式。,2.6.1 ARM狀態(tài)下的寄存器組織,2.6.1 ARM狀態(tài)下的寄存器組織,寄存器R13在ARM指令中常用作堆棧指針,但這只是一種習(xí)慣用法,用戶也可使
35、用其他的寄存器作為堆棧指針。 而在Thumb指令集中,某些指令強(qiáng)制性的要求使用R13作為堆棧指針。,堆棧指針寄存器R13(SP),寄存器R13常作為堆棧指針(SP)。在ARM指令集當(dāng)中,沒(méi)有以特殊方式使用R13的指令或其它功能,只是習(xí)慣上都這樣使用。但是在Thumb指令集中存在使用R13的指令。,2.6.1 ARM狀態(tài)下的寄存器組織,R14也稱作子程序鏈接寄存器(Subroutine Link Register)或鏈接寄存器LR。 當(dāng)執(zhí)行BL子程序調(diào)用指令時(shí),R14中得到R15(程序計(jì)數(shù)器PC)的備份。 其他情況下,R14用作通用寄存器。與之類(lèi)似,當(dāng)發(fā)生中斷或異常時(shí),對(duì)應(yīng)的分組寄存器R14_s
36、vc、R14_irq、R14_fiq、R14_abt和R14_und用來(lái)保存R15的返回值。,鏈接寄存器R14(LR),R14為鏈接寄存器(LR),在結(jié)構(gòu)上有兩個(gè)特殊功能: 在每種模式下,模式自身的R14版本用于保存子程序返回地址; 當(dāng)發(fā)生異常時(shí),將R14對(duì)應(yīng)的異常模式版本設(shè)置為異常返回地址(有些異常有一個(gè)小的固定偏移量)。,2.6.1 ARM狀態(tài)下的寄存器組織,寄存器R14常用在如下的情況: 在每一種運(yùn)行模式下,都可用R14保存子程序的返回地址,當(dāng)用BL或BLX指令調(diào)用子程序時(shí),將PC的當(dāng)前值拷貝給R14,執(zhí)行完子程序后,又將R14的值拷貝回PC,即可完成子程序的調(diào)用返回。,2.6.1 AR
37、M狀態(tài)下的寄存器組織,以上的描述可用指令完成: (1)執(zhí)行以下任意一條指令: MOV PC,LR BX LR (2)在子程序入口處使用以下指令將R14存入堆棧: STMFDSP!,LR 對(duì)應(yīng)的,使用以下指令可以完成子程序返回: LDMFDSP!,PC,R14寄存器與子程序調(diào)用,MOV PC,LR,R14(地址A),1.程序A執(zhí)行過(guò)程中調(diào)用程序B;,操作流程,2.程序跳轉(zhuǎn)至標(biāo)號(hào)Lable,執(zhí)行程序B。同時(shí)硬件將“BL Lable”指令的下一條指令所在地址存入R14;,3.程序B執(zhí)行最后,將R14寄存器的內(nèi)容放入PC,返回程序A;,2.6.1 ARM狀態(tài)下的寄存器組織,R14寄存器與異常發(fā)生,異常
38、發(fā)生時(shí),程序要跳轉(zhuǎn)至異常服務(wù)程序,對(duì)返回地址的處理與子程序調(diào)用類(lèi)似,都是由硬件完成的。區(qū)別在于有些異常有一個(gè)小常量的偏移。,2.6.1 ARM狀態(tài)下的寄存器組織,R14寄存器注意要點(diǎn),當(dāng)發(fā)生異常嵌套時(shí),這些異常之間可能會(huì)發(fā)生沖突。 例如:如果用戶在用戶模式下執(zhí)行程序時(shí)發(fā)生了IRQ中斷,用戶模式寄存器不會(huì)被破壞。但是如果允許在IRQ模式下的中斷處理程序重新使能IRQ中斷,并且發(fā)生了嵌套的IRQ中斷時(shí),外部中斷處理程序保存在R14_irq中的任何值都將被嵌套中斷的返回地址所覆蓋。,2.6.1 ARM狀態(tài)下的寄存器組織,R14寄存器注意要點(diǎn),a,return,地址A,1.執(zhí)行用戶模式下的程序;,2.
39、發(fā)生IRQ中斷,硬件將某個(gè)地址存入IRQ模式下的R14_irq寄存器,用戶模式下的R14沒(méi)有被破壞;,3. IRQ服務(wù)程序A執(zhí)行完畢,將R14_irq寄存器的內(nèi)容減去某個(gè)常量后存入PC,返回之前被中斷的程序;,未被破壞,2.6.1 ARM狀態(tài)下的寄存器組織,R14寄存器注意要點(diǎn),a,地址A,1.執(zhí)行用戶模式下的程序;,2.發(fā)生IRQ中斷,硬件將某個(gè)地址存入IRQ模式下的R14_irq寄存器,用戶模式下的R14沒(méi)有被破壞;,3. IRQ服務(wù)程序A執(zhí)行完畢,將R14_irq寄存器的內(nèi)容減去某個(gè)常量后存入PC,返回之前被中斷的程序;,未被破壞,a,return,地址B,4. 如果在IRQ處理程序中打
40、開(kāi)IRQ中斷,并且再次發(fā)生IRQ中斷,或者調(diào)用子程序;,5. 硬件將返回地址保存在R14_irq寄存器中,原來(lái)保存的返回地址將被覆蓋,造成錯(cuò)誤;,被破壞,6. 在程序B返回到程序A,然后在返回到用戶模式下被中斷的程序時(shí),發(fā)生錯(cuò)誤,將不能正確返回;,return,return,解決辦法是確保R14的對(duì)應(yīng)版本在發(fā)生中斷嵌套時(shí)不再保存任何有意義的值(將R14入棧),或者切換到其它處理器模式下。,2.6.1 ARM狀態(tài)下的寄存器組織,2.6.1 ARM狀態(tài)下的寄存器組織,4.程序計(jì)數(shù)器PC 寄存器R15用作程序計(jì)數(shù)器(PC)。 在ARM狀態(tài)下,位1:0為0,位31:2用于保存PC; 在Thumb狀態(tài)下
41、,位0為0,位31:1用于保存PC; 由于ARM體系結(jié)構(gòu)采用了多級(jí)流水線技術(shù),對(duì)于ARM指令集而言,PC總是指向當(dāng)前指令的下兩條指令的地址,即PC的值為當(dāng)前指令的地址值加8個(gè)字節(jié)。,程序計(jì)數(shù)器R15(PC),寄存器R15常作為程序計(jì)數(shù)器(PC )。 R15雖然也可用作通用寄存器,但一般不這么使用,因?yàn)閷?duì)R15的使用有一些特殊的限制,當(dāng)違反了這些限制時(shí),程序的執(zhí)行結(jié)果是未知的。,寄存器CPSR為程序狀態(tài)寄存器,在異常模式中,另外一個(gè)寄存器“程序狀態(tài)保存寄存器(SPSR)”可以被訪問(wèn)。每種異常都有自己的SPSR,在因?yàn)楫惓J录M(jìn)入異常時(shí)它保存CPSR的當(dāng)前值,異常退出時(shí)可通過(guò)它恢復(fù)CPSR。,程
42、序計(jì)數(shù)器R15(PC),2.6.2 Thumb狀態(tài)下的寄存器組織,Thumb狀態(tài)寄存器集是ARM狀態(tài)集的子集,程序員可以直接訪問(wèn)的寄存器為: 8個(gè)通用寄存器R0R7; 程序計(jì)數(shù)器(PC); 堆棧指針(SP); 鏈接寄存器(LR); 有條件訪問(wèn)程序狀態(tài)寄存器( CPSR)。,注意:括號(hào)內(nèi)為ATPCS中寄存器的命名,可以使用RN匯編偽指令將寄存器定義多個(gè)名字。其中ADS1.2的匯編程序直接支持這些名稱,但注意a1a4,v1v4必須用小寫(xiě)。,2.6.2 Thumb狀態(tài)下的寄存器組織,在匯編語(yǔ)言中寄存器R0R7為保存數(shù)據(jù)或地址值的通用寄存器。對(duì)于任何處理器模式,它們中的每一個(gè)都對(duì)應(yīng)于相同的32為物理寄
43、存器。它們是完全通用的寄存器,不會(huì)被體系結(jié)構(gòu)作為特殊的用途,并且可用于任何使用通用寄存器的指令。,2.6.2 Thumb狀態(tài)下的寄存器組織,Thumb狀態(tài)下的堆棧指針寄存器(SP),堆棧指針SP對(duì)應(yīng)ARM狀態(tài)的寄存器R13。每個(gè)異常模式都有其自身的SP分組版本,SP通常指向各異常模式所專用的堆棧。 注意:在發(fā)生異常時(shí),處理器自動(dòng)進(jìn)入ARM狀態(tài)。,Thumb狀態(tài)下的鏈接寄存器R14(LR),鏈接寄存器LR對(duì)應(yīng)ARM狀態(tài)寄存器R14,在結(jié)構(gòu)上有兩個(gè)特殊功能,詳見(jiàn)“ARM狀態(tài)下的鏈接寄存器LR”。 注意:在發(fā)生異常時(shí),處理器自動(dòng)進(jìn)入ARM狀態(tài)。,在Thumb狀態(tài)中訪問(wèn)高寄存器,在Thumb狀態(tài)中,高
44、寄存器(R8R15)不是標(biāo)準(zhǔn)寄存器集的一部分。匯編語(yǔ)言程序員對(duì)它們的訪問(wèn)受到限制,但可以將它們用于快速暫存。 可以使用MOV、CMP和ADD指令對(duì)高寄存器操作。,2.6.2 Thumb狀態(tài)下的寄存器組織,2.6.2 Thumb狀態(tài)下的寄存器組織,ARM狀態(tài)和Thumb狀態(tài)之間寄存器的關(guān)系 Thumb狀態(tài)R0R7與ARM狀態(tài)R0R7相同; Thumb狀態(tài)CPSR和SPSR與ARM狀態(tài)CPSR和SPSR相同; Thumb狀態(tài)SP映射到ARM狀態(tài)R13; Thumb狀態(tài)LR映射到ARM狀態(tài)R14; Thumb狀態(tài)PC映射到ARM狀態(tài)PC(R15)。,Thumb狀態(tài)寄存器在ARM狀態(tài)寄存器上的映射,低
45、寄存器,高寄存器,程序狀態(tài)寄存器CPSR(1)+SPSR(5),CPSR反映了當(dāng)前處理器的狀態(tài): 個(gè)條件代碼標(biāo)志; 2個(gè)中斷控制位; 5個(gè)對(duì)當(dāng)前處理器模式進(jìn)行編碼的位; 1個(gè)指示當(dāng)前執(zhí)行指令的工作狀態(tài)位; 保留位。,SPSR:備份程序狀態(tài)字,保存異常事件發(fā) 生之前的CPSR,每個(gè)異常模式帶有一個(gè)備份程序狀態(tài)寄存器,用于保存在異常事件發(fā)生之前的CPSR;CPSR和SPSR通過(guò)特殊指令進(jìn)行訪問(wèn)。,2.6.3 程序狀態(tài)寄存器,條件代碼標(biāo)志,保留,控制位,溢出標(biāo)志,進(jìn)位或借位擴(kuò)展,零,負(fù)或小于,IRQ禁止,FIQ禁止,狀態(tài)位,模式位,N,Z,C,V,I,T,F,CPSR寄存器的格式,大多數(shù)“數(shù)值處理指
46、令”可以選擇是否影響條件代碼標(biāo)志位(指令帶S后綴);但有些指令執(zhí)行總是影響條件代碼標(biāo)志。 所有ARM指令都可按條件來(lái)執(zhí)行,而Thumb指令中只有分支指令可按條件執(zhí)行。,運(yùn)算結(jié)果的最高位反映在該標(biāo)志位。對(duì)于有符號(hào)二進(jìn)制補(bǔ)碼,結(jié)果為負(fù)數(shù)時(shí)N=1,結(jié)果為正數(shù)或零時(shí)N=0;,指令結(jié)果為0時(shí)Z=1(表示比較結(jié)果“相等”),否則Z=0;,當(dāng)進(jìn)行加法運(yùn)算,并且最高位產(chǎn)生進(jìn)位時(shí)C=1,否則C=0。 當(dāng)進(jìn)行減法運(yùn)算,并且最高位產(chǎn)生借位時(shí)C=0,否則C=1。 對(duì)于移位操作指令,C為從最高位最后移出的值,其它指令C通常不變;,當(dāng)進(jìn)行加法/減法運(yùn)算,并且發(fā)生有符號(hào)溢出時(shí)V=1,否則V=0,其它指令V通常不變。,保留位被保留將來(lái)使用。為了提高程序的可移植性,當(dāng)改變CPSR標(biāo)志和控制位時(shí),請(qǐng)不要改變這些保留位。另外,請(qǐng)確保您程序的運(yùn)行不受保留位的值影響,因?yàn)閷?lái)的處理器可能會(huì)將這些位設(shè)置為1或者0。,2.6.3 程序狀態(tài)寄存器,CPSR模式位設(shè)置表,注意:不是所有模式位的組合都定義了有效的處理器模式,
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年中國(guó)小螺絲市場(chǎng)調(diào)查研究報(bào)告
- 2025年中國(guó)光控端子收料機(jī)市場(chǎng)調(diào)查研究報(bào)告
- 2025至2031年中國(guó)植物導(dǎo)水率高壓測(cè)量計(jì)行業(yè)投資前景及策略咨詢研究報(bào)告
- 2025至2030年中國(guó)馬蹄片數(shù)據(jù)監(jiān)測(cè)研究報(bào)告
- 2025至2030年中國(guó)里子面料數(shù)據(jù)監(jiān)測(cè)研究報(bào)告
- 2025至2030年中國(guó)多功能等離子焊機(jī)數(shù)據(jù)監(jiān)測(cè)研究報(bào)告
- 2025至2030年中國(guó)塑料智力玩具數(shù)據(jù)監(jiān)測(cè)研究報(bào)告
- 二零二五個(gè)人向金融機(jī)構(gòu)借款合同終止條件合同模板2篇
- 二零二五年度個(gè)人現(xiàn)代農(nóng)業(yè)項(xiàng)目股份轉(zhuǎn)讓合同范本2篇
- 二零二五版宣傳費(fèi)用結(jié)算與審計(jì)合同范本2篇
- 道路瀝青工程施工方案
- 2025年度正規(guī)離婚協(xié)議書(shū)電子版下載服務(wù)
- 《田口方法的導(dǎo)入》課件
- 春節(jié)后安全生產(chǎn)開(kāi)工第一課
- 2025光伏組件清洗合同
- 內(nèi)陸?zhàn)B殖與水產(chǎn)品市場(chǎng)營(yíng)銷(xiāo)策略考核試卷
- 電力電纜工程施工組織設(shè)計(jì)
- 2024年重慶市中考數(shù)學(xué)試題B卷含答案
- 醫(yī)生給病人免責(zé)協(xié)議書(shū)(2篇)
- 票據(jù)業(yè)務(wù)居間合同模板
- 承包鋼板水泥庫(kù)合同范本(2篇)
評(píng)論
0/150
提交評(píng)論