嵌入式系統(tǒng)基礎(chǔ)知識_第1頁
嵌入式系統(tǒng)基礎(chǔ)知識_第2頁
嵌入式系統(tǒng)基礎(chǔ)知識_第3頁
嵌入式系統(tǒng)基礎(chǔ)知識_第4頁
嵌入式系統(tǒng)基礎(chǔ)知識_第5頁
已閱讀5頁,還剩40頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

嵌入式系統(tǒng)基礎(chǔ)知識1嵌入式系統(tǒng)的定義和組成1.1嵌入式系統(tǒng)的定義根據(jù)IEEE(國際電氣和電子工程師協(xié)會)的定義,嵌入式系統(tǒng)是“控制、監(jiān)視或者輔助設(shè)備、機器和車間運行的裝置”目前國內(nèi)一個普遍被認同的定義是:以應(yīng)用為中心、以計算機技術(shù)為基礎(chǔ),軟件硬件可裁剪,適應(yīng)應(yīng)用系統(tǒng)對功能、可靠性、成本、體積、功耗嚴格要求的專用計算機系統(tǒng)??梢赃@樣認為,嵌入式系統(tǒng)是一種專用的計算機系統(tǒng),作為裝置或設(shè)備的一部分。嵌入式系統(tǒng)一般由嵌入式微處理器、外圍硬件設(shè)備、嵌入式操作系統(tǒng)以及用戶應(yīng)用程序4個部分組成?!扒度胄浴?、“專用性”與“計算機系統(tǒng)”是嵌入式系統(tǒng)的三個基本要素,對象系統(tǒng)則是指嵌入式系統(tǒng)所嵌入的宿主系統(tǒng)。1.2嵌入式系統(tǒng)發(fā)展趨勢從單片機的出現(xiàn)到今天各種嵌入式微處理器、微控制器的廣泛應(yīng)用,嵌入式系統(tǒng)的應(yīng)用可以追溯到20世紀60年代中期,例如阿波羅飛船的導(dǎo)航控制系統(tǒng)AGC(ApolloGuidanceComputer)。嵌入式系統(tǒng)的發(fā)展歷程,大致經(jīng)歷了以下4個階段。(1)無操作系統(tǒng)階段(2)簡單操作系統(tǒng)階段(3)實時操作系統(tǒng)階段(4)面向Internet階段1.3嵌入式系統(tǒng)的組成嵌入式系統(tǒng)通常由包含有嵌入式處理器、嵌入式操作系統(tǒng)、應(yīng)用軟件和外圍設(shè)備接口的嵌入式計算機系統(tǒng)和執(zhí)行裝置(被控對象)組成。嵌入式計算機系統(tǒng)是整個嵌入式系統(tǒng)的核心,可以分為硬件層、中間層、系統(tǒng)軟件層和應(yīng)用軟件層。執(zhí)行裝置接受嵌入式計算機系統(tǒng)發(fā)出的控制命令,執(zhí)行所規(guī)定的操作或任務(wù)。1.嵌入式計算機系統(tǒng)的硬件層硬件層中包含嵌入式微處理器、存儲器(SDRAM、ROM、Flash等)、通用設(shè)備接口和I/O接口(A/D、D/A、I/O等)。硬件層通常是一個以嵌入式處理器為中心的,包含有電源電路、時鐘電路和存儲器電路的電路模塊,其中操作系統(tǒng)和應(yīng)用程序都固化在模塊的ROM中。(1)嵌入式微處理器嵌入式微處理器是嵌入式系統(tǒng)硬件層的核心,嵌入式微處理器將通用CPU中許多由板卡完成的任務(wù)集成到芯片內(nèi)部,從而有利于系統(tǒng)設(shè)計趨于小型化、高效率和高可靠性。嵌入式微處理器大多工作在為特定用戶群所專門設(shè)計的系統(tǒng)中。嵌入式微處理器的體系結(jié)構(gòu)可以采用馮·諾依曼體系結(jié)構(gòu)或哈佛體系結(jié)構(gòu),指令系統(tǒng)可以選用精簡指令系統(tǒng)(ReducedInstructionSetComputer,RISC)和復(fù)雜指令集系統(tǒng)CISC(ComplexInstructionSetComputer,CISC)。嵌入式微處理器有各種不同的體系,目前全世界嵌入式微處理器已經(jīng)超過1000多種,體系結(jié)構(gòu)有30多個系列,其中主流的體系有ARM、MIPS、PowerPC、X86等。即使在同一體系中,也可以具有不同的時鐘頻率、數(shù)據(jù)總線寬度、接口和外設(shè)。目前沒有一種嵌入式微處理器可以主導(dǎo)市場,嵌入式微處理器的選擇是根據(jù)具體的應(yīng)用而決定的。(2)存儲器嵌入式系統(tǒng)的存儲器包含Cache、主存儲器和輔助存儲器,用來存放和執(zhí)行代碼。①Cache是一種位于主存儲器和嵌入式微處理器內(nèi)核之間的快速存儲器陣列,存放的是最近一段時間微處理器使用最多的程序代碼和數(shù)據(jù)。Cache一般集成在嵌入式微處理器內(nèi),可分為數(shù)據(jù)Cache、指令Cache或混合Cache,Cache的存儲容量大小依不同處理器而定。②主存儲器用來存放系統(tǒng)和用戶的程序及數(shù)據(jù),是嵌入式微處理器能直接訪問的存儲器。主存儲器包含有ROM和RAM,可以位于微處理器的內(nèi)部或外部。常用的ROM類存儲器有NORFlash、EPROM和PROM等,RAM類存儲器有SRAM、DRAM和SDRAM等,容量為256KB~1GB。③輔助存儲器通常指硬盤、NANDFlash、CF卡、MMC和SD卡等,用來存放大數(shù)據(jù)量的程序代碼或信息,一般容量較大,但讀取速度與主存相比要慢一些。(3)通用設(shè)備接口和I/O接口嵌入式系統(tǒng)通常具有與外界交互所需要的通用設(shè)備接口,如GPIO、A/D(模/數(shù)轉(zhuǎn)換接口)、D/A(數(shù)/模轉(zhuǎn)換接口)、RS-232接口(串行通信接口)、Ethernet(以太網(wǎng)接口)、USB(通用串行總線接口)、音頻接口、VGA視頻輸出接口、I2C(現(xiàn)場總線)、SPI(串行外圍設(shè)備接口)和IrDA(紅外線接口)等。

