嵌入式系統(tǒng)原理與應(yīng)用 第3版 課件 第1、2章 嵌入式系統(tǒng)概述、ARM處理器體系結(jié)構(gòu)_第1頁(yè)
嵌入式系統(tǒng)原理與應(yīng)用 第3版 課件 第1、2章 嵌入式系統(tǒng)概述、ARM處理器體系結(jié)構(gòu)_第2頁(yè)
嵌入式系統(tǒng)原理與應(yīng)用 第3版 課件 第1、2章 嵌入式系統(tǒng)概述、ARM處理器體系結(jié)構(gòu)_第3頁(yè)
嵌入式系統(tǒng)原理與應(yīng)用 第3版 課件 第1、2章 嵌入式系統(tǒng)概述、ARM處理器體系結(jié)構(gòu)_第4頁(yè)
嵌入式系統(tǒng)原理與應(yīng)用 第3版 課件 第1、2章 嵌入式系統(tǒng)概述、ARM處理器體系結(jié)構(gòu)_第5頁(yè)
已閱讀5頁(yè),還剩102頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1第1章嵌入式系統(tǒng)概述21.1嵌入式系統(tǒng)的概念與組成1.1.1嵌入式系統(tǒng)的定義1.定義定義①:根據(jù)IEEE(國(guó)際電氣和電子工程師協(xié)會(huì))的定義,嵌入式系統(tǒng)是“控制、監(jiān)視或者輔助設(shè)備、機(jī)器和車(chē)間運(yùn)行的裝置”。定義②:目前國(guó)內(nèi)一個(gè)普遍被認(rèn)同的定義是:以應(yīng)用為中心、以計(jì)算機(jī)技術(shù)為基礎(chǔ),軟件硬件可裁剪,適應(yīng)應(yīng)用系統(tǒng)對(duì)功能、可靠性、成本、體積、功耗嚴(yán)格要求的專(zhuān)用計(jì)算機(jī)系統(tǒng)。定義③:可以這樣認(rèn)為,嵌入式系統(tǒng)是一種專(zhuān)用的計(jì)算機(jī)系統(tǒng),作為裝置或設(shè)備的一部分。3嵌入式系統(tǒng)的概念和組成(續(xù))2.嵌入式系統(tǒng)的三要素“嵌入性”、“專(zhuān)用性”與“計(jì)算機(jī)系統(tǒng)”是嵌入式系統(tǒng)的三個(gè)基本要素,對(duì)象系統(tǒng)則是指嵌入式系統(tǒng)所嵌入的宿主系統(tǒng)。3.組成嵌入式系統(tǒng)一般由嵌入式微處理器、外圍硬件設(shè)備、嵌入式操作系統(tǒng)以及用戶(hù)應(yīng)用程序4個(gè)部分組成。41.1.2嵌入式系統(tǒng)應(yīng)用過(guò)程和發(fā)展趨勢(shì)

1.嵌入式系統(tǒng)應(yīng)用過(guò)程的4個(gè)階段(1)無(wú)操作系統(tǒng)階段MCS-51系列單片機(jī)是最早應(yīng)用的嵌入式系統(tǒng)之一,單片機(jī)作為各類(lèi)工業(yè)控制和飛機(jī)、導(dǎo)彈等武器裝備中的微控制器,用來(lái)執(zhí)行一些單線程的程序,完成監(jiān)測(cè)、伺服和設(shè)備指示等多種功能,一般沒(méi)有操作系統(tǒng)的支持,程序設(shè)計(jì)采用匯編語(yǔ)言或C51語(yǔ)言。采用匯編語(yǔ)言編寫(xiě)的程序具有效率高,占用內(nèi)存少,實(shí)時(shí)性強(qiáng)且控制時(shí)間精準(zhǔn)等特點(diǎn)。缺點(diǎn)是對(duì)技術(shù)人員的要求高,開(kāi)發(fā)周期相對(duì)長(zhǎng)一些?,F(xiàn)在使用意法半導(dǎo)體(ST)公司,基于ARM9的ARMCortex-M3內(nèi)核產(chǎn)品,STM32微處理器芯片開(kāi)發(fā)的實(shí)時(shí)控制設(shè)備,大部分都是在無(wú)操作系統(tǒng)的情況下使用C語(yǔ)言開(kāi)發(fā)的,它比在有操作系統(tǒng)下開(kāi)發(fā)有更高的運(yùn)行效率。而且目前開(kāi)發(fā)要求具有強(qiáng)實(shí)時(shí)性的裝備也是在裸機(jī)情況下開(kāi)發(fā)的。5(續(xù))(2)簡(jiǎn)單操作系統(tǒng)階段20世紀(jì)80年代,出現(xiàn)了大量具有高可靠性、低功耗的嵌入式CPU(如PowerPC等),芯片上集成有微處理器、I/O接口、串行接口及RAM、ROM等部件,面向I/O設(shè)計(jì)的微控制器在嵌入式系統(tǒng)設(shè)計(jì)應(yīng)用。一些簡(jiǎn)單的嵌入式操作系統(tǒng)開(kāi)始出現(xiàn)并得到迅速發(fā)展,程序設(shè)計(jì)人員也開(kāi)始基于一些簡(jiǎn)單的“操作系統(tǒng)”開(kāi)發(fā)嵌入式應(yīng)用軟件。此時(shí)的嵌入式操作系統(tǒng)雖然還比較簡(jiǎn)單,但已經(jīng)初步具有了一定的兼容性和擴(kuò)展性,內(nèi)核精巧且效率高,大大縮短了開(kāi)發(fā)周期,提高了開(kāi)發(fā)效率。典型代表是uc/os。6(3)實(shí)時(shí)操作系統(tǒng)階段20世紀(jì)90年代,面對(duì)分布控制、柔性制造、數(shù)字化通信和信息家電等巨大市場(chǎng)的需求,嵌入式系統(tǒng)飛速發(fā)展。隨著硬件實(shí)時(shí)性要求的提高,嵌入式系統(tǒng)的軟件規(guī)模也不斷擴(kuò)大,實(shí)時(shí)多任務(wù)操作系統(tǒng)RTOS,從而使應(yīng)用軟件的開(kāi)發(fā)變得更加簡(jiǎn)單。7(4)面向Internet階段進(jìn)入21世紀(jì),Internet技術(shù)與信息家電、工業(yè)控制技術(shù)等的結(jié)合日益緊密,嵌入式技術(shù)與Internet技術(shù)的結(jié)合正在推動(dòng)著嵌入式系統(tǒng)的飛速發(fā)展。2.嵌入式系統(tǒng)的發(fā)展趨勢(shì)面對(duì)嵌入式技術(shù)與Internet技術(shù)的結(jié)合,嵌入式系統(tǒng)的研究和應(yīng)用在飛速發(fā)展。8(1)新的微處理器層出不窮,精簡(jiǎn)系統(tǒng)內(nèi)核,優(yōu)化關(guān)鍵算法,降低功耗和軟硬件成本。提供更加友好的多媒體人機(jī)交互界面。(2)Linux、WindowsCE、PalmOS等嵌入式操作系統(tǒng)迅速發(fā)展。嵌入式操作系統(tǒng)自身結(jié)構(gòu)的設(shè)計(jì)更加便于移植,具有源代碼開(kāi)放、系統(tǒng)內(nèi)核小、執(zhí)行效率高、網(wǎng)絡(luò)結(jié)構(gòu)完整等特點(diǎn),能夠在短時(shí)間內(nèi)支持更多的微處理器。9(3)嵌入式系統(tǒng)的開(kāi)發(fā)成了一項(xiàng)系統(tǒng)工程,開(kāi)發(fā)廠商不僅要提供嵌入式軟硬件系統(tǒng)本身,同時(shí)還要提供強(qiáng)大的硬件開(kāi)發(fā)工具和軟件支持包。10

1.1.3嵌入式系統(tǒng)的組成