2.中間層中間層也稱為硬件抽象層(HardwareAbstractLayer,HAL)或板級支持包(BoardSupportPackage,BSP),位于硬件層和軟件層之間,將系統(tǒng)上層軟件與底層硬件分離開來。BSP作為上層軟件與硬件平臺之間的接口,需要為操作系統(tǒng)提供操作和控制具體硬件的方法。不同的操作系統(tǒng)具有各自的軟件層次結(jié)構(gòu),BSP需要為不同的操作系統(tǒng)提供特定的硬件接口形式。BSP使上層軟件開發(fā)人員無需關(guān)心底層硬件的具體情況,根據(jù)BSP層提供的接口即可進行開發(fā)。BSP是一個介于操作系統(tǒng)和底層硬件之間的軟件層次,包括了系統(tǒng)中大部分與硬件聯(lián)系緊密的軟件模塊。BSP一般包含相關(guān)底層硬件的初始化、數(shù)據(jù)的輸入/輸出操作和硬件設(shè)備的配置等功能。(1)嵌入式系統(tǒng)硬件初始化系統(tǒng)初始化過程按照自底向上、從硬件到軟件的次序依次可以分為片級初始化、板級初始化和系統(tǒng)級初始化3個主要環(huán)節(jié)。①片級初始化是一個純硬件的初始化過程,包括設(shè)置嵌入式微處理器的核心寄存器和控制寄存器、嵌入式微處理器核心工作模式和嵌入式微處理器的局部總線模式等。②板級初始化是一個同時包含軟硬件兩部分在內(nèi)的初始化過程,完成嵌入式微處理器以外的其他硬件設(shè)備的初始化,設(shè)置某些軟件的數(shù)據(jù)結(jié)構(gòu)和參數(shù),為隨后的系統(tǒng)級初始化和應(yīng)用程序的運行建立硬件和軟件環(huán)境。

③系統(tǒng)級初始化主要進行操作系統(tǒng)的初始化。BSP將對嵌入式微處理器的控制權(quán)轉(zhuǎn)交給嵌入式操作系統(tǒng),由操作系統(tǒng)完成余下的初始化操作。最后,操作系統(tǒng)創(chuàng)建應(yīng)用程序環(huán)境,并將控制權(quán)交給應(yīng)用程序的入口。

(2)硬件相關(guān)的設(shè)備驅(qū)動程序BSP中包含硬件相關(guān)的設(shè)備驅(qū)動程序,但是這些設(shè)備驅(qū)動程序通常不直接由BSP使用,而是在系統(tǒng)初始化過程中由BSP將他們與操作系統(tǒng)中通用的設(shè)備驅(qū)動程序關(guān)聯(lián)起來,并在隨后的應(yīng)用中由通用的設(shè)備驅(qū)動程序調(diào)用,實現(xiàn)對硬件設(shè)備的操作。