嵌入式系統(tǒng)的硬件組成主要包含有嵌入式處理器、外圍設(shè)備接口和執(zhí)行裝置(被控對(duì)象)等組成。嵌入式系統(tǒng)的軟件組成,對(duì)于裸機(jī)開(kāi)發(fā)來(lái)講主要有以下內(nèi)容:嵌入式處理器芯片內(nèi)部三個(gè)總線頻率的設(shè)置、存儲(chǔ)器配置的設(shè)置;7種異常模式堆棧指針的設(shè)置;中斷指針的傳遞程序;為C語(yǔ)言的運(yùn)行創(chuàng)建環(huán)境;I/O端口的配置與控制程序、應(yīng)用程序等。以上前5個(gè)部分也是Bootloader的主要內(nèi)容。111.1.3嵌入式系統(tǒng)的組成(續(xù))對(duì)于基于操作系統(tǒng)的嵌入式軟件開(kāi)發(fā),主要包括Bootloader啟動(dòng)引導(dǎo)程序的移植;操作系統(tǒng)內(nèi)核的移植;文件系統(tǒng)的移植;I/O設(shè)備驅(qū)動(dòng)程序的編寫(xiě)以及加載;圖形用戶(hù)接口程序設(shè)計(jì);應(yīng)用程序的設(shè)計(jì)等。嵌入式計(jì)算機(jī)系統(tǒng)是整個(gè)嵌入式系統(tǒng)的核心,可以分為硬件層、中間層、系統(tǒng)軟件層和應(yīng)用軟件層。執(zhí)行裝置接受嵌入式計(jì)算機(jī)系統(tǒng)發(fā)出的控制命令,執(zhí)行所規(guī)定的操作或任務(wù)。121.2嵌入式微處理器的結(jié)構(gòu)與類(lèi)型嵌入式處理器是隱藏在控制設(shè)備或裝置中,完成接收現(xiàn)場(chǎng)數(shù)據(jù),進(jìn)行數(shù)據(jù)處理等,并向執(zhí)行裝置發(fā)出控制命令的計(jì)算機(jī)系統(tǒng)。(1)芯片結(jié)構(gòu)的變化及嵌入式概念的形成1971年Inter公司推出了Inter4004、1974年推出了Inter8080,1976年zilog制造了與8080兼容的CPUz-80,在這之前的處理器(也可稱(chēng)為CPU)所構(gòu)造的是單板微型計(jì)算機(jī)(簡(jiǎn)稱(chēng)單板機(jī))系統(tǒng),應(yīng)用在控制設(shè)備中。這些都是嵌入式處理器的前身。之后出現(xiàn)了單片微型計(jì)算機(jī),簡(jiǎn)稱(chēng)單片機(jī)。例如MCS51系列8位單片機(jī)是Inter公司在1976年的9月份推出的,它內(nèi)部不但集成了CPU,還集成了存儲(chǔ)器和I/O接口等計(jì)算機(jī)的元素,這時(shí)嵌入式系統(tǒng)的概念還不是熱點(diǎn)的技術(shù)名詞。一直到上世紀(jì)90年代后期,32位ARM處理器的廣泛使用,嵌入式系統(tǒng)的概念才被廣大技術(shù)人員所熟知?,F(xiàn)在人們把具有計(jì)算機(jī)基本組成元素的單片微型集成電路芯片,從MCS51系列單片機(jī)開(kāi)始到目前的32位ARM微處理器統(tǒng)稱(chēng)為嵌入式系統(tǒng),但在技術(shù)人員的心中,嵌入式系統(tǒng)主要指的是32位ARM微處理器單片機(jī)。13(2)嵌入式芯片的類(lèi)型嵌入式微處理器按字長(zhǎng)寬度可分為8位、16位、32位和64位。一般把16位及以下的稱(chēng)為嵌入式微控制器(EmbeddedMicrocontroller),32位及以上的稱(chēng)為嵌入式微處理器。嵌入式微處理器內(nèi)部將CPU、ROM、RAM及I/O等部件集成到同一個(gè)芯片上,稱(chēng)為單芯片微控制器(SingleChipMicrocontroller)。根據(jù)用途,可以分為嵌入式微控制器、嵌入式微處理器、嵌入式DSP處理器、嵌入式片上系統(tǒng)、雙核或多核處理器等類(lèi)型。14151.2.1嵌入式微控制器嵌入式微控制器MCU(MicroControllerUnit)又稱(chēng)為單片機(jī),芯片內(nèi)部集成ROM、RAM、總線、總線邏輯、定時(shí)/計(jì)數(shù)器、看門(mén)狗、I/O、串行口、脈寬調(diào)制輸出(PWM)、A/D、D/A、Flash、EEPROM等各種必要功能和外設(shè)。嵌入式微控制器具有單片化、體積小、功耗和成本低,可靠性高等特點(diǎn),約占嵌入式系統(tǒng)市場(chǎng)份額的70%。

它的代表芯片就是MCS51系列單片機(jī),主要使用其匯編語(yǔ)言或C語(yǔ)言進(jìn)行裸機(jī)開(kāi)發(fā)。161.2.2DSP處理器

嵌入式DSP處理器是專(zhuān)門(mén)用于信號(hào)處理方面的處理器,芯片內(nèi)部采用程序和數(shù)據(jù)分開(kāi)存儲(chǔ)和傳輸?shù)墓鸾Y(jié)構(gòu),具有專(zhuān)門(mén)硬件乘法器,采用流水線操作,提供特殊的DSP指令,可用來(lái)快速地實(shí)現(xiàn)各種數(shù)字信號(hào)處理算法,使其處理速度比其它最快的CPU還快10倍以上。目前DSP芯片在機(jī)械電子的控制方面運(yùn)用廣泛,如在變頻器、PLC中作為它的控制核心。它的開(kāi)發(fā)基本也是在裸機(jī)中進(jìn)行,主要使用C語(yǔ)言進(jìn)行裸機(jī)程序設(shè)計(jì)。171.2.3嵌入式微處理器嵌入式微處理器由通用計(jì)算機(jī)中的CPU發(fā)展而來(lái),嵌入式微處理器只保留和嵌入式應(yīng)用緊密相關(guān)的功能硬件,去除其它的冗余功能部分,以最低的功耗和資源實(shí)現(xiàn)嵌入式應(yīng)用的特殊要求。通常嵌入式微處理器把CPU、ROM、RAM及I/O等做到同一個(gè)芯片上。32位微處理器采用32位的地址和數(shù)據(jù)總線,其地址空間達(dá)到了232=4GB。目前主流的32位嵌入式微處理器系列主要有ARM系列、MIPS系列、PowerPC系列,在這里進(jìn)行簡(jiǎn)要介紹。屬于這些系列的嵌入式微處理器產(chǎn)品很多,有千種以上。181.嵌入式ARM系列ARM(AdvancedRISCMachine)公司的ARM微處理器體系結(jié)構(gòu)目前被公認(rèn)為是嵌入式應(yīng)用領(lǐng)域領(lǐng)先的32位嵌入式RISC微處理器結(jié)構(gòu)。ARM體系結(jié)構(gòu)目前發(fā)展并定義了7種不同的版本。從版本v1到版本v7,ARM體系的指令集功能不斷擴(kuò)大。ARM處理器系列中的各種處理器,雖然在實(shí)現(xiàn)技術(shù)、應(yīng)用場(chǎng)合和性能方面都不相同,但只要支持相同的ARM體系版本,基于它們的應(yīng)用軟件是兼容的。目前,70%的移動(dòng)電話、手持PC和機(jī)頂盒等都已采用了ARM處理器,許多一流的芯片廠商都是ARM的授權(quán)用戶(hù),如Intel、Samsung、TI、FreeScale、ST等公司。192.嵌入式MIPS系列美國(guó)斯坦福大學(xué)的Hennessy教授領(lǐng)導(dǎo)的研究小組研制的無(wú)互鎖流水級(jí)的微處理器MIPS(MicroprocessorwithoutInterlockedPipedStages)是世界上很流行的一種RISC處理器,其機(jī)制是盡量利用軟件辦法避免流水線中的數(shù)據(jù)相關(guān)問(wèn)題。從20世紀(jì)80年代初期MIPS處理器發(fā)明到現(xiàn)在的這20多年里,MIPS處理器以其高性能的處理能力被廣泛應(yīng)用于寬帶接入、路由器、調(diào)制解調(diào)設(shè)備、電視、游戲、打印機(jī)、DVD播放等廣泛的領(lǐng)域。203.嵌入式PowerPC系列PowerPC是Freescale(原Motorola)公司的產(chǎn)品。PowerPC的RISC處理器采用了超標(biāo)量處理器設(shè)計(jì)和調(diào)整內(nèi)存緩沖器,修改了指令處理設(shè)計(jì),它完成一個(gè)操作所需的指令數(shù)比復(fù)雜指令集計(jì)算機(jī)CISC(ComplexReducedInstructionSetComputer)結(jié)構(gòu)的處理器要多,但完成操作的總時(shí)間卻減少了。211.2.4嵌入式片上系統(tǒng)嵌入式片上系統(tǒng)SOC(SystemOnChip)最大的特點(diǎn)是成功實(shí)現(xiàn)了軟硬件無(wú)縫結(jié)合,直接在處理器片內(nèi)嵌入操作系統(tǒng)的代碼模塊,而且具有極高的綜合性,在一個(gè)芯片內(nèi)部運(yùn)用超高速硬件描述語(yǔ)言VHDL等,即可實(shí)現(xiàn)一個(gè)復(fù)雜的系統(tǒng)。與傳統(tǒng)的系統(tǒng)設(shè)計(jì)不同,用戶(hù)不需要繪制龐大復(fù)雜的電路板,一點(diǎn)點(diǎn)地連接焊制,只需要使用精確的語(yǔ)言,綜合時(shí)序設(shè)計(jì)直接在器件庫(kù)中調(diào)用各種通用處理器的標(biāo)準(zhǔn),然后通過(guò)仿真之后就可以直接交付芯片廠商進(jìn)行生產(chǎn),設(shè)計(jì)生產(chǎn)效率高。

221.3計(jì)算機(jī)組成、體系結(jié)構(gòu)與嵌入式處理器(1)計(jì)算機(jī)組成的主要內(nèi)容計(jì)算機(jī)組成主要講述的是,計(jì)算機(jī)的硬件組成部件以及實(shí)現(xiàn)這些硬件功能所使用的材料、實(shí)現(xiàn)的理論與技術(shù)方法,以及各組成部分的邏輯關(guān)系,它決定著計(jì)算機(jī)的性能和功能。例如目前正在使用的現(xiàn)有計(jì)算機(jī)是由電子來(lái)傳遞和處理信息。電場(chǎng)在導(dǎo)線中傳播的速度雖然比我們看到的任何運(yùn)載工具運(yùn)動(dòng)的速度都快,但是,從發(fā)展高速率計(jì)算機(jī)來(lái)說(shuō),采用電子做傳輸信息載體還不能滿(mǎn)足快的要求,提高計(jì)算機(jī)運(yùn)算速度也明顯表現(xiàn)出它的能力是有限的。而光子計(jì)算機(jī)以光子作為傳遞信息的載體,光互連代替導(dǎo)線互連,以光硬件代替電子硬件,以光運(yùn)算代替電運(yùn)算,利用激光來(lái)傳送信號(hào),并由光導(dǎo)纖維與各種光學(xué)元件等構(gòu)成集成光路,從而進(jìn)行數(shù)據(jù)運(yùn)算、傳輸和存儲(chǔ)。在光子計(jì)算機(jī)中,不同波長(zhǎng)、頻率、偏振態(tài)及相位的光代表不同的數(shù)據(jù),這遠(yuǎn)勝于電子計(jì)算機(jī)中通過(guò)電子“0”、“1”狀態(tài)變化進(jìn)行的二進(jìn)制運(yùn)算,可以對(duì)復(fù)雜度高、計(jì)算量大的任務(wù)實(shí)現(xiàn)快速的并行處理。光子計(jì)算機(jī)的主板中不存在電磁干擾,使信道的傳輸速率更快,將使運(yùn)算速度遠(yuǎn)遠(yuǎn)的高于現(xiàn)有的計(jì)算機(jī)速度。目前正在研究中的計(jì)算機(jī)還有量子計(jì)算機(jī)、超導(dǎo)計(jì)算機(jī)和多值計(jì)算機(jī)等。2324(2)計(jì)算機(jī)體系結(jié)構(gòu)的主要內(nèi)容計(jì)算機(jī)體系結(jié)構(gòu)講述的是,主要指計(jì)算機(jī)的系統(tǒng)化設(shè)計(jì)和構(gòu)造,不同的計(jì)算機(jī)體系結(jié)構(gòu)適用于不同的需求或應(yīng)用。從傳統(tǒng)意義指令界面上來(lái)看基本劃分成兩大類(lèi):現(xiàn)代計(jì)算機(jī)的兩種主要體系結(jié)構(gòu)是復(fù)雜指令集計(jì)算機(jī)系統(tǒng)CISC體系(如X86芯片)和簡(jiǎn)化指令集計(jì)算機(jī)系統(tǒng)RISC體系(如ARM芯片)。嵌入式處理器是X86個(gè)人計(jì)算機(jī)PC體系結(jié)構(gòu),結(jié)合實(shí)時(shí)控制系統(tǒng)的要求和簡(jiǎn)化指令集計(jì)算機(jī)技術(shù)生產(chǎn)的滿(mǎn)足實(shí)時(shí)控制系統(tǒng)應(yīng)用的計(jì)算機(jī)體系結(jié)構(gòu)。以下章節(jié)將介紹與其關(guān)聯(lián)的有關(guān)概念。251.3.1馮諾·依曼結(jié)構(gòu)與哈佛結(jié)構(gòu)1.馮·諾依曼(VonNeumann)結(jié)構(gòu)馮·諾依曼結(jié)構(gòu)的計(jì)算機(jī)由CPU和存儲(chǔ)器構(gòu)成,其程序和數(shù)據(jù)共用一個(gè)存儲(chǔ)空間,程序指令存儲(chǔ)地址和數(shù)據(jù)存儲(chǔ)地址指向同一個(gè)存儲(chǔ)器的不同物理位置;采用單一的地址及數(shù)據(jù)總線,程序指令和數(shù)據(jù)的寬度相同。程序計(jì)數(shù)器(PC)是CPU內(nèi)部指示指令和數(shù)據(jù)的存儲(chǔ)位置的寄存器。目前使用馮.諾依曼結(jié)構(gòu)的CPU和微控制器品種有很多,例如Intel公司的X86系列及其他CPU,ARM公司的ARM7、MIPS公司的MIPS處理器等。262.哈佛(Harvard)結(jié)構(gòu)哈佛結(jié)構(gòu)的主要特點(diǎn)是將程序和數(shù)據(jù)存儲(chǔ)在不同的存儲(chǔ)空間中,即程序存儲(chǔ)器和數(shù)據(jù)存儲(chǔ)器是兩個(gè)相互獨(dú)立的存儲(chǔ)器,每個(gè)存儲(chǔ)器獨(dú)立編址、獨(dú)立訪問(wèn)。系統(tǒng)中具有程序的數(shù)據(jù)總線與地址總線,數(shù)據(jù)的數(shù)據(jù)總線與地址總線。這種分離的程序總線和數(shù)據(jù)總線可允許在一個(gè)機(jī)器周期內(nèi)同時(shí)獲取指令字和操作數(shù),從而提高執(zhí)行速度,提高數(shù)據(jù)的吞吐率。程序和數(shù)據(jù)存儲(chǔ)器在兩個(gè)分開(kāi)的物理空間中,因此取指和執(zhí)行能完全重疊,具有較高的執(zhí)行效率。目前使用哈佛結(jié)構(gòu)的CPU和微控制器品種有很多,除DSP處理器外,還有摩托羅拉公司的MC68系列、Zilog公司的Z8系列、ATMEL公司的AVR系列和ARM公司的ARM9、ARM10和ARM11等。271.3.2精簡(jiǎn)指令計(jì)算機(jī)RISC1.2/8規(guī)律早期的計(jì)算機(jī)采用復(fù)雜指令集計(jì)算機(jī)CISC體系。采用CISC體系結(jié)構(gòu)的計(jì)算機(jī)各種指令的使用頻率相差懸殊,統(tǒng)計(jì)表明,大概有20%比較簡(jiǎn)單的指令被反復(fù)使用,使用量約占整個(gè)程序的80%;而有80%左右的指令則很少使用,其使用量約占整個(gè)程序的20%,即指令的2/8規(guī)律。2.RISC計(jì)算機(jī)精簡(jiǎn)指令集計(jì)算機(jī)RISC體系結(jié)構(gòu)是20世紀(jì)80年代提出來(lái)的。目前Intel等公司都在研究和發(fā)展RISC技術(shù),RISC已經(jīng)成為計(jì)算機(jī)發(fā)展不可逆轉(zhuǎn)的趨勢(shì)。283.RISC的特點(diǎn)RISC是在CISC的基礎(chǔ)上產(chǎn)生并發(fā)展起來(lái)的,RISC的著眼點(diǎn)不是簡(jiǎn)單地放在簡(jiǎn)化指令系統(tǒng)上,而是通過(guò)簡(jiǎn)化指令系統(tǒng)使計(jì)算機(jī)的結(jié)構(gòu)更加簡(jiǎn)單合理,從而提高運(yùn)算效率。在RISC中,優(yōu)先選取使用頻率最高的、很有用但不復(fù)雜的指令,避免使用復(fù)雜指令。固定指令長(zhǎng)度,減少指令格式和尋址方式種類(lèi)。指令之間各字段的劃分比較一致,各字段的功能也比較規(guī)整。采用Load/Store指令訪問(wèn)存儲(chǔ)器,其余指令的操作都在寄存器之間進(jìn)行。增加CPU中通用寄存器數(shù)量,算術(shù)邏輯運(yùn)算指令的操作數(shù)都在通用寄存器中存取。大部分指令控制在一個(gè)或小于一個(gè)機(jī)器周期內(nèi)完成。291.3.3流水線計(jì)算機(jī)1.流水線的基本概念

簡(jiǎn)化指令計(jì)算機(jī)RISC為微處理器的指令流水線執(zhí)行提供了先決條件。流水線技術(shù)應(yīng)用于計(jì)算機(jī)體系結(jié)構(gòu)的各個(gè)方面,流水線技術(shù)的基本思想是將一個(gè)重復(fù)的時(shí)序分解成若干個(gè)子過(guò)程,而每一個(gè)子過(guò)程都可有效地在其專(zhuān)用功能段上與其他子過(guò)程同時(shí)執(zhí)行。