3.系統(tǒng)軟件層系統(tǒng)軟件層通常包含有嵌入式操作系統(tǒng)(EmbeddedOperatingSystem,EOS)、文件系統(tǒng)、網(wǎng)絡(luò)系統(tǒng)及通用組件模塊組成。(1)嵌入式操作系統(tǒng)EOS除具備了一般操作系統(tǒng)最基本的任務(wù)調(diào)度、同步機制、中斷處理、文件處理等功能外,還具有如下特點:強實時性;支持開放性和可伸縮性的體系結(jié)構(gòu),具有可裁減性;提供統(tǒng)一的設(shè)備驅(qū)動接口;支持TCP/IP協(xié)議及其他協(xié)議,提供TCP/UDP/IP/PPP協(xié)議支持及統(tǒng)一的MAC訪問層接口,提供強大的網(wǎng)絡(luò)功能;嵌入式操作系統(tǒng)的用戶接口通過系統(tǒng)的調(diào)用命令向用戶程序提供服務(wù);嵌入式系統(tǒng)一旦開始運行就不需要用戶過多的干預(yù);嵌入式操作系統(tǒng)和應(yīng)用軟件被固化在嵌入式系統(tǒng)計算機的ROM中;具有良好的硬件適應(yīng)性(可移植性)。(2)文件系統(tǒng)嵌入式文件系統(tǒng)主要提供文件存儲、檢索和更新等功能。嵌入式文件系統(tǒng)通常支持FAT32、JFFS2、YAFFS等幾種標準的文件系統(tǒng),一些嵌入式文件系統(tǒng)還支持自定義的實時文件系統(tǒng)。嵌入式文件系統(tǒng)以系統(tǒng)調(diào)用和命令方式提供文件的各種操作,如設(shè)置、修改對文件和目錄的存取權(quán)限,提供建立、修改、改變和刪除目錄等服務(wù),提供創(chuàng)建、打開、讀寫、關(guān)閉和撤銷文件等服務(wù)。4.應(yīng)用軟件層應(yīng)用軟件層用來實現(xiàn)對被控對象的控制功能,由所開發(fā)的應(yīng)用程序組成,面向被控對象和用戶。1.4實時系統(tǒng)RTOS與通用計算機系統(tǒng)不同,要求系統(tǒng)中的任務(wù)不但執(zhí)行結(jié)果要正確,而且必須在一定的時間約束(Deadline)內(nèi)完成。在RTOS中,一個邏輯上正確的計算結(jié)果,若其產(chǎn)生的時間晚于某個規(guī)定的時間,那么也認為系統(tǒng)的行為是不正確的。1.RTOS定義RTOS是指能夠在指定或者確定的時間內(nèi)完成系統(tǒng)功能和對外部或內(nèi)部、同步或異步時間做出響應(yīng)的系統(tǒng),系統(tǒng)能夠處理和存儲控制系統(tǒng)所需要的大量數(shù)據(jù)。RTOS的正確性不僅依賴于系統(tǒng)計算的邏輯結(jié)果,還依賴于產(chǎn)生這個結(jié)果的時間。2.RTOS特點(1)約束性RTOS任務(wù)的約束包括時間約束、資源約束、執(zhí)行順序約束和性能約束。RTOS的任務(wù)具有時間約束性。時間約束性可分為“硬實時”和“軟實時”。硬實時是指在航空航天、軍事、核工業(yè)等一些關(guān)鍵領(lǐng)域中應(yīng)用的系統(tǒng),時間要求必須能夠得到完全滿足,否則將造成不可預(yù)計的結(jié)果。軟實時通常是指在監(jiān)控系統(tǒng)、信息采集系統(tǒng)等某些應(yīng)用中,有時間約束要求,但偶爾違反不會造成嚴重影響。資源約束是指多個實時任務(wù)共享有限的資源時,必須按照一定的資源訪問控制協(xié)議進行同步,以避免死鎖和高優(yōu)先級任務(wù)被低優(yōu)先級任務(wù)堵塞的時間(即優(yōu)先級倒置時間)不可預(yù)測。執(zhí)行順序約束是指各任務(wù)的啟動和執(zhí)行必須滿足一定的時間和順序約束。例如,在分布式端到端(end-to-end)實時系統(tǒng)中,同一任務(wù)的各子任務(wù)之間存在前驅(qū)/后繼約束關(guān)系,需要執(zhí)行同步協(xié)議來管理子任務(wù)的啟動和控制子任務(wù)的執(zhí)行,使它們滿足時間約束和系統(tǒng)可調(diào)度性要求。性能約束是指必須滿足如可靠性、可用性、可預(yù)測性、服務(wù)質(zhì)量(QualityofService,QoS)等性能指標。(2)可預(yù)測性可預(yù)測性是指RTOS完成實時任務(wù)所需要的執(zhí)行時間應(yīng)是可知的。(3)可靠性大多數(shù)RTOS要求有較高的可靠性,要求系統(tǒng)在最壞情況下都能正常工作或避免損失。可靠性是RTOS的重要性能指標。(4)交互性外部環(huán)境是RTOS不可缺少的一個組成部分,外部環(huán)境往往是被控子系統(tǒng),兩者相互作用構(gòu)成完整的實時系統(tǒng)。3.RTOS調(diào)度給定一組實時任務(wù)和系統(tǒng)資源,確定每個任務(wù)何時何地執(zhí)行的整個過程就是調(diào)度。而RTOS中調(diào)度的目的則是要盡可能地保證每個任務(wù)滿足它們的時間約束,及時對外部請求做出響應(yīng)。實時調(diào)度技術(shù)常用的有以下兩種。(1)搶占式調(diào)度和非搶占式調(diào)度搶占式調(diào)度通常是優(yōu)先級驅(qū)動的調(diào)度。每個任務(wù)都有優(yōu)先級,任何時候具有最高優(yōu)先級且已啟動的任務(wù)先執(zhí)行。搶占式調(diào)度實時性好、反應(yīng)快,調(diào)度算法相對簡單,可優(yōu)先保證高優(yōu)先級任務(wù)的時間約束,其缺點是上下文切換多。而非搶占式調(diào)度是指不允許任務(wù)在執(zhí)行期間被中斷,任務(wù)一旦占用微處理器就必須執(zhí)行完畢或自愿放棄,其優(yōu)點是上下文切換少,缺點是微處理器有效資源利用率低,可調(diào)度性不好。(2)靜態(tài)表驅(qū)動策略和優(yōu)先級驅(qū)動策略靜態(tài)表驅(qū)動策略是一種離線調(diào)度策略,指在系統(tǒng)運行前根據(jù)各任務(wù)的時間約束及關(guān)聯(lián)關(guān)系,采用某種搜索策略生成一張運行時刻表。在系統(tǒng)運行時,調(diào)度器只需根據(jù)這張時刻表啟動相應(yīng)的任務(wù)即可。4.RTOS分類RTOS主要分為強實時(HardReal-Time)系統(tǒng)和弱實時(SoftReal-Time)系統(tǒng)兩類。強實時系統(tǒng)應(yīng)用在航空航天、軍事、核工業(yè)等領(lǐng)域中,弱實時系統(tǒng)如視頻點播系統(tǒng)、信息采集與檢索系統(tǒng)等。5.實時任務(wù)分類實時任務(wù)的分類方法有多種根據(jù)任務(wù)的周期劃分,可以分為周期任務(wù)、偶發(fā)任務(wù)和非周期任務(wù)3類。根據(jù)是否允許任務(wù)超時,以及超時后對系統(tǒng)造成的影響,任務(wù)又分為強實時任務(wù)、準實時任務(wù)、弱實時任務(wù)和弱一強實時任務(wù)4類。2嵌入式微處理器體系結(jié)構(gòu)2.1馮·諾依曼結(jié)構(gòu)與哈佛結(jié)構(gòu)1.馮·諾依曼(VonNeumann)結(jié)構(gòu)馮·諾依曼結(jié)構(gòu)的計算機由CPU和存儲器構(gòu)成,其程序和數(shù)據(jù)共用一個存儲空間,程序指令存儲地址和數(shù)據(jù)存儲地址指向同一個存儲器的不同物理位置;采用單一的地址及數(shù)據(jù)總線,程序指令和數(shù)據(jù)的寬度相同。程序計數(shù)器(PC)是CPU內(nèi)部指示指令和數(shù)據(jù)的存儲位置的寄存器。CPU通過程序計數(shù)器提供的地址信息,對存儲器進行尋址,找到所需要的指令或數(shù)據(jù),然后對指令進行譯碼,最后執(zhí)行指令規(guī)定的操作。處理器執(zhí)行指令時,先從儲存器中取出指令解碼,再取操作數(shù)執(zhí)行運算,即使單條指令也要耗費幾個甚至幾十個周期,在高速運算時,在傳輸通道上會出現(xiàn)瓶頸效應(yīng)。使用馮.諾依曼結(jié)構(gòu)的CPU和微控制器有Intel公司的8086系列及其他CPU,ARM公司的ARM7、MIPS公司的MIPS處理器等。2.哈佛(Harvard)結(jié)構(gòu)哈佛結(jié)構(gòu)的主要特點是將程序和數(shù)據(jù)存儲在不同的存儲空間中,即程序存儲器和數(shù)據(jù)存儲器是兩個相互獨立的存儲器,每個存儲器獨立編址、獨立訪問。系統(tǒng)中具有程序的數(shù)據(jù)總線與地址總線,數(shù)據(jù)的數(shù)據(jù)總線與地址總線。這種分離的程序總線和數(shù)據(jù)總線可允許在一個機器周期內(nèi)同時獲取指令字(來自程序存儲器)和操作數(shù)(來自數(shù)據(jù)存儲器),從而提高執(zhí)行速度,提高數(shù)據(jù)的吞吐率。又由于程序和數(shù)據(jù)存儲器在兩個分開的物理空間中,因此取指和執(zhí)行能完全重疊,具有較高的執(zhí)行效率。目前使用哈佛結(jié)構(gòu)的CPU和微控制器品種有很多,有摩托羅拉公司的MC68系列、Zilog公司的Z8系列、ATMEL公司的AVR系列和ARM公司的ARM9、ARM10和ARM11等。2.2精簡指令集計算機早期的計算機采用復(fù)雜指令集計算機(ComplexInstructionSetComputer,CISC)體系,例如Intel公司的X86系列CPU,從8086到Pentium系列,采用的都是典型的CISC體系結(jié)構(gòu)。采用CISC體系結(jié)構(gòu)的計算機各種指令的使用頻率相差懸殊,統(tǒng)計表明,大概有20%的比較簡單的指令被反復(fù)使用,使用量約占整個程序的80%;而有80%左右的指令則很少使用,其使用量約占整個程序的20%,即指令的2/8規(guī)律。在CISC中,為了支持目標程序的優(yōu)化,支持高級語言和編譯程序,增加了許多復(fù)雜的指令,用一條指令來代替一串指令。通過增強指令系統(tǒng)的功能,簡化軟件,確增加了硬件的復(fù)雜程度。而這些復(fù)雜指令并不等于有利于縮短程序的執(zhí)行時間。在VLSI制造工藝中要求CPU控制邏輯具有規(guī)整性,而CISC為了實現(xiàn)大量復(fù)雜的指令,控制邏輯極不規(guī)整,給VLSI工藝造成很大困難。精簡指令集計算機(ReducedInstructionSetComputer,RISC)體系結(jié)構(gòu)是在CISC的基礎(chǔ)上產(chǎn)生并發(fā)展起來的,RISC的著眼點不是簡單地放在簡化指令系統(tǒng)上,而是通過簡化指令系統(tǒng)使計算機的結(jié)構(gòu)更加簡單合理,從而提高運算效率。在RISC中,優(yōu)先選取使用頻率最高的、很有用但不復(fù)雜的指令,避免使用復(fù)雜指令;固定指令長度,減少指令格式和尋址方式種類;指令之間各字段的劃分比較一致,各字段的功能也比較規(guī)整;采用Load/Store指令訪問存儲器,其余指令的操作都在寄存器之間進行;增加CPU中通用寄存器數(shù)量,算術(shù)邏輯運算指令的操作數(shù)都在通用寄存器中存?。淮蟛糠种噶羁刂圃谝粋€或小于一個機器周期內(nèi)完成;以硬布線控制邏輯為主,不用或少用微碼控制;采用高級語言編程,重視編譯優(yōu)化工作,以減少程序執(zhí)行時間。2.3流水線技術(shù)1.流水線的基本概念流水線技術(shù)應(yīng)用于計算機系統(tǒng)結(jié)構(gòu)的各個方面,流水線技術(shù)的基本思想是將一個重復(fù)的時序分解成若干個子過程,而每一個子過程都可有效地在其專用功能段上與其他子過程同時執(zhí)行。在流水線技術(shù)中,流水線要求可分成若干相互聯(lián)系的子過程,實現(xiàn)子過程的功能所需時間盡可能相等。形成流水處理,需要一段準備時間。指令流發(fā)生不能順序執(zhí)行時,會使流水線過程中斷,再形成流水線過程則需要時間。指令流水線就是將一條指令分解成一連串執(zhí)行的子過程,例如把指令的執(zhí)行過程細分為取指令、指令譯碼、取操作數(shù)和執(zhí)行4個子過程。在CPU中把一條指令的串行執(zhí)行子過程變?yōu)槿舾蓷l指令的子過程在CPU中重疊執(zhí)行。如果能做到每條指令均分解為m個子過程,且每個子過程的執(zhí)行時間都一樣,則利用此條流水線可將一條指令的執(zhí)行時間T由原來的T縮短為T/m。指令流水線處理的時空圖如圖1.2.1所示,其中的1、2、3、4、5表示要處理的5條指令。從圖可見采用流水方式可同時執(zhí)行多條指令。圖1.2.1指令流水線處理的時空圖2.流水線處理機的主要指標(1)吞吐率在單位時間內(nèi),流水線處理機流出的結(jié)果數(shù)稱為吞吐率。對指令而言就是單位時間里執(zhí)行的指令數(shù)。如果流水線的子過程所用時間不一樣長,則吞吐率P應(yīng)為最長子過程的倒數(shù),即:(2)建立時間流水線開始工作,須經(jīng)過一定時間才能達到最大吞吐率,這就是建立時間。若m個子過程所用時間一樣,均為t0,則建立時間T0=mΔt0。2.4信息存儲的字節(jié)順序1.大端和小端存儲法大多數(shù)計算機使用8位(bit)的數(shù)據(jù)塊做為最小的可尋址的存儲器單位,稱為一個字節(jié)。存儲器的每一個字節(jié)都用一個唯一的地址(address)來標識。所有可能地址的集合稱為存儲器空間。對于一個多字節(jié)類型的數(shù)據(jù),在存儲器中有兩種存放方法。低字節(jié)數(shù)據(jù)存放在內(nèi)存低地址處,高字節(jié)數(shù)據(jù)存放在內(nèi)存高地址處,稱為小端字節(jié)順序存儲法;高字節(jié)數(shù)據(jù)存放在內(nèi)存低地址處,低字節(jié)數(shù)據(jù)存放在內(nèi)存高地址處,稱為大端字節(jié)順序存儲法。例如,假設(shè)一個32位字長的微處理器上定義一個int類型的常量a,其內(nèi)存地址位于0x6000處,其值用十六進制表示為0x23456789。如圖1.2.2(a)所示,如果按小端法存儲,則其最低字節(jié)數(shù)據(jù)0x89存放在內(nèi)存低地址0x6000處,最高字節(jié)數(shù)據(jù)0x23存放在內(nèi)存高地址0x6003處。如圖1.2.2(b)所示,如果按大端法存儲,則其最高字節(jié)數(shù)據(jù)0x23存放在內(nèi)存的低地址0x6000處,而最低字節(jié)數(shù)據(jù)0x89存放在內(nèi)存的高地址0x6003處。地址0x60000x60010x60020x6003數(shù)據(jù)(十六進制)0x890x670x450x23數(shù)據(jù)(二進制)01100111010001010010001100000001(a)小端存儲法地址0x60000x60010x60020x6003數(shù)據(jù)(十六進制)0x230x450x670x89數(shù)據(jù)(二進制)01100111010001010010001100000001(b)大端存儲法圖1.2.2大端和小端存儲法示例采用大端存儲法還是小端存儲法,各處理器廠商的立場和習(xí)慣不同,并不存在技術(shù)原因。Intel公司X86系列的微處理器都采用小端存儲法,而IBM、Motorola和SunMicrosystems公司的大多數(shù)微處理器采用大端存儲法。此外,還有一些微處理器,如ARM、MIPS和Motorola的PowerPC等,可以通過芯片上電啟動時確定的字節(jié)存儲順序規(guī)則,來選擇存儲模式。對于大多數(shù)程序員來言,機器的字節(jié)存儲順序是完全不可見的,無論哪一種存儲模式的微處理器編譯出的程序都會得到相同的結(jié)果。不過,當(dāng)不同存儲模式的微處理器之間通過網(wǎng)絡(luò)傳送二進制數(shù)據(jù)時,在有些情況下,字節(jié)順序會成為問題,會出現(xiàn)所謂的“UNIX”問題。字符“UNIX”在16位字長的微處理器上被表示為兩個字節(jié),當(dāng)被傳送到不同存儲模式的機器上時,則會變?yōu)椤癗UXI”。為了避免這類問題,網(wǎng)絡(luò)應(yīng)用程序代碼編寫必須遵循已建立好的關(guān)于字節(jié)順序的規(guī)則,以保證發(fā)送方微處理器先在其內(nèi)部將發(fā)送的數(shù)據(jù)轉(zhuǎn)換成網(wǎng)絡(luò)標準,而接收方微處理器再將網(wǎng)絡(luò)標準轉(zhuǎn)換為它的內(nèi)部表示。2.可移植性問題當(dāng)在不同存儲順序的微處理器間進行程序移植時,要特別注意存儲模式的影響。把從軟件得到的二進制數(shù)據(jù)寫成一般的數(shù)據(jù)格式往往會涉及到存儲順序的問題。3.通信中的存儲順序問題在網(wǎng)絡(luò)通信中,Internet協(xié)議(即IP協(xié)議)定義了標準的網(wǎng)絡(luò)字節(jié)順序。該字節(jié)順序被用于所有設(shè)計使用在IP協(xié)議上的數(shù)據(jù)包、高級協(xié)議和文件格式上。很多網(wǎng)絡(luò)設(shè)備也存在存儲順序問題:即字節(jié)中的位采用大端法(最重要的位優(yōu)先)或小端法(最不重要的位優(yōu)先)發(fā)送。這取決于OSI模型最底層的數(shù)據(jù)鏈路層。4.?dāng)?shù)據(jù)格式的存儲順序一個典型的例子就是日期表示方法,不同的國家采用不同的表示方法,美國和其他一些國家,日期格式順序一般是:月一日一年(如:12月24日2007年或12/24/2007),這是中間表示法。在世界大部分國家中,包括除瑞典、拉脫維亞和匈牙利之外的歐洲,日期格式為:日一月一年(比如24日12月2007或12/24/2007),這是小端表示法。中國、日本和ISO8601國際正式標準順序的日期順序排列順序是;年一月一日(比如2007年12月24日或2007-12-24),這是大端表示法。在ISO8601中年份必須用4位數(shù)字表示,月份和日數(shù)分別用兩位表示。因此,個位數(shù)的日和月必須在前面填補一個零,如01,02,…,09等。3嵌入式微處理器的結(jié)構(gòu)和類型3.1嵌入式微控制器嵌入式微控制器(MicroControllerUnit,MCU)又稱為單片機,芯片內(nèi)部集成ROM、EPROM、RAM、總線、總線邏輯、定時/計數(shù)器、看門狗、I/O、串行口、脈寬調(diào)制輸出(PWM)、A/D、D/A、Flash、EEPROM等各種必要功能和外設(shè)。嵌入式微控制器具有單片化、體積小、功耗和成本低,可靠性高等特點,約占嵌入式系統(tǒng)市場份額的70%。嵌入式微控制器品種和數(shù)量很多,典型產(chǎn)品有8051、MCS-251、MCS-96/196/296、C166/167、68K系列,TI公司的MSP430系列和Motorola公司的68H12系列,以及MCU8XC930/931、C540、C541,并且有支持I2C、CAN-BUS、LCD及眾多專用嵌入式微控制器和兼容系列。3.2嵌入式微處理器嵌入式微處理器(EmbeddedMicroProcessingUnit,EMPU)由通用計算機中的CPU發(fā)展而來,嵌入式微處理器只保留和嵌入式應(yīng)用緊密相關(guān)的功能硬件,去除其他的冗余功能部分,以最低的功耗和資源實現(xiàn)嵌入式應(yīng)用的特殊要求。目前主流的32位嵌入式微處理器系列主要有ARM系列、MIPS系列、PowerPC系列等。屬于這些系列的嵌入式微處理器產(chǎn)品很多,有千種以上。1.ARM系列ARM(AdvancedRISCMachine)公司的ARM微處理器體系結(jié)構(gòu)目前被公認為是嵌入式應(yīng)用領(lǐng)域領(lǐng)先的32位嵌入式RISC微處理器結(jié)構(gòu)。ARM體系結(jié)構(gòu)目前發(fā)展并定義了7種不同的版本。從版本1到版本7,ARM體系的指令集功能不斷擴大。ARM處理器系列中的各種處理器,雖然在實現(xiàn)技術(shù)、應(yīng)用場合和性能方面都不相同,但只要支持相同的ARM體系版本,基于它們的應(yīng)用軟件是兼容的。表1.3.1給出了ARM體系結(jié)構(gòu)各版本的特點。目前,70%的移動電話、大量的游戲機、手持PC和機頂盒等都已采用了ARM處理器,許多一流的芯片廠商都是ARM的授權(quán)用戶,如Samsung、TI、Freescale、ST等公司。版本ARM處理器系列特點ARMv1ARM1該版體系結(jié)構(gòu)只在原型機ARM1出現(xiàn)過,沒有用于商業(yè)產(chǎn)品?;拘阅埽?基本的數(shù)據(jù)處理指令(無乘法)?26位尋址ARMv2ARM2和ARM3該版體系結(jié)構(gòu)對ARMv1版進行了擴展,版本ARMv2a是v2版的變種,ARM3芯片采用了ARMv2a。ARMv2版增加了以下功能:?32位乘法和乘加指令?支持32位協(xié)處理器操作指令?快速中斷模式表1.3.1ARM體系結(jié)構(gòu)版本及特點ARMv3ARMv3MARM6、ARM7DI、ARM7MARMv3版體系結(jié)構(gòu)對ARM體系結(jié)構(gòu)作了較大的改動:?尋址空間增至32位(4GB)?獨立的當(dāng)前程序狀態(tài)寄存器CPSR和程序狀態(tài)保存寄存器SPSR,保存程序異常中斷時的程序狀態(tài),以便于對異常的處?增加了異常中斷(Abort)和未定義兩種處理器模式?增加了MMU支持?ARMv3M增加了有符號和無符號長乘法指令A(yù)RMv4ARMv4TStrongARM、ARM7TDMI、ARM9TARMv4版體系結(jié)構(gòu)是目前應(yīng)用最廣的ARM體系結(jié)構(gòu),在v3版上作了進一步擴充,指令集中增加了以下功能:?增加了系統(tǒng)模式?增加了16位Thumb指令集?完善了軟件中斷SWI指令的功能?不再支持26位尋址模式ARMv5TEARMv5TEJARM9E、ARM10E、Xscale、ARM7EJ、ARM926EJARMv5版體系結(jié)構(gòu)在ARMv4版基礎(chǔ)上增加了一些新的指令,包括:?增加ARM與Thumb狀態(tài)之間切換的指令?增強乘法指令和快速乘累加指令?增加了數(shù)字信號處理指令(ARMv5TE版)?增加了Java加速功能(ARMv5TEJ版)ARMv6ARM11ARMv6版體系結(jié)構(gòu)是2001年發(fā)布的,首先在ARM11處理器中使用。此體系結(jié)構(gòu)在ARMv5版基礎(chǔ)上增加了以下功能:?Thumb-2增強代碼密度?SIMD增強媒體和數(shù)字處理功能?TrustZone