流水線結(jié)構(gòu)的類(lèi)型眾多。指令流水線就是將一條指令分解成一連串執(zhí)行的子過(guò)程,例如把指令的執(zhí)行過(guò)程細(xì)分為取指令、指令譯碼、取操作數(shù)和執(zhí)行4個(gè)子過(guò)程,每個(gè)過(guò)程的執(zhí)行時(shí)間相同。30圖1-1五級(jí)流水線指令執(zhí)行示意圖312.流水線處理機(jī)的主要指標(biāo)⑴吞吐率在單位時(shí)間內(nèi),流水線處理機(jī)流出的結(jié)果數(shù)稱(chēng)為吞吐率。對(duì)指令而言就是單位時(shí)間里執(zhí)行的指令數(shù)。如果流水線的子過(guò)程所用時(shí)間不一樣長(zhǎng),則吞吐率p應(yīng)為最長(zhǎng)子過(guò)程的倒數(shù),即:P=1/max{Δt0,Δt1,…Δtm}⑵建立時(shí)間流水線開(kāi)始工作,須經(jīng)過(guò)一定時(shí)間才能達(dá)到最大吞吐率,這就是建立時(shí)間。若m個(gè)子過(guò)程所用時(shí)間一樣,均為t0,則建立時(shí)間T0=mΔt0。321.3.5嵌入式微處理器的信息存儲(chǔ)方式1.大端和小端存儲(chǔ)方式大多數(shù)計(jì)算機(jī)使用8位(bit)的數(shù)據(jù)塊作為最小的可尋址存儲(chǔ)器單位,稱(chēng)為一個(gè)字節(jié)。存儲(chǔ)器的每一個(gè)字節(jié)都用一個(gè)唯一的地址(address)來(lái)標(biāo)識(shí)。所有可能地址的集合稱(chēng)為存儲(chǔ)器空間。對(duì)于軟件而言,它將存儲(chǔ)器看作是一個(gè)大的字節(jié)數(shù)組,稱(chēng)為虛擬存儲(chǔ)器。在實(shí)際應(yīng)用中,虛擬存儲(chǔ)器可以劃分成不同單元,用來(lái)存放程序、指令和數(shù)據(jù)等信息。例如在C語(yǔ)言中定義的整型數(shù)據(jù)變量:intx,表示變量x在內(nèi)存中占有4字節(jié)等。33小端方式與大端方式對(duì)于一個(gè)多字節(jié)類(lèi)型的數(shù)據(jù),在存儲(chǔ)器中有兩種存放方式:小端方式與大端方式。小端方式:是低字節(jié)數(shù)據(jù)存放在內(nèi)存低地址位置處,高字節(jié)數(shù)據(jù)存放在內(nèi)存高地址位置處,稱(chēng)為小端字節(jié)順序存儲(chǔ)法或簡(jiǎn)稱(chēng)小端方式。大端方式:是高字節(jié)數(shù)據(jù)存放在低地址位置處,低字節(jié)數(shù)據(jù)存放在高地址位置處,稱(chēng)為大端字節(jié)順序存儲(chǔ)法或簡(jiǎn)稱(chēng)大端方式。34例如:對(duì)于0x12345678數(shù)據(jù)來(lái)講,小端與大端的存儲(chǔ)格式如下:35關(guān)于小端與大端的技術(shù)問(wèn)題采用大端存儲(chǔ)方式還是小端存儲(chǔ)方式,各處理器廠商的立場(chǎng)和習(xí)慣不同,并不存在技術(shù)原因。Intel公司X86系列微處理器都采用小端存儲(chǔ)法,而IBM、Motorola和SunMicrosystems公司的大多數(shù)微處理器采用大端存儲(chǔ)法。此外,還有一些微處理器,如ARM、MIPS和Motorola的PowerPC等,可以通過(guò)芯片上電啟動(dòng)時(shí)確定的字節(jié)存儲(chǔ)順序規(guī)則,來(lái)選擇存儲(chǔ)模式。另外,是小端存儲(chǔ)方式還是小端存儲(chǔ)方式,不但可以由計(jì)算機(jī)系統(tǒng)的硬件決定,也可以由工具語(yǔ)言的編譯器來(lái)決定。362.可移植性問(wèn)題當(dāng)在不同存儲(chǔ)順序的微處理器間進(jìn)行程序移植時(shí),要特別注意存儲(chǔ)模式的影響。把從軟件得到的二進(jìn)制數(shù)據(jù)寫(xiě)成一般的數(shù)據(jù)格式往往會(huì)涉及到存儲(chǔ)順序的問(wèn)題。在多臺(tái)不同存儲(chǔ)順序的主機(jī)之間共享信息可以有兩種方式:一種是以單一存儲(chǔ)方式共享數(shù)據(jù),一種是允許主機(jī)以不同的存儲(chǔ)方式共享數(shù)據(jù)。使用單一存儲(chǔ)順序只要解釋一種格式,解碼簡(jiǎn)單。使用多種存儲(chǔ)方式不需要對(duì)數(shù)據(jù)的原順序進(jìn)行轉(zhuǎn)化,使得編碼容易,同時(shí)當(dāng)編碼器和解碼器采用同一種存儲(chǔ)方式時(shí)因?yàn)椴恍枰儞Q字節(jié)順序,也能提高通信效率。373.網(wǎng)絡(luò)信道中的字節(jié)順序問(wèn)題在網(wǎng)絡(luò)通信中,Internet協(xié)議(即IP協(xié)議)定義了標(biāo)準(zhǔn)的網(wǎng)絡(luò)字節(jié)順序。該字節(jié)順序被用于所有設(shè)計(jì)使用在IP協(xié)議上的數(shù)據(jù)包、高級(jí)協(xié)議和文件格式上。很多網(wǎng)絡(luò)設(shè)備也存在存儲(chǔ)順序問(wèn)題:即字節(jié)中的位采用大端法(最重要的位優(yōu)先)或小端法(最不重要的位優(yōu)先)發(fā)送。這取決于OSI模型最底層的數(shù)據(jù)鏈路層。在以太網(wǎng)絡(luò)的網(wǎng)卡中,字節(jié)數(shù)據(jù)的傳輸順序同書(shū)寫(xiě)順序,相當(dāng)于大端方式,位數(shù)據(jù)高位在前,低位在后。381.4嵌入式應(yīng)用系統(tǒng)的開(kāi)發(fā)流程嵌入式系統(tǒng)開(kāi)發(fā)分為硬件開(kāi)發(fā)部分和軟件開(kāi)發(fā)部分。應(yīng)用系統(tǒng)的開(kāi)發(fā)一般都采用“宿主機(jī)/目標(biāo)板”的開(kāi)發(fā)模式,即利用宿主機(jī)(PC機(jī))上豐富的軟硬件資源、良好的集成開(kāi)發(fā)環(huán)境和調(diào)試工具來(lái)調(diào)試硬件和目標(biāo)板上的程序,然后通過(guò)交叉編譯環(huán)境生成目標(biāo)代碼和可執(zhí)行文件,通過(guò)JTAG(JointTestActionGroup;聯(lián)合測(cè)試行動(dòng)小組)接口/串行接口/USB接口/網(wǎng)絡(luò)接口等下載到目標(biāo)板上,利用交叉調(diào)試器監(jiān)控程序運(yùn)行,根據(jù)調(diào)試器來(lái)觀察運(yùn)行的狀態(tài),實(shí)時(shí)分析、處理軟硬件出現(xiàn)的問(wèn)題。調(diào)試完成后,將目標(biāo)程序下載到目標(biāo)板上,完成整個(gè)開(kāi)發(fā)過(guò)程。39當(dāng)前嵌入式系統(tǒng)開(kāi)發(fā)已經(jīng)逐步規(guī)范化,開(kāi)發(fā)過(guò)程主要包括用戶(hù)系統(tǒng)需求、體系結(jié)構(gòu)設(shè)計(jì)、系統(tǒng)軟硬件設(shè)計(jì)、外圍控制裝置電路設(shè)計(jì)、抗干擾設(shè)計(jì)、系統(tǒng)集成、硬件調(diào)試、軟件調(diào)試、系統(tǒng)聯(lián)合調(diào)試,系統(tǒng)最終測(cè)試,最后形成產(chǎn)品。具體描述如下:401)用戶(hù)系統(tǒng)需求分析根據(jù)用戶(hù)的需求,確定設(shè)計(jì)任務(wù)與設(shè)計(jì)目標(biāo),并提煉出系統(tǒng)設(shè)計(jì)說(shuō)明書(shū)文本,作為設(shè)計(jì)依據(jù)和驗(yàn)收標(biāo)準(zhǔn)。系統(tǒng)的需求一般分為功能性需求和非功能性需求,功能性需求是系統(tǒng)的基本功能,如輸入的開(kāi)關(guān)量個(gè)數(shù)、輸出的開(kāi)關(guān)量個(gè)數(shù)、模擬量的輸入/輸出路數(shù)、操作方式、與外部設(shè)備的連接與通信方式等;非功能需求包括系統(tǒng)的穩(wěn)定性、成本、功耗、體積和重量等。412)系統(tǒng)結(jié)構(gòu)設(shè)計(jì)描述系統(tǒng)如何實(shí)現(xiàn)所述的功能需求和非功能需求,包括對(duì)硬件、軟件和執(zhí)行裝置的功能劃分,以及系統(tǒng)軟件、硬件的選取等。有些功能即可以用硬件實(shí)現(xiàn),也可以用軟件實(shí)現(xiàn)。用硬件實(shí)現(xiàn)的特點(diǎn)是元器件費(fèi)用的投入大,但系統(tǒng)的運(yùn)行速度快;用軟件實(shí)現(xiàn),系統(tǒng)開(kāi)發(fā)的人工投入大,器件開(kāi)銷(xiāo)小,系統(tǒng)運(yùn)行的速度較慢。一個(gè)好的結(jié)構(gòu)設(shè)計(jì),是設(shè)計(jì)成功與否的關(guān)鍵所在。423)系統(tǒng)軟硬件的詳細(xì)設(shè)計(jì)圖1.2.1指令流水線處理的時(shí)空?qǐng)D為了加快產(chǎn)品的開(kāi)發(fā)速度,軟硬件的設(shè)計(jì)往往是同步進(jìn)行的。對(duì)于嵌入式系統(tǒng)的開(kāi)發(fā),硬件的開(kāi)發(fā)難度大,涉及的知識(shí)面較寬,但是它占用總開(kāi)發(fā)時(shí)間也就10%左右;軟件的開(kāi)發(fā)難度小一些,但卻占用了開(kāi)發(fā)的大部分時(shí)間,因?yàn)闆](méi)有最好,只有更好。如果要求系統(tǒng)具有較高的程序運(yùn)行效率,且復(fù)雜度不高,可以采用裸機(jī)開(kāi)發(fā),但是它的開(kāi)發(fā)周期相對(duì)長(zhǎng)一些;如果要求系統(tǒng)開(kāi)發(fā)周期短,且系統(tǒng)的復(fù)雜度高,可以在移植操作系統(tǒng)后進(jìn)行軟件開(kāi)發(fā),但是系統(tǒng)程序的運(yùn)行效率相對(duì)低一些。434)系統(tǒng)軟硬件聯(lián)合調(diào)試一般先進(jìn)行硬件、控制裝置的調(diào)試,必要時(shí)也需要控制程序的配合;然后進(jìn)行軟件的調(diào)試,先可以在宿主機(jī)上進(jìn)行軟件的仿真調(diào)試,這里主要調(diào)試一些算法或數(shù)據(jù)處理的程序的結(jié)果,最后把硬件、軟件和控制裝置集成在一起調(diào)試。實(shí)際上集成調(diào)試時(shí)并沒(méi)有嚴(yán)格的層次,發(fā)現(xiàn)哪有問(wèn)題就及時(shí)解決,不斷的完善系統(tǒng)設(shè)計(jì)存在的不足之處。445)系統(tǒng)實(shí)驗(yàn)室測(cè)試和現(xiàn)場(chǎng)測(cè)試

對(duì)設(shè)計(jì)調(diào)試好的系統(tǒng)按照系統(tǒng)確定的任務(wù)和目標(biāo)進(jìn)行逐一測(cè)試,是否滿(mǎn)足系統(tǒng)的功能要求。最后客戶(hù)進(jìn)行現(xiàn)場(chǎng)測(cè)試,檢查能否在實(shí)際的工況環(huán)境下可靠運(yùn)行,否則還要進(jìn)行硬件和軟件的修改。45第1章習(xí)題1-1簡(jiǎn)述嵌入式系統(tǒng)的定義。1-2舉例說(shuō)明嵌入式系統(tǒng)的“嵌入性”、“專(zhuān)用性”、“計(jì)算機(jī)系統(tǒng)”的基本特征。1-3簡(jiǎn)述嵌入式系統(tǒng)的發(fā)展各階段的特點(diǎn)。1-4簡(jiǎn)述嵌入式系統(tǒng)的組成。1-5簡(jiǎn)述嵌入式系統(tǒng)的類(lèi)型與特點(diǎn)。1-6簡(jiǎn)述計(jì)算機(jī)組成的基本概念。1-7簡(jiǎn)述計(jì)算機(jī)體系結(jié)構(gòu)的基本概念。。46(續(xù))1-8馮·諾依曼結(jié)構(gòu)與哈佛結(jié)構(gòu)各有什么特點(diǎn)?1-9何為2/8規(guī)律?1-10RISC架構(gòu)與CISC架構(gòu)相比有哪些優(yōu)點(diǎn)?

1-11簡(jiǎn)述流水線技術(shù)的基本概念。1-12試說(shuō)明指令流水線的執(zhí)行過(guò)程。1-13大端存儲(chǔ)法與小端存儲(chǔ)法有什么不同?1-14簡(jiǎn)述嵌入式應(yīng)用系統(tǒng)的開(kāi)發(fā)流程。47第2章ARM處理器體系結(jié)構(gòu)

482.1ARM處理器的體系結(jié)構(gòu)與特點(diǎn)ARM(AdvancedRISCMachines)公司1991年成立于英國(guó)劍橋,該公司是專(zhuān)門(mén)從事基于RISC技術(shù)芯片的設(shè)計(jì)開(kāi)發(fā),主要出售芯片設(shè)計(jì)技術(shù)的授權(quán),作為知識(shí)產(chǎn)權(quán)供應(yīng)商,本身不直接從事芯片生產(chǎn),靠轉(zhuǎn)讓設(shè)計(jì)許可由合作公司生產(chǎn)各具特色的芯片,半導(dǎo)體生產(chǎn)商從ARM公司購(gòu)買(mǎi)其設(shè)計(jì)的ARM微處理器核,根據(jù)各自不同的應(yīng)用領(lǐng)域,加入適當(dāng)?shù)耐鈬娐?,從而形成自己的ARM微處理器芯片(進(jìn)入市場(chǎng),這就是ARM公司的Chipless模式。由于全球幾十家大的半導(dǎo)體公司(包括Inter、Samsung、Motorola等)使用ARM公司的授權(quán),因此使得ARM技術(shù)開(kāi)發(fā)獲得更多的第三方開(kāi)發(fā)工具、制造和軟件的支持,又使整個(gè)系統(tǒng)的成本降低,使產(chǎn)品容易開(kāi)發(fā)進(jìn)入市場(chǎng),被消費(fèi)者容易接受,更具有競(jìng)爭(zhēng)力。492.1.1ARM微處理器體系的結(jié)構(gòu)ARM處理器體系結(jié)構(gòu)設(shè)計(jì)的總體思想是在不犧牲性能的情況下,盡量簡(jiǎn)化處理器,同時(shí)從體系結(jié)構(gòu)的層面上靈活支持處理器擴(kuò)展。這種簡(jiǎn)化和開(kāi)放的思想使得ARM處理器采用了很簡(jiǎn)單的結(jié)構(gòu)來(lái)實(shí)現(xiàn)。目前,ARM32位體系結(jié)構(gòu)被公認(rèn)為是業(yè)界領(lǐng)先的32位嵌入式RISC微處理器內(nèi)核,所有ARM微處理器均共享這一體系結(jié)構(gòu)內(nèi)核。ARM體系結(jié)構(gòu)采用簡(jiǎn)化指令集RISC結(jié)構(gòu),在簡(jiǎn)化處理器結(jié)構(gòu),減少?gòu)?fù)雜功能指令的同時(shí),提高了處理器的速度;502.1.1ARM微處理器體系的結(jié)構(gòu)(續(xù))ARM體系結(jié)構(gòu)均使用固定長(zhǎng)度32bit指令,使用流水線技術(shù)執(zhí)行指令,大大地提高了指令的執(zhí)行速度;所有的指令執(zhí)行都是有條件的,大大地提高了指令的執(zhí)行效率;ARM體系結(jié)構(gòu)使用大量的寄存器,均為32bit。共有37個(gè)物理寄存器,在邏輯上被分為若干組,這就大大地加快了處理器執(zhí)行指令和運(yùn)行程序的速度;ARM體系結(jié)構(gòu)采用先進(jìn)的微處理器總線結(jié)構(gòu)AMBA(AdvancedMicrocontrollerBusArchitecture)來(lái)擴(kuò)展不同體系結(jié)構(gòu)的、具有不同讀寫(xiě)速度的I/O部件。AMBA已成為事實(shí)上的片上總線OCB(OnChipBus)標(biāo)準(zhǔn)。512.1.2ARM微處理器體系的特點(diǎn)持Thumb(16位)/ARM(32位)雙指令集,能很好的兼容8位/16位器件。內(nèi)含32×32bit的桶形移位寄存器,左移/右移n位、環(huán)移n位和算術(shù)右移n位等都可以一次完成,可以有效的減少移位的延遲時(shí)間。指令執(zhí)行采用3級(jí)流水線/5級(jí)流水線技術(shù)。帶有指令Cache和數(shù)據(jù)Cache,大量使用寄存器,指令執(zhí)行速度更快。大多數(shù)數(shù)據(jù)操作都在寄存器中完成。尋址方式靈活簡(jiǎn)單,執(zhí)行效率高。指令長(zhǎng)度固定。2.1.2ARM微處理器體系的特點(diǎn)(續(xù)1)支持大端和小端兩種方式存儲(chǔ)字?jǐn)?shù)據(jù)。支持Byte(字節(jié),8位)、Halfword(半字,16位)和Word(字,32位)三種數(shù)據(jù)類(lèi)型。支持用戶(hù)、快速中斷、普通中斷、管理、中止、系統(tǒng)和未定義等7種處理器模式,除了用戶(hù)模式外,其余均為特權(quán)模式。處理器芯片上都嵌入了在線仿真ICE-RT(InCircuitEmulator-RealTime)邏輯,便于通過(guò)JTAG來(lái)仿真調(diào)試ARM體系結(jié)構(gòu)芯片,可以避免使用昂貴的在線仿真器。522.1.2ARM微處理器體系的特點(diǎn)(續(xù)2)具有片上總線AMBA。AMBA定義了3組總線,可以連接具有不同處理速度的集成芯片,它們是:先進(jìn)高性能總線AHB;先進(jìn)系統(tǒng)總線ASB;先進(jìn)外圍總線APB。采用存儲(chǔ)器映像I/O的方式,即把I/O端口地址作為特殊的存儲(chǔ)器地址。具有協(xié)處理器接口。ARM允許接16個(gè)協(xié)處理器,如CP15用于系統(tǒng)控制,CP14用于調(diào)試控制器。采用了降低電源電壓,可工作在3.0V以下;減少門(mén)的翻轉(zhuǎn)次數(shù);減少門(mén)的數(shù)目,即降低芯片的集成度;降低時(shí)鐘頻率等一些措施降低功耗。體積小、低成本、高性能。53542.2ARM微處理器系列介紹及應(yīng)用選型

2.2.1ARM7微處理器系列ARM7微處理器系列包括ARM7TDMI、ARM7TDMI-S、ARM720T、ARM7EJ幾種類(lèi)型。其中,ARM7TMDI是目前使用最廣泛的32位嵌入式RISC處理器,具有以下主要特點(diǎn):工作主頻最高可達(dá)130MHz,高速的運(yùn)算處理能力可勝任絕大多數(shù)的復(fù)雜應(yīng)用。采用能夠提供0.9MIPS/MHz的三級(jí)流水線結(jié)構(gòu)。內(nèi)嵌硬件乘法器(Multiplier),支持16位壓縮指令集Thumb。嵌入式ICE-RT,支持片上Debug,支持片上斷點(diǎn)和調(diào)試點(diǎn),調(diào)試開(kāi)發(fā)方便。2.2.1ARM7微處理器系列指令系統(tǒng)與ARM9系列、ARM9E系列和ARM10E系列兼容,便于用戶(hù)產(chǎn)品的升級(jí)換代。支持WindowsCE、Linux、PalmOS等操作系統(tǒng)。其中系列中的組成字母表示的意義如下:T表示支持16位的壓縮指令集Thumb;D表示支持片上調(diào)試(Debug);M表示具有增強(qiáng)性乘法器(Multiplier),支持乘加運(yùn)算,產(chǎn)生全64位的結(jié)果;I表示嵌入式ICE芯片,可提供片上斷點(diǎn)和調(diào)試點(diǎn)的支持。ARM7微處理器系列主要應(yīng)用在工業(yè)控制、網(wǎng)絡(luò)設(shè)備、移動(dòng)電話等嵌入式系統(tǒng)中。552.2.2ARM9微處理器系列ARM9微處理器系列包含ARM920T、ARM922T和ARM940T幾種類(lèi)型,可以在高性能和低功耗特性方面提供最佳的性能。工作主頻最高可達(dá)533MHz,運(yùn)算處理速度極高。采用5級(jí)整數(shù)流水線,指令執(zhí)行效率更高。提供1.1MIPS/MHz的哈佛結(jié)構(gòu)。562.2.2ARM9微處理器系列(續(xù))支持?jǐn)?shù)據(jù)Cache和指令Cache,具有更高的指令和數(shù)據(jù)處理能力。支持32位ARM指令集和16位Thumb指令集。支持32位的高速AMBA總線接口。全性能的MMU,支持WindowsCE、Linux、PalmOS等多種主流嵌入式操作系統(tǒng)。572.2.2ARM9微處理器系列(續(xù))ARM920T處理器核在ARM9TDMI處理器內(nèi)核基礎(chǔ)上,增加了分離式的指令Cache和數(shù)據(jù)Cache,并帶有相應(yīng)的存儲(chǔ)器管理單元I-MMU和D-MMU、寫(xiě)緩沖器及AMBA接口等。ARM9系列微處理器主要應(yīng)用于無(wú)線通信設(shè)備、儀器儀表、安全系統(tǒng)、機(jī)頂盒、高端打印機(jī)、數(shù)字照相機(jī)和數(shù)字?jǐn)z像機(jī)等。582.2.3ARM微處理器的應(yīng)用選型1.ARM微處理器內(nèi)核的選擇主要是操作系統(tǒng)要求滿(mǎn)足有無(wú)MMU單元的要求2.微處理器的工作頻率主要是根據(jù)系統(tǒng)的控制周期,選取滿(mǎn)足工作要求的時(shí)鐘頻率(決定著指令的執(zhí)行速度)。3.微處理器片內(nèi)外存儲(chǔ)器、外圍接口的選擇根據(jù)項(xiàng)目的實(shí)際需求,選取滿(mǎn)足項(xiàng)目要求的I/O接口處理器芯片592.3ARM的總線系統(tǒng)與接口