提供增強的安全性能?IEM提供增強的功耗管理功能ARMv7Cortex系列ARMv7版體系結(jié)構(gòu)定義了3種不同的微處理器系列:?A系列為面向應(yīng)用的微處理器核,支持復(fù)雜操作系統(tǒng)和用戶應(yīng)用?R系列為深度嵌入的微處理器核,針對實時系統(tǒng)應(yīng)用?M系列為微控制核,針對成本敏感的嵌入式控制應(yīng)用2.MIPS系列美國斯坦福大學(xué)的Hennessy教授領(lǐng)導(dǎo)的研究小組研制的MIPS(MicroprocessorwithoutInterlockedPipedStages,無互鎖流水級的微處理器)是世界上很流行的一種RISC處理器,其機制是盡量利用軟件辦法避免流水線中的數(shù)據(jù)相關(guān)問題。從20世紀80年代初期MIPS處理器發(fā)明到現(xiàn)在的這20多年里,MIPS處理器以其高性能的處理能力被廣泛應(yīng)用于寬帶接入、路由器、調(diào)制解調(diào)設(shè)備、電視、游戲、打印機、辦公用品、DVD播放等廣泛的領(lǐng)域。和ARM公司一樣,MIPS公司本身并不從事芯片的生產(chǎn)活動(只進行設(shè)計),不過其他公司如果要生產(chǎn)該芯片,則必須得到MIPS公司的許可。MIPS32位處理器內(nèi)核系列和特點如表1.3.2所示。內(nèi)核特點M4KTM系列針對多CPU集成的SOC應(yīng)用領(lǐng)域為下一代消費類產(chǎn)品、下一代網(wǎng)絡(luò)和寬帶產(chǎn)品

M4KTM系列4KpTM、4KcTM內(nèi)核針對SOC系統(tǒng)優(yōu)化,其內(nèi)存、指令緩存和數(shù)據(jù)緩存都可以根據(jù)具體應(yīng)用調(diào)整大小

M4KTM系列4KEpTM、4KEmTM和4KEcTM內(nèi)核與4KTM系列類似,但能提供更高性能,在同樣時鐘頻率下指令執(zhí)行周期更短

4KSTM系列4KScTM和4KSdTM內(nèi)核針對數(shù)據(jù)通信的應(yīng)用。其特點是采用了SmartMIPSTM結(jié)構(gòu),擁有反黑客的特性,可以讓數(shù)據(jù)加密更加快速,在網(wǎng)絡(luò)處理、智能卡、機頂盒等方面有廣泛應(yīng)用表1.3.2MIPS32位處理器內(nèi)核系列和特點ProSeriesTM系列M4KProTM、4KEProTM、4KEmProTM、4KEcProms和4KSdProTM內(nèi)核該系列內(nèi)核允許SOC的設(shè)計者創(chuàng)造自己的CorExtendTM擴

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論