ARM采用先進(jìn)的微控制器總線架構(gòu)AMBA,為系統(tǒng)的應(yīng)用提供了3個(gè)總線接口并為它們配置不同的工作頻率,以適應(yīng)于不同速度的芯片接入使用。為了方便調(diào)試與代碼的下載,節(jié)省開(kāi)發(fā)設(shè)備的投入,提供了JTAG接口。為了擴(kuò)充ARM系統(tǒng)的功能,提供了16個(gè)協(xié)處理器擴(kuò)展接口。602.3.1ARM的總線系統(tǒng)

ARM處理器內(nèi)核可以通過(guò)先進(jìn)的微控制器總線架構(gòu)AMBA(AdvancedMicrocontrollerBusArchitecture)來(lái)擴(kuò)展不同體系架構(gòu)的宏單元及I/O部件。AMBA已成為事實(shí)上的片上總線OCB(OnChipBus)標(biāo)準(zhǔn)。61圖2-1AMBA的典型系統(tǒng)圖62先進(jìn)的微處理器總線結(jié)構(gòu)AMBA(續(xù))AMBA有先進(jìn)系統(tǒng)總線ASB(AdvancedSystemBus)、先進(jìn)高性能總線AHB(AdvancedHigh-performanceBus)和先進(jìn)外圍總線APB(AdvancedPeripheralBus)等3類(lèi)總線。ASB是目前ARM常用的系統(tǒng)總線,用來(lái)連接高性能系統(tǒng)模塊,支持突發(fā)(Burst)方式數(shù)據(jù)傳送。AHB不但支持突發(fā)方式的數(shù)據(jù)傳送,還支持分離式總線事務(wù)處理,以進(jìn)一步提高總線的利用效率。特別在高性能的ARM架構(gòu)系統(tǒng)中,AHB有逐步取代ASB的趨勢(shì),例如在ARM1020E處理器核中。63先進(jìn)的微處理器總線結(jié)構(gòu)AMBA(續(xù))APB為外圍宏單元提供了簡(jiǎn)單的接口,也可以把APB看作ASB的余部。AMBA通過(guò)測(cè)試接口控制器TIC(TestInterfaceController)提供了模塊測(cè)試的途徑,允許外部測(cè)試者作為ASB總線的主設(shè)備來(lái)分別測(cè)試AMBA上的各個(gè)模塊。AMBA中的宏單元也可以通過(guò)JTAG方式進(jìn)行測(cè)試。雖然AMBA的測(cè)試方式通用性稍差些,但其通過(guò)并行口的測(cè)試比JTAG的測(cè)試代價(jià)也要低些。642.3.2ARM的JTAG調(diào)試接口

1.JTAG接口介紹聯(lián)合測(cè)試行動(dòng)小組JTAG(JointTestActionGroup)是一種國(guó)際標(biāo)準(zhǔn)測(cè)試協(xié)議,主要用于芯片內(nèi)部測(cè)試及對(duì)系統(tǒng)進(jìn)行仿真、調(diào)試。JTAG技術(shù)是一種嵌入式調(diào)試技術(shù),它在芯片內(nèi)部封裝了專(zhuān)門(mén)的測(cè)試電路,即集成了測(cè)試訪問(wèn)口TAP(TestAccessPort),通過(guò)專(zhuān)用的JTAG測(cè)試工具對(duì)內(nèi)部節(jié)點(diǎn)進(jìn)行測(cè)試。目前大多數(shù)比較復(fù)雜的器件都支持JTAG協(xié)議,如ARM、DSP、FPGA器件等。652.ARM的JTAG接口的實(shí)際使用

ARM的JTAG接口使用就像單片機(jī)的仿真器和編程器(或稱(chēng)燒錄器),單片機(jī)仿真器和編程器的價(jià)格平均都在千元以上,ARM的JTAG接口與之相比九牛一毛。仿真器主要用于單片機(jī)軟硬件的調(diào)試,編程器用于將編譯好的16進(jìn)制或二進(jìn)制燒寫(xiě)在單片機(jī)的ROM中。進(jìn)行Linux操作系統(tǒng)環(huán)境下的應(yīng)用系統(tǒng)開(kāi)發(fā)時(shí),編譯好的引導(dǎo)啟動(dòng)程序Bootloader必須通過(guò)ARM的JTAG接口下載到ARM芯片外擴(kuò)的NORFlash(稱(chēng)“非或”Flash)ROM或NANDFlash(稱(chēng)“非與”Flash)ROM中,其后的操作系統(tǒng)內(nèi)核,文件系統(tǒng),應(yīng)用程序可以通過(guò)RS232接口、USB接口或RJ45網(wǎng)絡(luò)接口下載到ARM的FlashROM中。662.3.3ARM的協(xié)處理器接口

為了便于片上系統(tǒng)SoC(SystemofChip)的設(shè)計(jì),ARM可以通過(guò)協(xié)處理器(CP)來(lái)支持一個(gè)通用功能指令集的擴(kuò)充,通過(guò)增加協(xié)處理器來(lái)增加ARM系統(tǒng)的功能。在邏輯上,ARM可以擴(kuò)展16個(gè)(CP0~CP15)協(xié)處理器,其中:CP15作為系統(tǒng)控制,CP14作為調(diào)試控制器,CP4~7作為用戶(hù)控制器,CP8~13和CP0~3保留。每個(gè)協(xié)處理器可有16個(gè)寄存器。例如MMU和保護(hù)單元的系統(tǒng)控制都采用CP15協(xié)處理器;JTAG調(diào)試中的協(xié)處理器為CP14,即調(diào)試通信通道DCC(DebugCommunicationChannel)。672.4ARM9體系結(jié)構(gòu)的存儲(chǔ)器組織

ARM9的存儲(chǔ)器層次結(jié)構(gòu)從微處理器的CPU到外依次是寄存器組、Cache存儲(chǔ)器、主存儲(chǔ)器和輔助存儲(chǔ)器。寄存器組的訪問(wèn)一般需要幾個(gè)ns,Cache存儲(chǔ)器的訪問(wèn)需要十幾個(gè)ns,主存儲(chǔ)器一般為幾兆字節(jié)到1GB的動(dòng)態(tài)存儲(chǔ)器,訪問(wèn)時(shí)間約50ns。寄存器組主要輔助CPU進(jìn)行運(yùn)算,以加快CPU的處理速度;Cache主要預(yù)存簡(jiǎn)要執(zhí)行指令以及相關(guān)的數(shù)據(jù);主存儲(chǔ)器是運(yùn)行程序和訪問(wèn)數(shù)據(jù)的所在地。68ARM9處理器有的內(nèi)置指令Cache和數(shù)據(jù)Cache,但不帶有片內(nèi)RAM和片內(nèi)ROM。系統(tǒng)所需的RAM和ROM(包括Flash)都通過(guò)總線外接。由于系統(tǒng)的地址范圍較大(232=4GB),有的片內(nèi)還帶有存儲(chǔ)器管理單元MMU(MemoryManagementUnit)。ARM架構(gòu)處理器還允許外接PCMCIA(

PersonalComputerMemoryCardInternationalAssociation)卡。692.4.1ARM體系結(jié)構(gòu)的存儲(chǔ)器空間

ARM9體系結(jié)構(gòu)存儲(chǔ)器與I/O端口采用的統(tǒng)一編址所構(gòu)成的地址空間稱(chēng)為平面地址空間,亦可以叫做線性地址空間。由32根地址線組成的232字節(jié)地址單元,范圍從0x00000000~0xffffffff,將字節(jié)地址作為無(wú)符號(hào)數(shù)對(duì)待。702.4.2ARM9中的大端存儲(chǔ)與小端存儲(chǔ)ARM9存儲(chǔ)數(shù)據(jù)的基本單位是字節(jié)。ARM9存儲(chǔ)字?jǐn)?shù)據(jù)時(shí)要求是字對(duì)齊的。僅使用地址線A31~A2,A1A0不用。但是存儲(chǔ)時(shí)字?jǐn)?shù)據(jù)必須依次存儲(chǔ)在A1A0=00,01,10,11的字節(jié)存儲(chǔ)器中,即字對(duì)齊。ARM9存儲(chǔ)半字?jǐn)?shù)據(jù)時(shí)要求是半字對(duì)齊的。僅使用地址線A31~A1,A0不用。但是存儲(chǔ)時(shí)字?jǐn)?shù)據(jù)必須依次存儲(chǔ)在A0=0,1的字節(jié)存儲(chǔ)器中,即半字對(duì)齊。71

大端、小端方式時(shí)字?jǐn)?shù)據(jù)的存儲(chǔ)圖722.4.3I/O端口的訪問(wèn)方式

對(duì)于I/O端口的訪問(wèn),ARM9體系結(jié)構(gòu)是應(yīng)用存儲(chǔ)器映射的方式來(lái)實(shí)現(xiàn)的。由于I/O端口與存儲(chǔ)器采用統(tǒng)一編址,I/O端口必然要占用存儲(chǔ)器空間。存儲(chǔ)器映射法就是為每個(gè)I/O端口分配特定的存儲(chǔ)器地址,當(dāng)從這些地址讀出或向該地址寫(xiě)入數(shù)據(jù)時(shí),實(shí)際完成的是I/O端口的操作功能。注意:存儲(chǔ)器映射I/O端口地址的行為通常不同于對(duì)一個(gè)正常存儲(chǔ)器地址操作所期望的行為。例如,從一個(gè)正常存儲(chǔ)器地址兩次連續(xù)的讀入,2次返回的值相同。而對(duì)于存儲(chǔ)器映射I/O地址,第2次讀入的返回值可以不同于第1次讀入的返回值,因?yàn)榈?次讀入時(shí)對(duì)應(yīng)端口的電平可能發(fā)生了變化。732.5ARM9微處理器的工作狀態(tài)與運(yùn)行模式

ARM9微處理器有2種工作狀態(tài),以支持32位或16位緊湊型長(zhǎng)度指令的運(yùn)行,可以在程序的執(zhí)行過(guò)程中任意切換。即ARM指令狀態(tài)與Thumb指令狀態(tài)ARM9具有7種異常運(yùn)行模式,各種異常模式下都有自己的寄存器組,以便于異常程序的執(zhí)行和返回。742.5.1ARM9微處理器的工作狀態(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、SWI等),則當(dāng)異常處理返回時(shí),自動(dòng)切換到Thumb狀態(tài)。在Thumb狀態(tài)下,程序計(jì)數(shù)器PC使用位[1]選擇另一個(gè)半字。75※切換到ARM狀態(tài):當(dāng)操作數(shù)寄存器的狀態(tài)位(位0)為0時(shí),執(zhí)行BX指令使微處理器從Thumb狀態(tài)切換到ARM狀態(tài)。當(dāng)處理器進(jìn)行異常處理時(shí),把當(dāng)前的PC指針存入相應(yīng)的異常模式連接寄存器(該模式下的R14寄存器)中,并從異常向量入口地址開(kāi)始執(zhí)行程序,執(zhí)行完畢后將其連接寄存器的值送入PC(還要做一些偏移量的處理),程序返回到主程序。ARM處理器在兩種工作狀態(tài)之間可以切換,切換不影響處理器的模式或寄存器的內(nèi)容。761.ARM9微處理器支持7種運(yùn)行模式(1)用戶(hù)模式usr:ARM處理器正常程序執(zhí)行模式,用戶(hù)程序都在這種模式下執(zhí)行。(2)快速中斷模式fiq:當(dāng)一個(gè)高優(yōu)先級(jí)的快速中斷源產(chǎn)生中斷時(shí)進(jìn)入這種模式,主要用于高速數(shù)據(jù)傳輸或通道處理。

(3)普通中斷模式irq:當(dāng)一個(gè)普通優(yōu)先級(jí)的中斷源產(chǎn)生中斷時(shí)進(jìn)入這種模式,用于一般的中斷事務(wù)處理。(4)管理模式svc:當(dāng)復(fù)位或軟中斷指令執(zhí)行時(shí)將進(jìn)入這種模式,是供操作系統(tǒng)使用的一種保護(hù)模式。

(5)數(shù)據(jù)訪問(wèn)終止模式abt:當(dāng)數(shù)據(jù)或指令預(yù)取終止時(shí)進(jìn)入該模式,用于虛擬存儲(chǔ)及存儲(chǔ)保護(hù)。771.ARM9微處理器支持7種運(yùn)行模式(續(xù))(6)系統(tǒng)模式sys:供需要訪問(wèn)資源的操作系統(tǒng)任務(wù)使用,運(yùn)行具有特權(quán)的操作系統(tǒng)任務(wù)。(7)未定義指令終止模式und:當(dāng)執(zhí)行未定義的指令時(shí)進(jìn)入該模式。ARM處理器的運(yùn)行模式可以在特權(quán)模式下通過(guò)軟件改變,也可以通過(guò)外部中斷和異常處理改變;大多數(shù)的應(yīng)用程序運(yùn)行在用戶(hù)模式下,當(dāng)運(yùn)行在用戶(hù)模式下時(shí),被保護(hù)的系統(tǒng)資源是不能訪問(wèn)的。782.特權(quán)模式與異常模式

(1)特權(quán)模式:除用戶(hù)模式外,其余6種模式被稱(chēng)為特權(quán)模式。用戶(hù)模式的特點(diǎn)是,用戶(hù)程序不能訪問(wèn)受操作系統(tǒng)保護(hù)的系統(tǒng)資源,也不能進(jìn)行處理器模式的切換。特權(quán)模式的特點(diǎn)是,應(yīng)用程序可以訪問(wèn)所有的系統(tǒng)資源,可以任意地進(jìn)行處理器模式的切換。79(2)異常模式異常模式:除用戶(hù)和系統(tǒng)模式外,其余被稱(chēng)為異常模式。系統(tǒng)模式的特點(diǎn)是,不能通過(guò)異常進(jìn)入該模式,可以訪問(wèn)系統(tǒng)的所有資源,可以任意地進(jìn)行處理器模式的切換。異常模式的特點(diǎn)是,以各自的異常方式或中斷方式進(jìn)入,并且處理各自異常或中斷。對(duì)于管理模式SVC異常進(jìn)入方式和處理的內(nèi)容有:系統(tǒng)上電復(fù)位或按下RESET按鈕后進(jìn)入管理模式。處理任務(wù)有ARM系統(tǒng)初始化,關(guān)閉中斷、設(shè)置系統(tǒng)3個(gè)總線的頻率、配置動(dòng)態(tài)存儲(chǔ)器SDRAM、各種運(yùn)行模式下堆棧區(qū)的設(shè)置、各個(gè)模塊的初始化、為C/C++應(yīng)用程序提供運(yùn)行環(huán)境等。當(dāng)執(zhí)行軟中斷指令SWI異常時(shí),也可進(jìn)入管理模式。803.處理器運(yùn)行模式間的切換

處理器運(yùn)行模式間有2種切換方式:一是通過(guò)軟件控制進(jìn)行切換,二是由外部中斷或內(nèi)部的異常觸發(fā)進(jìn)行切換。前者是通過(guò)編寫(xiě)軟件來(lái)實(shí)現(xiàn)的,后者是自動(dòng)觸發(fā)的。系統(tǒng)啟動(dòng)時(shí)運(yùn)行模式的轉(zhuǎn)換流程如下:1)上電復(fù)位或按復(fù)位按鈕,進(jìn)入到管理模式,此時(shí)主要工作是關(guān)閉中斷,設(shè)置系統(tǒng)3個(gè)總線的頻率、配置動(dòng)態(tài)存儲(chǔ)器SDRAM、設(shè)置其堆棧指針等。2)設(shè)置1)模式下的堆棧指針后,通過(guò)使用軟件改變CPSR的最低5bit的模式控制位M[4:0],即模式字,系統(tǒng)進(jìn)入某種特權(quán)模式,設(shè)置它的堆棧指針;再一次的改變模式字,進(jìn)入相應(yīng)的運(yùn)行模式,進(jìn)行該模式的堆棧指針設(shè)置,直到設(shè)置完所有模式下的堆棧指針等。注意:此期間系統(tǒng)一直處于特權(quán)模式下。813)最后通過(guò)軟件模式字的更改,使系統(tǒng)進(jìn)入到用戶(hù)模式工作,運(yùn)行應(yīng)用系統(tǒng)的軟件。

此時(shí)若各種異常模式產(chǎn)生了異常,進(jìn)入相應(yīng)的異常模式處理,處理完后返回到異常發(fā)生時(shí)的模式程序處,繼續(xù)執(zhí)行原異常模式程序。注意:異常模式是有優(yōu)先級(jí)的,如果同時(shí)產(chǎn)生異常,優(yōu)先級(jí)高的模式優(yōu)先處理執(zhí)行;另外,模式優(yōu)先級(jí)高的可以在模式級(jí)低的模式中產(chǎn)生異常,處理完后返回原處。ARM處理器在每一種處理器模式下均有一組相應(yīng)的寄存器與之對(duì)應(yīng)。即在任意一種處理器模式下,可訪問(wèn)的寄存器包括15個(gè)通用寄存器(R0~R14)、一至二個(gè)狀態(tài)寄存器和程序計(jì)數(shù)器。在所有的寄存器中,有些是在7種處理器模式下共用的同一個(gè)物理寄存器,而有些寄存器則是在不同的處理器模式下有不同的物理寄存器。822.6ARM9體系結(jié)構(gòu)的寄存器組織

ARM處理器的37個(gè)物理寄存器被安排成部分重疊的組,不能在任何模式都可以使用,寄存器的使用與處理器狀態(tài)和工作模式有關(guān)。如圖2-4所示,每種處理器模式使用不同的寄存器組。其中15個(gè)通用寄存器(R0~R14)、1或2個(gè)狀態(tài)寄存器和程序計(jì)數(shù)器是通用的。圖2-4中有背景陰影的寄存器均為獨(dú)立的物理寄存器,R0~R14、PC、CPSR這17個(gè)寄存器也是獨(dú)立的物理寄存器,共有37個(gè)物理寄存器。8384寄存器結(jié)構(gòu)圖2.6.1通用寄存器

通用寄存器(R0~R15)可分成不分組寄存器R0~R7、分組寄存器R8~R14和程序計(jì)數(shù)器R15三類(lèi)。1.未分組寄存器8個(gè)(R0~R7)

在所有的運(yùn)行模式下,未分組寄存器都指向同一物理寄存器,它們沒(méi)有被系統(tǒng)作特殊的用途。

在中斷或異常處理進(jìn)行運(yùn)行模式轉(zhuǎn)換時(shí),由于不同的微處理器運(yùn)行模式均使用相同的物理寄存器,可能會(huì)造成寄存器中數(shù)據(jù)的破壞,這點(diǎn)在程序設(shè)計(jì)時(shí)要引起注意。

未分組寄存器R0~R7是真正的通用寄存器,可以工作在所有的處理器模式下,沒(méi)有隱含的特殊用途。852.分組寄存器R8~R14

對(duì)于分組寄存器,它們每一次所訪問(wèn)的物理寄存器與微處理器當(dāng)前的運(yùn)行模式相關(guān)。分組寄存器R8~R14的使用取決于當(dāng)前的處理器模式,每種模式有專(zhuān)用的分組寄存器以加快異常處理的速度。寄存器R8~Rl2可分為兩組物理寄存器。一組用于FIQ模式,另一組用于除FIQ以外的其它模式。第1組是R8_fiq~R12_fiq,在進(jìn)行快速中斷處理時(shí)使用。第2組是在除FIQ模式以外的其它處理器運(yùn)行模式中直接使用R8~R12,注意在運(yùn)行模式切換時(shí)寄存器中內(nèi)容的使用。寄存器R8~R12沒(méi)有任何指定的特殊用途。86寄存器R13~R14可分為6個(gè)分組的物理寄存器。1組用于用戶(hù)模式和系統(tǒng)模式,而其他5組分別用于svc、abt、und、irq和fiq五種異常模式。訪問(wèn)時(shí)需要指定它們的模式,如:R13_<mode>,R14_<mode>;其中:<mode>可以從svc、abt、und、irq和fiq模式中選取一個(gè)。

R13為堆棧指針寄存器,存放其模式的堆棧棧頂指針;

R14為連接寄存器,存放其模式的程序返回地址。873.程序計(jì)數(shù)器PC(R15)

寄存器R15用作程序計(jì)數(shù)器(PC)。在ARM狀態(tài),位[1:0]為0,位[31:2]保存PC。在Thumb狀態(tài),位[0]為0,位[31:1]保存PC。由于ARM體系結(jié)構(gòu)采用了多級(jí)流水線技術(shù),對(duì)于ARM指令而言,PC總是指向當(dāng)前執(zhí)行指令的下2條指令的地址,即PC的值是當(dāng)前指令的值+8(字節(jié))讀程序計(jì)數(shù)器。指令讀出的R15值是指令地址加上8字節(jié)。由于ARM指令始終是字對(duì)齊的,所以讀出結(jié)果值的位[1:0]總是0。寫(xiě)程序計(jì)數(shù)器。寫(xiě)R15的通常結(jié)果是將寫(xiě)到R15中的值作為指令地址,并以此地址發(fā)生轉(zhuǎn)移。由于ARM指令要求字對(duì)齊,通常希望寫(xiě)到R15中值的位[1:0]=0b00。882.6.2程序狀態(tài)寄存器

程序狀態(tài)寄存器有當(dāng)前程序狀態(tài)寄存器CPSR(CurrentProgramStatusRegister),通常也可以叫做R16寄存器,它是所有運(yùn)行模式下的公用寄存器,用于保存當(dāng)前運(yùn)行模式下的狀態(tài)字,在所有處理器運(yùn)行模式下都可以使用;還有一個(gè)叫做程序狀態(tài)保存寄存器SPSR(SavedProgramStatusRegister),從圖2-1中可以看出幾乎每種運(yùn)行模式下都以獨(dú)立的物理寄存器而存在,它是在異常發(fā)生轉(zhuǎn)換時(shí)保存CPSR的值,以保證在異常返回時(shí)程序的狀態(tài)字不變,它與CPSR有相同的內(nèi)容格式。模式位控制字及其使用的寄存器如表2-1所示。89901.條件標(biāo)志位N、Z、C、V均為條件碼標(biāo)志位(ConditionCodeFlags),它們的內(nèi)容可被算術(shù)或邏輯運(yùn)算的結(jié)果所改變,并且可以決定某條指令是否被執(zhí)行。CPSR中的條件標(biāo)志位是由ARM指令進(jìn)行清0置1的,大部分的匯編指令只有帶上對(duì)條件標(biāo)志位有影響的字符“S”時(shí)才能起作用,少數(shù)的比較指令(CMN、CMP、TEQ、TST)不帶影響字符“S”也可對(duì)條件標(biāo)志位起作用。在ARM狀態(tài)下,絕大多數(shù)指令的執(zhí)行,CPSR條件標(biāo)志位是決定因素之一,另一個(gè)因素就是在匯編指令中必須帶上執(zhí)行的條件標(biāo)識(shí)字符。ARM為了提高匯編指令的執(zhí)行效率,指令的執(zhí)行是有條件的。

912.控制位

程序狀態(tài)寄存器CPSR的最低8位I、F、T和M[4:0]用作控制位。當(dāng)異常出現(xiàn)時(shí)改變控制位。處理器在特權(quán)模式下時(shí)也可由軟件改變。中斷禁止位I、F①普通中斷控制位I:置1禁止IRQ普通中斷;清0允許IRQ普通中斷。②快速中斷控制位F:置1禁止FIQ快速中斷;清0允許FIQ快速中ARM/Thumb狀態(tài)控制位T

T=0指示工作在ARM狀態(tài);T=1指示工作在Thumb狀態(tài)。

模式控制位M4、M3、M2、Ml和M0(M[4:0])是模式控制位,它的取值組合決定處理器的運(yùn)行模式,表2-1列出了模式位控制字以及該模式下可以使用的寄存器。并非所有的模式位組合都能定義一種有效的處理器模式。其他組合的結(jié)果不可預(yù)知。922.7ARM9微處理器的異常

2.7.1ARM9處理器的異常概念1.ARM異常

在一個(gè)正常的程序執(zhí)行過(guò)程中,由內(nèi)部或外部源產(chǎn)生的一個(gè)事件使正常的程序產(chǎn)生暫時(shí)的停止時(shí),稱(chēng)之為異常。異常是由內(nèi)部或外部源產(chǎn)生并引起處理器處理的一個(gè)事件,例如一個(gè)外部的中斷請(qǐng)求。在處理異常之前,當(dāng)前處理器的狀態(tài)必須保留,當(dāng)異常處理完成之后,恢復(fù)保留的當(dāng)前處理器狀態(tài),繼續(xù)執(zhí)行當(dāng)前程序。多個(gè)異常同時(shí)發(fā)生時(shí),處理器將會(huì)按固定的優(yōu)先級(jí)進(jìn)行處理。932.ARM體系結(jié)構(gòu)中的異常與中斷

與8位單片機(jī)的中斷有相似之處,但異常與中斷的概念并不完全等同,例如外部中斷或試圖執(zhí)行未定義指令都會(huì)引起異常。942.7.2ARM體系結(jié)構(gòu)的異常類(lèi)型

ARM體系結(jié)構(gòu)支持7種類(lèi)型的異常,異常類(lèi)型、所處的運(yùn)行模式、異常向量入口地址、優(yōu)先級(jí)的對(duì)應(yīng)關(guān)系如表2-2所示。異常出現(xiàn)后,強(qiáng)制從異常類(lèi)型對(duì)應(yīng)的固定存儲(chǔ)器地址開(kāi)始執(zhí)行程序,在特定異常向量地址ROM空間存放一條跳轉(zhuǎn)指令,跳轉(zhuǎn)到異常處理程序的入口處。這些固定的地址稱(chēng)為異常向量(ExceptionVectors)。優(yōu)先級(jí)是指當(dāng)有多個(gè)異常發(fā)生時(shí),優(yōu)先級(jí)高的先執(zhí)行。9596表2-2異常類(lèi)型和異常處理模式表異常類(lèi)型所處的運(yùn)行模式異常向量地址優(yōu)先級(jí)復(fù)位管理模式(svc)0x0000,00001(最高)未定義指令未定義模式(und)0x0000,00046(最低)軟件中斷管理模式(svc)0x0000,00086(最低)指令預(yù)取終止終止模式(abt)0x0000,000C5數(shù)據(jù)訪問(wèn)終止終止模式(abt)0x0000,00102IRQ(外部中斷)IRQ模式(irq)0x0000,00184FIQ(快速中斷)FIQ模式(fiq)0x0000,001C32.7.3各種異常類(lèi)型的含義

1.復(fù)位異常

當(dāng)處理器的復(fù)位電平有效時(shí),產(chǎn)生復(fù)位異常,ARM處理器立刻停止執(zhí)行當(dāng)前指令。

復(fù)位后,ARM處理器在禁止中斷的管理模式下,程序跳轉(zhuǎn)到復(fù)位異常處理程序處執(zhí)行(從地址0x00000000或0xFFFF0000開(kāi)始執(zhí)行指令)。972.未定義指令異常

當(dāng)ARM處理器或協(xié)處理器遇到不能處理的指令時(shí),產(chǎn)生未定義指令異常。當(dāng)ARM處理器執(zhí)行協(xié)處理器指令時(shí),它必須等待任一外部協(xié)處理器應(yīng)答后,才能真正執(zhí)行這條指令。若協(xié)處理器沒(méi)有響應(yīng),就會(huì)出現(xiàn)未定義指令異常。若試圖執(zhí)行未定義的指令,也會(huì)出現(xiàn)未定義指令異常。未定義指令異常可用于在沒(méi)有物理協(xié)處理器(硬件)的系統(tǒng)上,對(duì)協(xié)處理器進(jìn)行軟件仿真,或在軟件仿真時(shí)進(jìn)行指令擴(kuò)展。983.軟件中斷異常SWI

軟件中斷異常由執(zhí)行SWI(SoftWareInterrupt)指令產(chǎn)生,可使用該異常機(jī)制實(shí)現(xiàn)系統(tǒng)功能調(diào)用,用于用戶(hù)模式下的程序調(diào)用特權(quán)操作指令,以請(qǐng)求特定的管理(操作系統(tǒng))函數(shù)。4.指令預(yù)取終止異常

若處理器預(yù)取指令的地址不存在,或該地址不允許當(dāng)前指令訪問(wèn),存儲(chǔ)器會(huì)向處理器發(fā)出存儲(chǔ)器中止(Abort)信號(hào),但當(dāng)預(yù)取的指令被執(zhí)行時(shí),才會(huì)產(chǎn)生

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論