版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第1章嵌入式系統(tǒng)及應(yīng)用開(kāi)發(fā)概述1.1嵌入式系統(tǒng)的定義及特點(diǎn)1.2嵌入式系統(tǒng)的發(fā)展及應(yīng)用1.3嵌入式系統(tǒng)的總體組成1.4常用的嵌入式處理器1.5常用的嵌入式操作系統(tǒng)1.6嵌入式系統(tǒng)的設(shè)計(jì)方法1.7嵌入式系統(tǒng)的應(yīng)用開(kāi)發(fā)1.8嵌入式系統(tǒng)的學(xué)習(xí)探討習(xí)題第1章嵌入式系統(tǒng)及應(yīng)用開(kāi)發(fā)概述
本章概括地闡述了嵌入式系統(tǒng)及應(yīng)用開(kāi)發(fā)的基本概念、基礎(chǔ)知識(shí)、基本方法等,包括嵌入式系統(tǒng)的定義、發(fā)展應(yīng)用、總體組成、常用的嵌入式處理器、常用的嵌入式操作系統(tǒng)、嵌入式系統(tǒng)的設(shè)計(jì)方法、嵌入式系統(tǒng)的設(shè)計(jì)開(kāi)發(fā)和嵌入式系統(tǒng)的學(xué)習(xí)探討等內(nèi)容。
1.1嵌入式系統(tǒng)的定義及特點(diǎn)
1.1.1嵌入式系統(tǒng)的定義
IEEE的定義:嵌入式系統(tǒng)是用來(lái)控制、監(jiān)控或者輔助操作機(jī)器、裝置、工廠(chǎng)等大規(guī)模系統(tǒng)的設(shè)備。我國(guó)通常定義:嵌入式系統(tǒng)(EmbeddedSystem)就是嵌入到目標(biāo)體系中的專(zhuān)用計(jì)算機(jī)系統(tǒng)。嵌入性、專(zhuān)用性與計(jì)算機(jī)系統(tǒng)是嵌入式系統(tǒng)的3個(gè)基本要素。具體地講,嵌入式系統(tǒng)是指以應(yīng)用為中心,以計(jì)算機(jī)技術(shù)為基礎(chǔ),并且軟硬件可裁減,適用于應(yīng)用系統(tǒng)對(duì)功能、可靠性、成本、體積、功耗有嚴(yán)格要求的專(zhuān)用計(jì)算機(jī)系統(tǒng)。
1.1.2嵌入式系統(tǒng)的特點(diǎn)1.嵌入式系統(tǒng)是專(zhuān)用的計(jì)算機(jī)系統(tǒng)2.嵌入式系統(tǒng)須滿(mǎn)足系統(tǒng)應(yīng)用環(huán)境的要求3.嵌入式系統(tǒng)需滿(mǎn)足對(duì)象系統(tǒng)的控制要求4.嵌入式系統(tǒng)是一個(gè)知識(shí)集成應(yīng)用系統(tǒng)5.嵌入式系統(tǒng)具有較長(zhǎng)的應(yīng)用生命周期6.嵌入式系統(tǒng)軟件固化在非易失性存儲(chǔ)器中7.多數(shù)嵌入式系統(tǒng)具有實(shí)時(shí)性要求8.嵌入式系統(tǒng)設(shè)計(jì)需專(zhuān)用的開(kāi)發(fā)環(huán)境和工具1.2嵌入式系統(tǒng)的發(fā)展應(yīng)用1.嵌入式系統(tǒng)發(fā)展的4個(gè)階段
1)以單片機(jī)為核心的低級(jí)嵌入式系統(tǒng)主要特點(diǎn)是系統(tǒng)結(jié)構(gòu)和功能單一,處理效率不高,存儲(chǔ)容量較小,用戶(hù)接口簡(jiǎn)單或沒(méi)有用戶(hù)接口,但它使用簡(jiǎn)單,成本低廉。
2)以嵌入式微處理器為基礎(chǔ)的初級(jí)嵌入式系統(tǒng)主要特點(diǎn)是處理器種類(lèi)多,通用性較弱;系統(tǒng)效率高,成本低;操作系統(tǒng)具有兼容性、擴(kuò)展性,但用戶(hù)界面簡(jiǎn)單。
3)以嵌入式操作系統(tǒng)為標(biāo)志的中級(jí)嵌入式系統(tǒng)主要特點(diǎn)是嵌入式系統(tǒng)能運(yùn)行于各種不同嵌入式處理器上,兼容性好;操作系統(tǒng)內(nèi)核小、效率高,并且可任意裁剪;具有文件和目錄管理、多任務(wù)功能,支持網(wǎng)絡(luò)、具有圖形窗口以及良好的用戶(hù)界面;具有大量的應(yīng)用程序接口,嵌入式應(yīng)用軟件豐富。1.2.1嵌入式系統(tǒng)的發(fā)展4)以Internet為標(biāo)志的高級(jí)嵌入式系統(tǒng)目前嵌入式系統(tǒng)大多孤立于Intemet,隨著網(wǎng)絡(luò)應(yīng)用的不斷深入,隨著信息家電的發(fā)展,嵌入式系統(tǒng)的應(yīng)用必將與Internet有機(jī)結(jié)合在一起,成為嵌入式系統(tǒng)發(fā)展的未來(lái)?;?2位/64位微處理器的嵌入式系統(tǒng)的優(yōu)點(diǎn):①芯片內(nèi)外資源豐富,硬件系統(tǒng)簡(jiǎn)單;②可運(yùn)行各種操作系統(tǒng),降低了復(fù)雜系統(tǒng)應(yīng)用程序開(kāi)發(fā)的難度;可運(yùn)行多種操作系統(tǒng),應(yīng)用程序開(kāi)發(fā)難度降低,系統(tǒng)人機(jī)界面友好;③系統(tǒng)數(shù)據(jù)處理能力強(qiáng),控制精度高;④有成熟的開(kāi)發(fā)工具,豐富的開(kāi)發(fā)資源和資料;⑤32位/64位的嵌入式系統(tǒng)的開(kāi)發(fā)人群不斷增多,有助于降低企業(yè)項(xiàng)目開(kāi)發(fā)成本、保持開(kāi)發(fā)的連續(xù)性。2.嵌入式系統(tǒng)的發(fā)展趨勢(shì)
1)嵌入式系統(tǒng)結(jié)構(gòu)將更加復(fù)雜,硬件向集成化發(fā)展,軟件將逐漸PC化
2)嵌入式系統(tǒng)的小型化、智能化、網(wǎng)絡(luò)化、可視化、微功耗和低成本
3)不斷改善人機(jī)交互的手段,提供精巧的多媒體人機(jī)界面
4)云計(jì)算、可重構(gòu)、虛擬化等技術(shù)被進(jìn)一步應(yīng)用到嵌入式系統(tǒng)
5)嵌入式軟件開(kāi)發(fā)平臺(tái)化、標(biāo)準(zhǔn)化、系統(tǒng)可升級(jí),代碼可復(fù)用將更受重視其中:云計(jì)算(Cloud)是將計(jì)算分布在大量的分布式計(jì)算機(jī)上,這樣我們只需要一個(gè)終端,就可以通過(guò)網(wǎng)絡(luò)服務(wù)來(lái)實(shí)現(xiàn)所需要的計(jì)算任務(wù),甚至是超級(jí)計(jì)算任務(wù)。可重構(gòu)性是指在一個(gè)系統(tǒng)中,其硬件模塊或(和)軟件模塊均能根據(jù)變化的數(shù)據(jù)流或控制流對(duì)系統(tǒng)結(jié)構(gòu)或算法進(jìn)行重新配置(或重新設(shè)置)。虛擬化是指計(jì)算機(jī)軟件在一個(gè)虛擬的平臺(tái)上而不是一個(gè)真實(shí)的硬件上運(yùn)行。
嵌入式系統(tǒng)具有非常廣闊的應(yīng)用領(lǐng)域,是現(xiàn)代計(jì)算機(jī)技術(shù)改造傳統(tǒng)產(chǎn)業(yè)、提升多領(lǐng)域技術(shù)水平的有力主具,可以說(shuō)嵌入式系統(tǒng)無(wú)處不在。其主要應(yīng)用領(lǐng)域包括智能產(chǎn)品(智能儀表、智能和信息家電)、工業(yè)自動(dòng)化(測(cè)控裝置、數(shù)控機(jī)床、數(shù)據(jù)采集與處理)、辦公自動(dòng)化(通用計(jì)算機(jī)中的智能接口)、電網(wǎng)安全、電網(wǎng)設(shè)備檢測(cè)、石油化工、商業(yè)應(yīng)用(電子秤,POS機(jī),條碼識(shí)別機(jī))、安全防范(防火、防盜、防泄漏等報(bào)警系統(tǒng))、網(wǎng)絡(luò)通信(路由器、網(wǎng)關(guān)、手機(jī)、PDA、無(wú)線(xiàn)傳感器網(wǎng)絡(luò))、汽車(chē)電子與航空航天(汽車(chē)防盜報(bào)警器、汽車(chē)和飛行器黑匣子)以及軍事等各個(gè)領(lǐng)域,如圖1.1所示。1.2.2嵌入式系統(tǒng)的應(yīng)用圖1.1嵌入式系統(tǒng)的應(yīng)用領(lǐng)域
1.3嵌入式系統(tǒng)的總體組成圖1.2基于控制領(lǐng)域的典型嵌入式系統(tǒng)1.3.1嵌入式系統(tǒng)的硬件圖1.3典型的嵌入式系統(tǒng)硬件組成1.中間層程序中間層程序主要為上層軟件提供了設(shè)備的操作接口,它包括硬件抽象層(HardwareAbstractionLayer,HAL)、板級(jí)支持包(BoardSupportPackage,BSP)以及設(shè)備驅(qū)動(dòng)程序。
1)硬件抽象層硬件抽象層就是通過(guò)程序來(lái)控制處理器、I/O接口以及存儲(chǔ)器等所有硬件的操作,這樣使系統(tǒng)的設(shè)備驅(qū)動(dòng)程序與硬件設(shè)備無(wú)關(guān),提高了系統(tǒng)中的移植性。它包括相關(guān)硬件的初始化、數(shù)據(jù)的輸入/輸出操作、硬件設(shè)備的配置等操作。
2)板級(jí)支持包板級(jí)支持包主要是實(shí)現(xiàn)對(duì)嵌入式操作系統(tǒng)的支持,為上層的驅(qū)動(dòng)程序提供訪(fǎng)問(wèn)硬件設(shè)備寄存器的函數(shù)包。BSP實(shí)現(xiàn)的功能主要有:①系統(tǒng)啟動(dòng)時(shí)對(duì)硬件初始化;②為驅(qū)動(dòng)程序提供訪(fǎng)問(wèn)硬件的手段,BootLoader便屬于此類(lèi)。1.3.2嵌入式系統(tǒng)的軟件3)設(shè)備驅(qū)動(dòng)程序設(shè)備的驅(qū)動(dòng)程序?yàn)樯蠈榆浖峁┱{(diào)用的操作接口。驅(qū)動(dòng)程序除了實(shí)現(xiàn)本的功能函數(shù)外(初始化、中斷響應(yīng)、發(fā)送、接收等),還具備完善的錯(cuò)誤處理函數(shù)。
2.嵌入式操作系統(tǒng)嵌入式操作系統(tǒng)在復(fù)雜的嵌入式系統(tǒng)中發(fā)揮著非常重要的作用,有了嵌入式操作系統(tǒng),進(jìn)程管理、進(jìn)程間的通信、內(nèi)存管理、文件管理、驅(qū)動(dòng)程序、網(wǎng)絡(luò)協(xié)議等方可實(shí)現(xiàn)。
3.應(yīng)用軟件層應(yīng)用軟件是在嵌入式操作系統(tǒng)支持下通過(guò)調(diào)用API函數(shù),結(jié)合實(shí)際應(yīng)用編制的用戶(hù)軟件。如抄表系統(tǒng)的軟件、掌上信息查詢(xún)軟件等。
嵌入式微處理器(EmbeddedMicrocomputerUnit,EMPU)、嵌入式微控制器(EmbeddedMicrocontrollerUnit,EMCU)嵌入式數(shù)字信號(hào)處理器(EmbeddedDigitalSignalProcessor,EDSP)嵌入式片上系統(tǒng)(SystemOnChip,SOC)嵌入式可編程片上系統(tǒng)(SystemOnaProgrammableChip,SOPC)。1.4常用的嵌入式處理器1.4.1嵌入式處理器的種類(lèi)
1.嵌入式微處理器嵌入式微處理器是由PC中的CPU演變而來(lái)的,與通用PC的微處理器不同的是,它只保留了與嵌入式應(yīng)用緊密相關(guān)的功能硬件。典型的EMPU有PowerPC、MIPS、MC68000、i386EX、AMDK62E以及ARM等,其中ARM是應(yīng)用最廣、最具代表性的嵌入式微處理器。
2.嵌入式微控制器嵌入式微控制器的典型代表是單片機(jī),其內(nèi)部集成了ROM/EPROM/Flash、RAM、總線(xiàn)、總線(xiàn)邏輯、定時(shí)器、看門(mén)狗、I/O接口等各種必要的功能部件。典型的EMCU有51系列、MC68系列、PIC系列、MSP430系列等。
3.嵌入式數(shù)字信號(hào)處理器嵌入式數(shù)字信號(hào)處理器(DSP)是專(zhuān)門(mén)用于數(shù)字信號(hào)處理的微處理器,在系統(tǒng)結(jié)構(gòu)和指令算法方面經(jīng)過(guò)特殊設(shè)計(jì),因而具有很高的編譯效率和指令執(zhí)行速度。典型的EDSP有TMS32010系列、TMS32020系列等。
4.嵌入式片上系統(tǒng)
SOC是一個(gè)集成的復(fù)雜系統(tǒng),它一般將一個(gè)完整的產(chǎn)品的各功能集成在一個(gè)芯片上或芯片組上,其中可能包括處理器CPU、存儲(chǔ)器、硬件加速單元、與外圍設(shè)備的接口I/F,模數(shù)混合放大電路,甚至延伸到傳感器、微機(jī)電和微光電單元。
SOC最大的特點(diǎn)是成功實(shí)現(xiàn)了軟硬件無(wú)縫結(jié)合,直接在處理器的片內(nèi)嵌入了操作系統(tǒng)。由于片上系統(tǒng)絕大部分系統(tǒng)構(gòu)件都是在系統(tǒng)內(nèi)部,整個(gè)系統(tǒng)就特別簡(jiǎn)潔,不僅減小了系統(tǒng)的體積和功耗,而且提高了系統(tǒng)的可靠性和設(shè)計(jì)生產(chǎn)效率。
5.嵌入式可編程片上系統(tǒng)可編程片上系統(tǒng)SOPC是一種基于FPGA的可重構(gòu)SOC,它集成了硬IP核或軟IP核CPU、DSP、存儲(chǔ)器、外圍I/O及可編程邏輯,是更加靈活、高效的SOC解決方案。SOC與SOPC的區(qū)別:SOC是專(zhuān)用集成系統(tǒng),設(shè)計(jì)周期長(zhǎng),設(shè)計(jì)成本高,SOPC是基于FPGA的可重構(gòu)SOC,是一種通用系統(tǒng),設(shè)計(jì)周期短,設(shè)計(jì)成本低。
英國(guó)ARM(AdvancedRISCMachines)公司成立于1990年。在1985年4月26日,第一個(gè)ARM原型在英國(guó)劍橋的Acorn計(jì)算機(jī)有限公司誕生(在美國(guó)VLSI公司制造)。目前,ARM架構(gòu)處理器已在高性能、低功耗、低成本應(yīng)用領(lǐng)域中占據(jù)領(lǐng)先地位。
ARM公司是嵌入式RISC處理器的知識(shí)產(chǎn)權(quán)IP供應(yīng)商,它為ARM架構(gòu)處理器提供了ARM處理器內(nèi)核(如ARM7TDMI、ARM9TDMI、ARM10TDMI等)和ARM處理器宏核(ARM720T、ARM920T/922T/940T、ARM1020E/1022E等),由各半導(dǎo)體公司(ARM公司合作伙伴)在上述處理器內(nèi)核或處理器宏核基礎(chǔ)上進(jìn)行再設(shè)計(jì),嵌入各種外圍和處理部件,形成各種嵌入式微處理器(EMPU)或嵌入式微控制器(EMCU)。1.4.2典型ARM微處理器系列ARM處理器目前包括ARM7系列、ARM9系列、ARM9E系列、ARM10E系列、ARM11系列、SecurCore系列、OptimoDE系列、StrongARM系列、XScale系列以及Cortex-A8系列等。
ARM7、ARM9、ARM9E及ARM10E為4個(gè)通用嵌入式微處理器系列,每個(gè)系列提供一套相對(duì)獨(dú)特的性能來(lái)滿(mǎn)足不同應(yīng)用領(lǐng)域的要求,有多個(gè)廠(chǎng)家生產(chǎn);SecurCore系列則是專(zhuān)門(mén)為安全性要求較高的場(chǎng)合而設(shè)計(jì)的;StrongARM是Intel公司生產(chǎn)的用于便攜式通信產(chǎn)品和消費(fèi)電子產(chǎn)品的理想嵌入式微處理器,應(yīng)用于多家掌上電腦系列產(chǎn)品;Xscale是Intel公司推出的基于A(yíng)RMv5TE體系結(jié)構(gòu)的全性能、高性?xún)r(jià)比、低功耗的嵌入式微處理器,應(yīng)用于數(shù)字移動(dòng)電話(huà)、個(gè)人數(shù)字助理和網(wǎng)絡(luò)產(chǎn)品等場(chǎng)合。Cortex-A8處理器是第一款基于下一代ARMv7架構(gòu)的應(yīng)用處理器,使用了能夠帶來(lái)更高性能、功耗效率和代碼密度的Thumb?-2技術(shù)。圖1.4基于A(yíng)RM核的典型嵌入式處理器系列1.4.3典型ARM微處理器簡(jiǎn)介
1.S3C44B0X微處理器簡(jiǎn)介
S3C44B0X是三星公司專(zhuān)為手持設(shè)備和一般應(yīng)用提高的高性?xún)r(jià)比、高性能的16/32位RISC型嵌入式微處理器。它使用ARM7TDMI核,工作在75MHz。S3C44B0X采用0.25um制造工藝的CMOS標(biāo)準(zhǔn)宏單元和存儲(chǔ)編譯器,它耗能低、精簡(jiǎn)及出色的全靜態(tài)設(shè)計(jì)非常適用于對(duì)成本和功耗要求較高的場(chǎng)合。為了降低系統(tǒng)總成本和減少外圍器件,這款芯片中還集成了若干部件,主要包括8KBCache(數(shù)據(jù)/指令)、內(nèi)部SRAM、外部?jī)?chǔ)存器控制器、LCD(LiquidCrystalDisplay)控制器、4個(gè)DMA通道、帶自動(dòng)握手的2通道UART、一個(gè)多主I2C(InterIntegrateCircuit)總線(xiàn)控制器、1個(gè)I2S(InterIntegrateCircuitSoundBus)總線(xiàn)控制器、5通道PWM定時(shí)器、一個(gè)看門(mén)狗定時(shí)器、71個(gè)通用I/O口、8個(gè)外部中斷源、具有日歷功能的實(shí)時(shí)時(shí)鐘RTC、8通道10位A/D轉(zhuǎn)化器、1個(gè)SIO接口以及PLL(鎖相環(huán))時(shí)鐘發(fā)生器。
S3C44B0X采用新型的總線(xiàn)結(jié)構(gòu),即三星ARMCPU嵌入式微處理器總線(xiàn)結(jié)構(gòu)SAMBAII。2.S3C2410X/S3C2440X微處理器簡(jiǎn)介
S3C2410X/S3C2440X是三星公司出品的基ARM920T核的嵌入式微處理器,它與基于A(yíng)RM7的S3C44B0X的最大區(qū)別在于,S3C2410X/S3C2440X內(nèi)部帶有全性能的內(nèi)存管理單元(MMU),適用于設(shè)計(jì)移動(dòng)手持設(shè)備類(lèi)產(chǎn)品,具有高性能、低功耗、接口豐富及體積小等優(yōu)良特性。
S3C2410X/S3C2440X提供了豐富的內(nèi)部設(shè)備:如雙重分離的16KB的指令緩存和16KB的數(shù)據(jù)緩存、MMU虛擬存儲(chǔ)器管理部件、LCD控制器、支持NAND的Flash系統(tǒng)引導(dǎo)、外部存儲(chǔ)控制器、3通道UART、4通道DMA、4通道PWM定時(shí)器、I/O端口、定時(shí)器、8通道10位A/D轉(zhuǎn)換器、觸摸屏接口、I2C總線(xiàn)接口、USB主機(jī)、USB設(shè)備、SD主卡及MMC卡接口、2通道SPI以及內(nèi)部PLL時(shí)鐘倍頻器。3.LPC2000系列嵌入式微控制器簡(jiǎn)介
LPC2000系列嵌入式微控制器是基于A(yíng)RM7TDMI-SCPU內(nèi)核的,它支持ARM和Thumb指令集,芯片內(nèi)集成豐富外設(shè),而且具有非常低的功率消耗。該系列微控制特別適用于工業(yè)控制、醫(yī)療系統(tǒng)、訪(fǎng)問(wèn)控制和POS機(jī)等場(chǎng)合。有關(guān)其系列產(chǎn)品的主要信息見(jiàn)表1.1。
4.AT91系列嵌入式微控制器簡(jiǎn)介美國(guó)AtmelAT91系列微控制器是基于A(yíng)RM7TDMI(有的基ARM920T)的嵌入式微處理器的16/32位微控制器,是目前國(guó)內(nèi)市場(chǎng)應(yīng)用最廣泛的ARM芯片之一。AT91系列微控制器定位在低功耗和實(shí)時(shí)控制應(yīng)用領(lǐng)域,它們已成功應(yīng)用在工業(yè)自動(dòng)化控制、MP3/WMA播放器、數(shù)據(jù)采集產(chǎn)品、BP機(jī)、POS機(jī)、醫(yī)療設(shè)備、GPS和網(wǎng)絡(luò)系統(tǒng)產(chǎn)品中。AT91系列微控制器為工業(yè)級(jí)芯片,價(jià)格比較便宜。基于A(yíng)RM技術(shù)的Atmel微控制器為AT91系列,其中有幾種類(lèi)型,AT91RXXXX和AT91MXXXX(內(nèi)部帶有RAM,但沒(méi)有程序存儲(chǔ)器類(lèi)型)、AT91RMXXXX(內(nèi)部帶有RAM,有ROM類(lèi)型),AT91FRXXXX(內(nèi)部帶有RAM,有Flash程序存儲(chǔ)器類(lèi)型)。5.XScale微體系結(jié)構(gòu)微處理器簡(jiǎn)介
IntelXScale微體系結(jié)構(gòu)提供了一種全新的、高性?xún)r(jià)比、低功耗且基于A(yíng)RMv5TE體系結(jié)構(gòu)的解決方案,支持16位Thumb指令和DSP擴(kuò)充?;赬Scale技術(shù)開(kāi)發(fā)的微處理器,可用于手機(jī)、便攜式終端(PDA)、網(wǎng)絡(luò)存儲(chǔ)設(shè)備及骨干網(wǎng)(BackBone)路由器等。IntelPXA250微處理器芯片就是一款集成了32位IntelXScale微處理器核的應(yīng)用處理器。
6.STR710F系列嵌入式處理器簡(jiǎn)介
STR710F系列嵌入式處理器產(chǎn)品是意法半導(dǎo)體有限公司(STMicroelectronics)生產(chǎn)的工業(yè)標(biāo)準(zhǔn)的ARM7TDMI32位RISCCPU為內(nèi)核,特別適用于需要尺寸緊湊、CPU功能強(qiáng)大的嵌入式系統(tǒng)和可升級(jí)的解決方案,如用戶(hù)界面要求高的系統(tǒng)、工廠(chǎng)自動(dòng)化系統(tǒng)和銷(xiāo)售點(diǎn)(POS)應(yīng)用等。
嵌入式操作系統(tǒng)(OperatingSystem,OS)是支持嵌入式系統(tǒng)工作的操作系統(tǒng),它負(fù)責(zé)嵌入式系統(tǒng)的全部軟、硬件資源分配、調(diào)度、控制和協(xié)調(diào)等活動(dòng),它是嵌入式應(yīng)用軟件的開(kāi)發(fā)平臺(tái),用戶(hù)的其它應(yīng)用程序都建立在嵌入式操作系統(tǒng)之上。嵌入式操作系統(tǒng)通常包括與硬件相關(guān)的底層驅(qū)動(dòng)軟件、系統(tǒng)內(nèi)核、設(shè)備驅(qū)動(dòng)接口、通信協(xié)議、圖形界面、標(biāo)準(zhǔn)化瀏覽器等。嵌入式操作系統(tǒng)是嵌入式系統(tǒng)的靈魂,它使得嵌入式系統(tǒng)的開(kāi)發(fā)效率大大提高,系統(tǒng)開(kāi)發(fā)的總工作量大大減少,并且極大地提高了嵌入式軟件的可移植性。為了滿(mǎn)足嵌入式系統(tǒng)的要求,嵌入式操作系統(tǒng)必須包含操作系統(tǒng)的一些最基本的功能,用戶(hù)可以通過(guò)API函數(shù)來(lái)使用操作系統(tǒng)。嵌入式操作系統(tǒng)具有編碼體積小、面向應(yīng)用、實(shí)時(shí)性強(qiáng)、可移植性好、可靠性高以及專(zhuān)用性強(qiáng)等特點(diǎn)。1.5常用的嵌入式操作系統(tǒng)1.5.1嵌入式操作系統(tǒng)及其特點(diǎn)
1.LinuxLinux是一種自由和開(kāi)放源碼的類(lèi)Unix操作系統(tǒng),它得名于計(jì)算機(jī)業(yè)余愛(ài)好者LinusTorvalds。目前存在著許多不同的Linux,,但它們都使用了Linux內(nèi)核。Linux可安裝在各種計(jì)算機(jī)硬件設(shè)備中,從手機(jī)、平板電腦、路由器和視頻游戲控制臺(tái),到臺(tái)式計(jì)算機(jī)、大型機(jī)和超級(jí)計(jì)算機(jī)。Linux是一個(gè)領(lǐng)先的操作系統(tǒng),世界上運(yùn)算最快的10臺(tái)超級(jí)計(jì)算機(jī)運(yùn)行的都是Linux操作系統(tǒng)。一些流行的主流Linux發(fā)行版,包括Debian(及其派生物Ubuntu),F(xiàn)edora和openSUSE等。
2.μC/OS-IIμC/OS-II是一個(gè)可裁剪、源代碼開(kāi)放、結(jié)構(gòu)小巧、搶先式的實(shí)時(shí)嵌入式操作系統(tǒng),主要用于中小型嵌入式系統(tǒng),具有執(zhí)行效率高、占用空間小、可移植性強(qiáng)、實(shí)時(shí)性能好和可擴(kuò)展性強(qiáng)等優(yōu)點(diǎn)。該操作系統(tǒng)支持多達(dá)64個(gè)任務(wù),大部分嵌入式微處理器均支持μC/OS-II。1.5.2幾種常用嵌入式操作系統(tǒng)
3.WindowsCEMicrosoftWindowsCE是Microsoft公司產(chǎn)品,是從整體上為有限資源的平臺(tái)設(shè)計(jì)的多線(xiàn)程、完整優(yōu)先權(quán)、多任務(wù)的操作系統(tǒng)。它的模塊化設(shè)計(jì)允許它對(duì)從掌上電腦到專(zhuān)用的工業(yè)控制器的用戶(hù)電子設(shè)備進(jìn)行定制。該操作系統(tǒng)的基本內(nèi)核至少需要200KB的ROM。從游戲機(jī)到現(xiàn)在大部分的掌上電腦都采用了WindowsCE作為操作系統(tǒng),其缺點(diǎn)是系統(tǒng)軟件價(jià)格過(guò)高,影響整個(gè)產(chǎn)品的成本控制。
4.VxWorksVxWorks操作系統(tǒng)是美國(guó)WindRiver公司于1983年設(shè)計(jì)開(kāi)發(fā)的一種實(shí)時(shí)操作系統(tǒng)。VxWorks擁有良好的持續(xù)發(fā)展能力、高性能的內(nèi)核以及友好的用戶(hù)開(kāi)發(fā)環(huán)境,在實(shí)時(shí)操作系統(tǒng)領(lǐng)域內(nèi)占據(jù)一席之地。它以其良好的可靠性和卓越的實(shí)時(shí)性被廣泛地應(yīng)用在通信、軍事、航空、航天等高、精、尖技術(shù)及實(shí)時(shí)性要求極高的領(lǐng)域中,如衛(wèi)星通信、軍事演習(xí)、導(dǎo)彈制導(dǎo)、飛機(jī)導(dǎo)航等。但大多數(shù)的VxWorksAPI是專(zhuān)用的,VxWorks的價(jià)格昂貴。5.pSOSpSOS是ISI公司研發(fā)的產(chǎn)品。pSOS是一個(gè)模塊化、高性能、完全可擴(kuò)展的實(shí)時(shí)操作系統(tǒng),專(zhuān)為嵌入式微處理器設(shè)計(jì),提供了一個(gè)完全多任務(wù)環(huán)境,在定制的或商業(yè)的硬件上具有高性能和高可靠性。
6.PalmOS3COM公司的PalmOS在掌上電腦和PDA市場(chǎng)上占有很大的市場(chǎng)份額。它有開(kāi)放的操作系統(tǒng)應(yīng)用程序接口,開(kāi)發(fā)商可以根據(jù)需要自行開(kāi)發(fā)所需的應(yīng)用程序。在開(kāi)發(fā)環(huán)境方面,可以在Windows和Macintosh下安裝PalmPilotDesktop。
7.QNXQNX是由加拿大QSSL公司開(kāi)發(fā)的分布式實(shí)時(shí)操作系統(tǒng)。該操作系統(tǒng)既能運(yùn)行于以IntelX86、Pentium等CPU為核心硬件環(huán)境下,也能運(yùn)行于以PowerPC、MIPS等CPU為核心的硬件環(huán)境。它廣泛應(yīng)用于自動(dòng)化、控制、機(jī)器人科學(xué)、電信、數(shù)據(jù)通信、航空航天、計(jì)算機(jī)網(wǎng)絡(luò)系統(tǒng)、醫(yī)療儀器設(shè)備、交通運(yùn)輸、安全防衛(wèi)系統(tǒng)、POS機(jī)、零售機(jī)等任務(wù)關(guān)鍵型應(yīng)用領(lǐng)域。8.蘋(píng)果iOSiOS是由蘋(píng)果公司為iPhone開(kāi)發(fā)的操作系統(tǒng)。它是以Darwin為基礎(chǔ)的,主要是給iPhone、iPodtouch以及iPad使用。原本這個(gè)系統(tǒng)名為iPhoneOS,直到2010年6月7日WWDC大會(huì)上宣布改名為iOS。iOS的系統(tǒng)架構(gòu)分為四個(gè)層次:核心操作系統(tǒng)層、核心服務(wù)層、媒體層、可輕觸層。系統(tǒng)操作占用大概240MB的存儲(chǔ)器空間。
9.AndroidAndroid是一種以L(fǎng)inux為基礎(chǔ)的開(kāi)放源碼操作系統(tǒng),主要使用于便攜設(shè)備。Android操作系統(tǒng)最初由AndyRubin開(kāi)發(fā),最初主要支持手機(jī)。2005年由Google收購(gòu)注資,并拉攏多家制造商組成開(kāi)放手機(jī)聯(lián)盟開(kāi)發(fā)改良,逐漸擴(kuò)展到平板電腦及其他領(lǐng)域上。2010年末數(shù)據(jù)顯示,僅正式推出兩年的操作系統(tǒng)的Android已經(jīng)超越稱(chēng)霸十年的諾基亞Symbian系統(tǒng),躍居全球最受歡迎的智能手機(jī)平臺(tái)。
1.6嵌入式系統(tǒng)的設(shè)計(jì)方法1.嵌入式微處理器及操作系統(tǒng)的選擇嵌入式微處理器可謂多種多樣,品種繁多,而且都在一定領(lǐng)域應(yīng)用廣泛。在嵌入式系統(tǒng)上運(yùn)行的操作系統(tǒng)也有不少,如VxWorks、Linux,Nuc1ears、WindowsCE等,即使在一個(gè)公司之內(nèi),也會(huì)同時(shí)使用好幾種處理器,甚至幾種嵌入式操作系統(tǒng)。
2.開(kāi)發(fā)工具的選擇目前用于嵌入式系統(tǒng)設(shè)計(jì)的開(kāi)發(fā)工具種類(lèi)繁多,不僅各種操作系統(tǒng)有各自的開(kāi)發(fā)工具,在同一系統(tǒng)下開(kāi)發(fā)的不同階段也使用不同的開(kāi)發(fā)工具。
3.對(duì)目標(biāo)系統(tǒng)的觀(guān)察與控制要使系統(tǒng)能正常工作,軟件開(kāi)發(fā)者必須要對(duì)目標(biāo)系統(tǒng)具有完全的觀(guān)察和控制能力,如硬件的各種寄存器、內(nèi)存空間,操作系統(tǒng)的信號(hào)量、消息隊(duì)列、任務(wù)、堆棧等。1.6.1嵌入式系統(tǒng)的總體考慮1.6.2嵌入式系統(tǒng)的設(shè)計(jì)步驟圖1.5嵌入式系統(tǒng)設(shè)計(jì)的一般流程1.6.3嵌入式系統(tǒng)的設(shè)計(jì)方法
圖1.6單片機(jī)系統(tǒng)和嵌入式系統(tǒng)的開(kāi)發(fā)流程比較圖1.7傳統(tǒng)嵌入式系統(tǒng)設(shè)計(jì)方法和嵌人式系統(tǒng)的軟硬件協(xié)同設(shè)計(jì)方法的比較
軟硬件協(xié)同設(shè)計(jì)方法與傳統(tǒng)設(shè)計(jì)相比有2個(gè)顯著的特點(diǎn):①描述軟、硬件使用統(tǒng)一的表示形式;②硬、軟件劃分可以選擇多種方案,直到滿(mǎn)足要求。
嵌入式系統(tǒng)的開(kāi)發(fā)環(huán)境一般由三個(gè)部分組成:宿主機(jī)、調(diào)試仿真器和目標(biāo)機(jī)。其中宿主機(jī)用來(lái)完成源代碼編輯、編譯、顯示一部分運(yùn)行結(jié)果等,操作系統(tǒng)可以是UNIX、Linux和Windows等,硬件可以是PC和工作站等。目標(biāo)機(jī)就是用戶(hù)嵌入式程序的運(yùn)行環(huán)境,CPU可能是任何CPU,常用的有ARM、MIPS、PowerPC、DrangonBall等。操作系統(tǒng)常用的有Linux、μC/OS-II、WindowsCE、Vxworks、等,或者根本沒(méi)有操作系統(tǒng)。使用集成開(kāi)發(fā)軟件開(kāi)發(fā)基于A(yíng)RM的應(yīng)用軟件,可以完成系統(tǒng)軟件的編輯、編譯、匯編和鏈接等工作;通過(guò)調(diào)試仿真器可以在PC上實(shí)現(xiàn)對(duì)應(yīng)用軟件的調(diào)試;再使用燒寫(xiě)軟件,將開(kāi)發(fā)成功的應(yīng)用系統(tǒng)從宿主機(jī)向目標(biāo)機(jī)下載移植,從而完成整個(gè)開(kāi)發(fā)過(guò)程。1.7嵌入式系統(tǒng)的應(yīng)用開(kāi)發(fā)1.7.1嵌入式系統(tǒng)的開(kāi)發(fā)環(huán)境圖1.8嵌入式系統(tǒng)的開(kāi)發(fā)與調(diào)試環(huán)境示意圖1.指令集模擬器部分嵌入式系統(tǒng)集成開(kāi)發(fā)環(huán)境提供了指令集模擬器,可方便用戶(hù)在PC上完成一部分簡(jiǎn)單的調(diào)試工作,但是由于指令集模擬器與真實(shí)的硬件環(huán)境相差很大,因此即使用戶(hù)是用指令集模擬器調(diào)試通過(guò)的程序也有可能無(wú)法在真實(shí)的硬件環(huán)境下運(yùn)行,用戶(hù)最終必須在硬件平臺(tái)上完成整個(gè)應(yīng)用的開(kāi)發(fā)。
2.駐留監(jiān)控軟件駐留監(jiān)控軟件(ResidentMonitors)是一段運(yùn)行在目標(biāo)板上的程序,集成開(kāi)發(fā)環(huán)境中的調(diào)試軟件通過(guò)以太網(wǎng)口、并行端口、串行端口等通信端口與駐留監(jiān)控軟件進(jìn)行交互,由調(diào)試軟件發(fā)布命令,通知駐留監(jiān)控軟件控制程序執(zhí)行、讀/寫(xiě)儲(chǔ)存器、讀/寫(xiě)寄存器和設(shè)置斷點(diǎn)等。駐留監(jiān)控軟件是一種比較低廉有效的調(diào)節(jié)方式,不需要任何其它的硬件調(diào)試和仿真設(shè)備。駐留監(jiān)控軟件的不便之處在于它對(duì)硬件設(shè)備的要求比較高。1.7.2嵌入式系統(tǒng)的調(diào)試工具
3.JTAG仿真器
JTAG仿真器也稱(chēng)為JTAG調(diào)試器,是通過(guò)ARM芯片的JTAG邊界掃描口進(jìn)行調(diào)試的設(shè)備。JTAG仿真器比較便宜,連接比較方便,通過(guò)現(xiàn)有的JTAG邊界掃描口與ARMCPU核通信,它無(wú)需目標(biāo)儲(chǔ)存器,不占用目標(biāo)端口的任何端口。另外,由于JTAG調(diào)試的目標(biāo)程序是在目標(biāo)板上執(zhí)行的仿真更接近于目標(biāo)硬件,因此,許多接口問(wèn)題,如高頻操作限制、AC和DC參數(shù)不匹配、電線(xiàn)長(zhǎng)度的限制等被最小化了。使用集成開(kāi)發(fā)環(huán)境配合JTAG仿真器進(jìn)行開(kāi)發(fā)是目前采用最多的一種調(diào)節(jié)方式。
4.在線(xiàn)仿真器在線(xiàn)仿真器使用仿真頭完全取代目標(biāo)板上的CPU,可以完全仿真ARM芯片的行為,提供更加深入的調(diào)試功能。但這類(lèi)仿真器為了能夠全速仿真時(shí)鐘速度高于100MHz的處理器,通常必須采用極其復(fù)雜的設(shè)計(jì)和工藝,因而價(jià)格比較昂貴。在線(xiàn)仿真器常用在A(yíng)RM的硬件開(kāi)發(fā)中,在軟件的開(kāi)發(fā)中使用較少,其價(jià)格昂貴也是在線(xiàn)仿真器難以普及的因素。1.非操作系統(tǒng)層次的應(yīng)用非操作系統(tǒng)層次的應(yīng)用,主要是在一些結(jié)構(gòu)簡(jiǎn)單的系統(tǒng)中或在實(shí)時(shí)性要求非常高的系統(tǒng)中,許多時(shí)候用于代替原來(lái)8位/16位單片機(jī)的應(yīng)用。隨著32位單片機(jī)成本的不斷降低,其成本已與8位單片機(jī)相差無(wú)幾。因此,非操作系統(tǒng)層次的應(yīng)用也越來(lái)越廣泛。
2.操作系統(tǒng)非GUI層次的應(yīng)用操作系統(tǒng)非GUI層次的應(yīng)用,主要是指其應(yīng)用程序建立在操作系統(tǒng)基礎(chǔ)上,是為了實(shí)現(xiàn)程序的多任務(wù)及實(shí)時(shí)性,此類(lèi)應(yīng)用在人機(jī)交互方面沒(méi)有很高的要求,可選擇的操作系統(tǒng)有許多。
3.操作系統(tǒng)GUI層次的應(yīng)用操作系統(tǒng)GUI層次的應(yīng)用,主要是為了方便實(shí)現(xiàn)人機(jī)交互功能、網(wǎng)絡(luò)功能、數(shù)據(jù)庫(kù)功能以及其它更復(fù)雜的應(yīng)用。GUI層次的開(kāi)發(fā),除了借助于操作系統(tǒng)及GUI庫(kù)強(qiáng)大的功能,更重要的是可以讓程序開(kāi)發(fā)人員把關(guān)注點(diǎn)集中在高層的目標(biāo)與任務(wù)的實(shí)現(xiàn)中,使嵌入式系統(tǒng)應(yīng)用的開(kāi)發(fā)更簡(jiǎn)單,讓開(kāi)發(fā)速度及開(kāi)發(fā)效率更高1.7.3嵌入式系統(tǒng)的應(yīng)用模式
1.需要交叉編譯工具嵌入式系統(tǒng)采用的處理器一般與PC不同,結(jié)構(gòu)較簡(jiǎn)單,功耗較低。由于嵌入式系統(tǒng)目標(biāo)機(jī)上的資源較為有限(內(nèi)存外存容量小,顯示功能弱),直接在目標(biāo)機(jī)上開(kāi)發(fā)和調(diào)試應(yīng)用軟件幾乎不可能。因此,目標(biāo)機(jī)的嵌入式應(yīng)用軟件開(kāi)發(fā)需要放在高性能計(jì)算機(jī)上的集成開(kāi)發(fā)環(huán)境上進(jìn)行,由于PC的大量普及和使用,現(xiàn)在的嵌入式集成開(kāi)發(fā)環(huán)境也大多運(yùn)行在PC上。需要交叉編譯工具的另一個(gè)原因是嵌入式系統(tǒng)處理器芯片的指令系統(tǒng)與PC處理器芯片的指令系統(tǒng)不同。一般情況下,PC的處理器芯片是X86芯片,使用的指令系統(tǒng)是X86指令系統(tǒng),而ARM9芯片運(yùn)行的是ARM指令系統(tǒng),兩者有很大差別。因此,用ARMADS集成開(kāi)發(fā)環(huán)境編寫(xiě)的C語(yǔ)言程序需要經(jīng)過(guò)交叉編譯器才能生成運(yùn)行在目標(biāo)機(jī)上的ARM9機(jī)器語(yǔ)言程序。1.7.4嵌入式應(yīng)用軟件的開(kāi)發(fā)2.通過(guò)仿真手段進(jìn)行調(diào)試目標(biāo)機(jī)執(zhí)行程序經(jīng)過(guò)交叉編譯后,還要經(jīng)過(guò)調(diào)試排錯(cuò),確認(rèn)能夠正常運(yùn)行才能使用。那么如何進(jìn)行調(diào)試排錯(cuò)呢?顯然在目標(biāo)機(jī)上調(diào)試排錯(cuò)是非常困難的。原因是輸入輸出方式較少,多數(shù)嵌入式系統(tǒng)顯示面積小,甚至沒(méi)有顯示屏,從而無(wú)法顯示調(diào)試信息;調(diào)試工具需要較大存儲(chǔ)空間,對(duì)嵌入式系統(tǒng)來(lái)說(shuō),比較困難。但對(duì)于臺(tái)式機(jī)而言,這些條件很容易滿(mǎn)足。因此,通常的調(diào)試也是在PC上完成的,方式就是仿真調(diào)試。
3.目標(biāo)機(jī)是最終的運(yùn)行環(huán)境對(duì)嵌入式應(yīng)用程序來(lái)說(shuō),其開(kāi)發(fā)、調(diào)試往往是在PC上完成的,但它最終的運(yùn)行環(huán)境是目標(biāo)機(jī)。嵌入式應(yīng)用程序開(kāi)發(fā)調(diào)試完成后,要下載到目標(biāo)機(jī)上運(yùn)行,正確無(wú)誤運(yùn)行后才表示成功。如果不成功或需要進(jìn)一步完善,則需重新回到PC上運(yùn)行修改調(diào)試。4.執(zhí)行應(yīng)用程序的指令通常寫(xiě)入操作系統(tǒng)在常用的嵌入式系統(tǒng)中,應(yīng)用程序的啟動(dòng)執(zhí)行指令通常需要預(yù)先寫(xiě)入操作系統(tǒng)的任務(wù)調(diào)度程序里,編輯在目標(biāo)程序中。因此,嵌入式應(yīng)用程序許與操作系統(tǒng)有一定聯(lián)系,開(kāi)發(fā)者不僅要了解應(yīng)用程序,也要了解操作系統(tǒng),知道如何讓一個(gè)應(yīng)用程序執(zhí)行。
5.系統(tǒng)資源有限在進(jìn)行嵌入式應(yīng)用軟件的開(kāi)發(fā)時(shí),就必須考慮可用資源問(wèn)題。以存儲(chǔ)容量為例,嵌入式系統(tǒng)的ROM容量一般只有幾兆字節(jié),對(duì)目標(biāo)程序有嚴(yán)格的長(zhǎng)度限制,這樣程序員在編程時(shí)就必須考慮這個(gè)限制。
6.控制特定部件在嵌入式應(yīng)用軟件開(kāi)發(fā)過(guò)程中,程序員往往需要針對(duì)特定的部件做更加細(xì)致的編寫(xiě)作業(yè)。
嵌入式系統(tǒng)的設(shè)計(jì)與開(kāi)發(fā),就是利用嵌入式微處理器/微控制器內(nèi)部的特定資源和擴(kuò)展的外部資源,來(lái)設(shè)計(jì)和開(kāi)發(fā)特定的目標(biāo)系統(tǒng)。對(duì)于基于A(yíng)RM+Linux嵌入式系統(tǒng)的學(xué)習(xí),初步具備從事ARM嵌入式系統(tǒng)應(yīng)用開(kāi)發(fā)的能力,作者認(rèn)為應(yīng)掌握ARM嵌入式系統(tǒng)的硬件結(jié)構(gòu)與工作原理、程序設(shè)計(jì)語(yǔ)言、Linux開(kāi)發(fā)環(huán)境的構(gòu)建、Linux操作系統(tǒng)的移植和開(kāi)發(fā)工具的使用,ARM+Linux嵌入式系統(tǒng)的設(shè)計(jì)與開(kāi)發(fā)方法,包括嵌入式系統(tǒng)的設(shè)計(jì)方法、ARM處理器芯片的選擇、嵌入式系統(tǒng)應(yīng)用與接口設(shè)計(jì)、嵌入式設(shè)計(jì)開(kāi)發(fā)平臺(tái)的使用等內(nèi)容。同時(shí)應(yīng)熟悉與嵌入式系統(tǒng)開(kāi)發(fā)相關(guān)的有關(guān)領(lǐng)域知識(shí)。增多,有助于降低企業(yè)項(xiàng)目開(kāi)發(fā)成本、保持開(kāi)發(fā)的連續(xù)性。1.8嵌入式系統(tǒng)的學(xué)習(xí)探討1.8.1嵌入式系統(tǒng)的學(xué)習(xí)內(nèi)容
要學(xué)好嵌入式系統(tǒng)及其開(kāi)發(fā)應(yīng)用,首先必須掌握嵌入式系統(tǒng)技術(shù)基礎(chǔ)。嵌入式系統(tǒng)技術(shù)基礎(chǔ)是進(jìn)行嵌入式設(shè)計(jì)和開(kāi)發(fā)的關(guān)鍵。技術(shù)基礎(chǔ)決定了一個(gè)人學(xué)習(xí)知識(shí)、掌握技能的能力。其次,對(duì)于嵌入式系統(tǒng)的學(xué)習(xí),必須要有一個(gè)較好的嵌入式系統(tǒng)開(kāi)發(fā)平臺(tái)和開(kāi)發(fā)環(huán)境。功能全面的開(kāi)發(fā)平臺(tái)一方面為學(xué)習(xí)提供了良好的開(kāi)發(fā)環(huán)境,另一方面開(kāi)發(fā)平臺(tái)本身也是一般的典型實(shí)際應(yīng)用系統(tǒng)。最后,對(duì)于嵌入式系統(tǒng)的學(xué)習(xí),必須要有一個(gè)較好的教師指導(dǎo),并選用幾本好的教材,采用合適、有效的學(xué)習(xí)方法。嵌入式技術(shù),內(nèi)容新穎,綜合性強(qiáng),實(shí)踐性強(qiáng),實(shí)際應(yīng)用發(fā)展前景廣闊。因此需要理論與實(shí)踐相結(jié)合,課內(nèi)與課外相結(jié)合,研究性學(xué)習(xí)與課題開(kāi)發(fā)相結(jié)合。在具備嵌入式系統(tǒng)及其開(kāi)發(fā)應(yīng)用的基礎(chǔ)知識(shí)和基本技能后,進(jìn)行課題的設(shè)計(jì)開(kāi)發(fā)時(shí)一個(gè)非常有效的方法。1.8.2嵌入式系統(tǒng)的學(xué)習(xí)條件
學(xué)習(xí)嵌入式系統(tǒng),應(yīng)采用課堂教學(xué)與課后研究探討自學(xué)相結(jié)合,理論學(xué)習(xí)與實(shí)踐應(yīng)用相結(jié)合的方法,研究性教學(xué)與課題開(kāi)發(fā)相結(jié)合。其中應(yīng)用設(shè)計(jì)與開(kāi)發(fā)實(shí)踐則是熟悉和掌握嵌入式系統(tǒng)原理和應(yīng)用開(kāi)發(fā)技巧的最好方法。利用ARM嵌入式系統(tǒng)開(kāi)展本科生研究性教學(xué),它具有以下優(yōu)點(diǎn):技術(shù)先進(jìn),社會(huì)急需,綜合性強(qiáng),創(chuàng)新性強(qiáng),成本低廉。為了描述基于A(yíng)RM嵌入式系統(tǒng)的研究性教學(xué)的研究背景、主要研究目標(biāo)、主要研究?jī)?nèi)容以及主要研究期望,圖1.9給出了基于A(yíng)RM嵌入式系統(tǒng)的研究性教學(xué)模型。1.8.3嵌入式系統(tǒng)的學(xué)習(xí)方法圖1.9基于A(yíng)RM嵌入式系統(tǒng)的研究性教學(xué)模型1.利用ARM嵌入式系統(tǒng)開(kāi)展研究性教學(xué)的研究?jī)?nèi)容(1)ARM嵌入式系統(tǒng)設(shè)計(jì)開(kāi)發(fā)基礎(chǔ)研究:主要包括ARM器件結(jié)構(gòu);ARM匯編語(yǔ)言;C/C++語(yǔ)言;操作系統(tǒng)移植;應(yīng)用程序開(kāi)發(fā);驅(qū)動(dòng)程序開(kāi)發(fā)等嵌入式系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)基礎(chǔ)理論、基本方法、基本工具的學(xué)習(xí)與使用。(2)ARM嵌入式系統(tǒng)設(shè)計(jì)與生實(shí)現(xiàn)相關(guān)研究:主要是與課題設(shè)計(jì)與實(shí)現(xiàn)有關(guān)的數(shù)字信號(hào)處理、數(shù)字圖像處理、工業(yè)智能控制、網(wǎng)絡(luò)通信控制、數(shù)字家電控制等基礎(chǔ)理論、實(shí)現(xiàn)算法和系統(tǒng)仿真等研究,重點(diǎn)是實(shí)現(xiàn)算法的設(shè)計(jì)、選擇和仿真。(3)基于A(yíng)RM的嵌入式系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn):主要包括系統(tǒng)設(shè)計(jì)需求分析;ARM實(shí)現(xiàn)硬件設(shè)計(jì);ARM操作系統(tǒng)移植;ARM應(yīng)用程序設(shè)計(jì);ARM驅(qū)動(dòng)程序設(shè)計(jì);ARM系統(tǒng)組裝與調(diào)試。2.基于A(yíng)RM嵌入式系統(tǒng)開(kāi)展研究性教學(xué)的主要形式基于A(yíng)RM嵌入式系統(tǒng)開(kāi)展研究性教學(xué)的主要形式,包括組建ARM嵌入式系統(tǒng)學(xué)習(xí)興趣小組、課題系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)研究小組和選撥教師科研項(xiàng)目助理等,通過(guò)專(zhuān)題訓(xùn)練、分散研究、定期討論、按需答疑、總結(jié)匯報(bào)等形式開(kāi)展研究活動(dòng)。
3.基于A(yíng)RM嵌入式系統(tǒng)的研究性教學(xué)的主要成效(1)熟練掌握ARM嵌入式系統(tǒng)基礎(chǔ)理論、基本方法、基本技巧、調(diào)試方法和調(diào)試技巧。(2)熟練掌握與ARM嵌入式系統(tǒng)設(shè)計(jì)開(kāi)發(fā)課題相關(guān)的基礎(chǔ)理論、基本方法、基本技巧。(3)全面提高學(xué)生的綜合應(yīng)用能力、實(shí)踐動(dòng)手能力、創(chuàng)新創(chuàng)業(yè)能力和就業(yè)核心競(jìng)爭(zhēng)力通過(guò)研究性學(xué)習(xí)訓(xùn)練的學(xué)生,不但具有良好的參考文獻(xiàn)查找能力、分析利用和文檔處理能力,同時(shí)學(xué)生的綜合應(yīng)用能力、實(shí)踐動(dòng)手能力、創(chuàng)新創(chuàng)業(yè)能力大為提高,就業(yè)核心競(jìng)爭(zhēng)力顯著提高,80%的學(xué)生畢業(yè)時(shí)均能找到從事嵌入式系統(tǒng)設(shè)計(jì)與開(kāi)發(fā)的工作,并且工資待遇也相當(dāng)不錯(cuò)。習(xí)題11.什么是嵌入式系統(tǒng)?嵌入式系統(tǒng)的特點(diǎn)是什么?2.簡(jiǎn)述嵌入式系統(tǒng)的發(fā)展階段及特點(diǎn)3.簡(jiǎn)述嵌入式系統(tǒng)的發(fā)展趨勢(shì)。4.嵌入式系統(tǒng)有哪些組成部分?各部分的功能和作用是什么?5.簡(jiǎn)述嵌入式處理器的分類(lèi)及各自的主要特點(diǎn)。6.寫(xiě)出EMPU、EMCU、EDSP、SOC和SOPC的全稱(chēng),并解釋其含義。7.簡(jiǎn)述典型的嵌入式微處理器和微控制器的系列及應(yīng)用領(lǐng)域。8.簡(jiǎn)單分析幾種嵌入式操作系統(tǒng)的主要特點(diǎn),包括嵌入式Linux,WindowsCE,μC/OS-II及VxWorks。9.嵌入式系統(tǒng)的應(yīng)用模式有哪幾種?各有什么有缺點(diǎn)?10.簡(jiǎn)述嵌入式系統(tǒng)的總體設(shè)計(jì)應(yīng)考慮哪些因素。11.簡(jiǎn)述嵌入式系統(tǒng)的開(kāi)發(fā)環(huán)境的組成,解釋其中的基本概念。12.簡(jiǎn)述嵌入式系統(tǒng)的調(diào)試方法。13.簡(jiǎn)述嵌入式系統(tǒng)的設(shè)計(jì)方法和嵌入式系統(tǒng)的設(shè)計(jì)步驟。14.簡(jiǎn)述嵌入式應(yīng)用軟件的開(kāi)發(fā)的特點(diǎn)。第2章ARM嵌入式處理器體系結(jié)構(gòu)2.1嵌入式處理器內(nèi)核種類(lèi)2.2ARM體系結(jié)構(gòu)概述2.3ARM流水線(xiàn)技術(shù)2.4ARM處理器內(nèi)核結(jié)構(gòu)
本章首先介紹了當(dāng)今流行的嵌入式處理器內(nèi)核的種類(lèi),接著概述了ARM嵌入式處理器的體系結(jié)構(gòu)和ARM流水線(xiàn)技術(shù),最后闡述了ARM處理器的內(nèi)核結(jié)構(gòu)。2.1嵌入式處理器內(nèi)核的種類(lèi)
目前世界上有四大流派的嵌入式處理器內(nèi)核生產(chǎn)廠(chǎng)家及嵌入式處理器內(nèi)核,即MIPS公司(www.mips.com)的MIPS處理器內(nèi)核,ARM公司(www.a(chǎn)rm.com)的ARM處理器內(nèi)核,國(guó)際商用機(jī)器公司(IBM)、蘋(píng)果公司(Apple)及摩托羅拉(Motorola)公司聯(lián)合開(kāi)發(fā)的PowerPC,摩托羅拉公司(www.motorola.com)的68K/COLDFIRE。嵌入式處理器內(nèi)核是一個(gè)設(shè)計(jì)技術(shù),并不是一個(gè)芯片,內(nèi)核的設(shè)計(jì)一般追求高速度、低功耗、易于集成。1.MIPS內(nèi)核
MIPS技術(shù)公司是一家設(shè)計(jì)制造高性能、高檔次及嵌入式32位和64位處理器的廠(chǎng)商,在RISC處理器方面占有重要地位。1984年,MIPS計(jì)算機(jī)公司成立。1992年,SGI收購(gòu)了MIPS計(jì)算機(jī)公司。1998年,MIPS脫離SGI,成為MIPS技術(shù)公司。MIPS公司設(shè)計(jì)RISC處理器始于20世紀(jì)80年代初。1999年,MIPS公司發(fā)布MIPS32和MIPS64架構(gòu)標(biāo)準(zhǔn),為未來(lái)MIPS處理器的開(kāi)發(fā)奠定了基礎(chǔ)。新的架構(gòu)集成了所有原來(lái)MIPS指令集,并且增加了許多更強(qiáng)大的功能。MIPS公司陸續(xù)開(kāi)發(fā)了高性能、低功耗的32位處理器內(nèi)核(core)MIPS324Kc與高性能64位處理器內(nèi)核MIPS645Kc。2000年,MIPS公司發(fā)布了針對(duì)MIPS324Kc的版本以及64位MIPS6420Kc處理器內(nèi)核。MIPS內(nèi)核具有高速、多核集成的特點(diǎn)。2.ARM內(nèi)核
ARM內(nèi)核具有低功耗的特點(diǎn),ARM內(nèi)核的設(shè)計(jì)技術(shù)被授權(quán)給數(shù)百家的半導(dǎo)體廠(chǎng)商,做成不同的SOC芯片。ARM內(nèi)核在當(dāng)今最活躍的無(wú)線(xiàn)局域網(wǎng)、3G、手機(jī)終端、手持設(shè)備、有線(xiàn)網(wǎng)絡(luò)通信設(shè)備中得以廣泛應(yīng)用,其應(yīng)用形式是集成到專(zhuān)用芯片之中作為控制器。采用ARM內(nèi)核的主要半導(dǎo)體處理器廠(chǎng)商韓國(guó)三星公司在其面向手持設(shè)備和網(wǎng)絡(luò)設(shè)備的處理器上都全面采用了ARM內(nèi)核,如S3C4510B用于Gateway等。
Intel公司從StrongARM到Xscale處理器家族,都是立足于A(yíng)RM內(nèi)核并增加了多媒體指令特性,并進(jìn)一步降低功耗,提高速度。
Motorola公司在其手持設(shè)備處理器方面從68K內(nèi)核改成了ARM內(nèi)核,從此,手持設(shè)備領(lǐng)域成了ARM內(nèi)核的天下。
CirrusLogic公司的EP7312等手持設(shè)備處理器增加了MP3以及音頻處理的功能。3.PowerPC內(nèi)核
PowerPC內(nèi)核在高速與低功耗之間做了妥協(xié),并集成了極其豐富的外圍電路接口。PowerPC內(nèi)核被Motorola公司用于嵌入式領(lǐng)域,目前已經(jīng)成為在通信領(lǐng)域使用最廣泛的處理器內(nèi)核。中興通信、華為等也在其通信產(chǎn)品中大量采用Motorola的PowerPC家族的系列嵌入式處理器。MPC860和MPC8260是其最經(jīng)典的兩款PowerPC內(nèi)核的嵌入式處理器。
4.68K/COLDFIRE內(nèi)核
68K/COLDFIRE核被稱(chēng)為業(yè)界應(yīng)用最廣的嵌入式處理器內(nèi)核,目前還在不停地更新?lián)Q代與發(fā)展。68K內(nèi)核是最早在嵌入式領(lǐng)域廣泛應(yīng)用的內(nèi)核,其代表芯片是683600COLDFIRE內(nèi)核繼承了68K的特點(diǎn)并繼續(xù)兼容它。COLDFIRE內(nèi)核被植入DSP模塊、CAN總線(xiàn)模塊以及一般嵌入式處理器所集成的外設(shè)模塊,從而形成了一系列的嵌入式處理器,在工業(yè)控制、機(jī)器人研究、家電控制等領(lǐng)域被廣泛采用。ARM處理器采用RISC(ReducedInstructionSetComputer)體系結(jié)構(gòu)設(shè)計(jì),使用標(biāo)準(zhǔn)的、固定長(zhǎng)度的32位指令格式,所有ARM指令都使用4位的條件編碼來(lái)決定指令是否執(zhí)行,以解決指令執(zhí)行的條件判斷。從ARM7開(kāi)始采用32位地址空間(此前為26位地址)。ARM7采用3級(jí)流水線(xiàn)結(jié)構(gòu),采用馮·諾依曼體系結(jié)構(gòu)(程序存儲(chǔ)器與數(shù)據(jù)存儲(chǔ)器統(tǒng)一編址)。ARM9采用5級(jí)流水線(xiàn),采用哈佛體系結(jié)構(gòu)(程序存儲(chǔ)器與數(shù)據(jù)存儲(chǔ)器分開(kāi)獨(dú)立編址)。ARM10采用6級(jí)流水線(xiàn)。ARM架構(gòu)自誕生至今,已經(jīng)發(fā)生了很大的演變,至今已定義了7種不同的版本。2.2ARM體系結(jié)構(gòu)概述2.2.1ARM體系結(jié)構(gòu)的發(fā)展
其中:
V4版結(jié)構(gòu)是目前最廣泛應(yīng)用的ARM體系結(jié)構(gòu),它對(duì)V3版架構(gòu)進(jìn)行了進(jìn)一步擴(kuò)充,有的還引進(jìn)了16位的Thumb指令集,使ARM使用更加靈活。ARM7、ARM9和Strong-ARM都采用了該版結(jié)構(gòu)。其指令集中增加的功能包括符號(hào)化和非符號(hào)化半字及符號(hào)化字節(jié)的存/取指令,增加了16位Thumb指令集,完善了軟件中斷(SWI)指令的功能,處理器系統(tǒng)模式引進(jìn)特權(quán)方式時(shí)使用用戶(hù)寄存器操作,把一些未使用的指令空間捕捉為未定義指令。
V5版架構(gòu)在V4版基礎(chǔ)上增加了一些新的指令。ARM10和XScale都采用該版架構(gòu)。這些新增指令有帶有鏈接和交換的轉(zhuǎn)移(BLX)指令、計(jì)數(shù)前導(dǎo)零計(jì)數(shù)(CLZ)指令、中斷(BRK)指令、信號(hào)處理指令(V5TE版)、為協(xié)處理器增加更多可選擇的指令。ARM體系架構(gòu)V6是2001年發(fā)布的,其基本特點(diǎn)包括100%與以前的體系兼容;SIMD媒體擴(kuò)展,使媒體處理速度快1.75倍;改進(jìn)了的內(nèi)存管理,使系統(tǒng)性能提高30%;改進(jìn)了的混合端(Endian)與不對(duì)齊數(shù)據(jù)支持,使得小端系統(tǒng)支持大端數(shù)據(jù)(如TCP/IP)。許多RTOS是小端的,為實(shí)時(shí)系統(tǒng)改進(jìn)了中斷響應(yīng)時(shí)間,將最壞情況下的35周期改進(jìn)到了11個(gè)周期。
ARM體系架構(gòu)V7是2005年發(fā)布的。它使用了能夠帶來(lái)更高性能、功耗低、效率高及代碼密度大的Thumb?-2技術(shù)。它首次采用了強(qiáng)大的信號(hào)處理擴(kuò)展集,對(duì)H.264和MP3等媒體編解碼提供加速。Cortex-A8TM處理器采用的就是V7版的結(jié)構(gòu)。
(1)單周期操作。ARM指令系統(tǒng)中的指令只需要執(zhí)行簡(jiǎn)單的和基本的操作,因此其執(zhí)行過(guò)程在一個(gè)機(jī)器周期內(nèi)完成。(2)采用加載/存儲(chǔ)指令結(jié)構(gòu)。ARM只采用了加載和存儲(chǔ)兩種指令對(duì)存儲(chǔ)器進(jìn)行讀和寫(xiě)的操作,面向運(yùn)算部件的操作都經(jīng)過(guò)加載指令和存儲(chǔ)指令從存儲(chǔ)器取出后預(yù)先存放到寄存器內(nèi),以加快執(zhí)行速度。(3)固定的32位長(zhǎng)度指令。ARM指令系統(tǒng)的指令格式固定為32位長(zhǎng)度,指令譯碼結(jié)構(gòu)簡(jiǎn)單,效率高。(4)3地址指令格式。由于編譯開(kāi)銷(xiāo)大,需要盡可能優(yōu)化,因此采用3地址指令格式,較多寄存器和對(duì)稱(chēng)的指令格式便于生成優(yōu)化代碼。(5)指令流水線(xiàn)技術(shù)。ARM采用多級(jí)流水線(xiàn)技術(shù),以提高指令執(zhí)行的效率;ARM7采用馮·諾依曼體系結(jié)構(gòu)的3級(jí)指令流水線(xiàn);ARM9TDMI采用基于哈佛體系結(jié)構(gòu)的5級(jí)指令流水線(xiàn)技術(shù);ARM10采用6級(jí)指令流水線(xiàn)。2.2.2ARM體系結(jié)構(gòu)的技術(shù)特征1.ARM處理器工作狀態(tài)
1)ARM狀態(tài)
ARM狀態(tài)是指ARM工作于32位指令狀態(tài),即32位狀態(tài)。所有指令均為32位指令。
2)Thumb狀態(tài)
Thumb狀態(tài)是指ARM執(zhí)行16位的Thumb指令的狀態(tài),即16位狀態(tài)。在有些情況下,如異常處理時(shí),必須是ARM狀態(tài)下的ARM指令,此時(shí)如果原來(lái)工作于Thumb狀態(tài),必須將其切換到ARM狀態(tài),使之執(zhí)行ARM指令。在程序執(zhí)行的過(guò)程中,處理器可隨時(shí)在這兩種工作狀態(tài)間進(jìn)行切換,切換時(shí)并不影響處理器的工作模式和相應(yīng)寄存器中的內(nèi)容。
ARM處理器復(fù)位后開(kāi)始執(zhí)行代碼時(shí)總是只處于A(yíng)RM狀態(tài),如果需要,則可通過(guò)下面的方法切換到Thumb狀態(tài)。2.2.3ARM處理器工作狀態(tài)與工作模式3)ARM與Thumb間的切換(1)由ARM狀態(tài)切換到Thumb狀態(tài)。通過(guò)BX指令可將ARM狀態(tài)切換到Thumb狀態(tài),即當(dāng)操作數(shù)寄存器的最低位為1時(shí),可執(zhí)行BX指令使微處理器進(jìn)入Thumb狀態(tài)。例如:
MOVR6,0X16000001BXR6
在本例中,操作數(shù)寄存器R6的最低位為1,則執(zhí)行上述兩條指令時(shí),轉(zhuǎn)移到地址為R6&0XFFFFFFFE=0X16000000處的Thumb指令。如果Thumb狀態(tài)進(jìn)入異常處理,則當(dāng)異常返回時(shí),系統(tǒng)狀態(tài)將自動(dòng)切換到Thumb狀態(tài)。(2)由Thumb狀態(tài)切換到ARM狀態(tài)。通過(guò)BX指令可將Thumb狀態(tài)切換到ARM狀態(tài),即當(dāng)操作數(shù)寄存器的最低位為0時(shí),可執(zhí)行BX指令使微處理器進(jìn)入ARM狀態(tài)。當(dāng)處理器進(jìn)行異常處理時(shí),則從異常向量地址開(kāi)始執(zhí)行,系統(tǒng)將自動(dòng)進(jìn)入ARM狀態(tài)。2.ARM處理器工作模式2.2.4ARM處理器寄存器組1.ARM狀態(tài)下的寄存器組
從表2.3中可以看出,ARM處理器工作在不同模式,使用的寄存器有所不同,共同點(diǎn)是:無(wú)論何種模式,R15均作為PC使用;CPSR為當(dāng)前程序狀態(tài)寄存器;R7~R0為公用的通用寄存器。不同之處在于高端7個(gè)通用寄存器和狀態(tài)寄存器在不同模式下不同。
1)通用寄存器通用寄存器有31個(gè),其中不分組的寄存器有8個(gè)(R0~R7);在快速中斷模式下,R8~R12標(biāo)有fiq,代表快速模式專(zhuān)用,與其他模式地址重疊,但模式不同,因此寄存器內(nèi)容并不沖突,共2組計(jì)10個(gè)寄存器;R13~R14除了用戶(hù)模式和系統(tǒng)模式分別為堆棧指針(StackPointer,SP)和程序鏈接寄存器(LinkRegister,LR)之外,其他模式下均有自己獨(dú)特的標(biāo)記方式,是專(zhuān)用于特定模式的寄存器,共6組計(jì)12個(gè);另外還有作為PC的R15,這樣通用寄存器共31個(gè)。所有通用寄存器均為32位結(jié)構(gòu)。2)狀態(tài)寄存器狀態(tài)寄存器共6個(gè),除了共用的CPSR外還有分組的SPSR(5組共5個(gè))。程序狀態(tài)寄存器的格式如圖2.1所示,其中條件碼標(biāo)志4個(gè)(N,Z,C,V),還有Q標(biāo)志以及8個(gè)控制位(I,F(xiàn),T,M4~M0)。圖2.1程序狀態(tài)寄存器格式
2.Thumb狀態(tài)下的寄存器組
Thumb狀態(tài)下的寄存器組是ARM狀態(tài)下寄存器組的子集。
在正常程序執(zhí)行過(guò)程中,每執(zhí)行一條ARM指令,PC值加4,每執(zhí)行一條Thumb指令,PC值加2,程序按順序正常執(zhí)行。異常(Exceptions)是指內(nèi)部或外部事件引起的請(qǐng)求使處理器做出相應(yīng)處理的事件。當(dāng)發(fā)生異常時(shí),系統(tǒng)執(zhí)行完當(dāng)前指令后,跳轉(zhuǎn)到相應(yīng)的異常處理程序人口執(zhí)行異常處理,異常處理完,程序返回。
1.ARM異常種類(lèi)及異常中斷向量在A(yíng)RM體系結(jié)構(gòu)中,異常中斷用來(lái)處理軟中斷、未定義指令陷阱、系統(tǒng)復(fù)位及外部中斷,共有7種不同類(lèi)型的異常中斷及其對(duì)應(yīng)的向量地址,見(jiàn)表2.50
實(shí)現(xiàn)異常向量的定位由32位地址空間低端的正常地址范圍0x00000000~0x0000001C決定,但有些ARM允許高端地址0xFFFF0000~0xFFFF001C來(lái)定位異常向量的地址。2.2.5ARM處理器的異常中斷2.異常中斷的優(yōu)先級(jí)
7種類(lèi)型的異常分成6級(jí),優(yōu)先級(jí)由高到低依次是:
(1)復(fù)位(RESET)異常;(2)數(shù)據(jù)訪(fǎng)問(wèn)中止(DABT)異常;(3)快速中斷請(qǐng)求(FIQ)異常;(4)外部中斷請(qǐng)求(IRQ)異常;(5)指令預(yù)取中止(FABT)異常;(6)軟件中斷(SWI)異常和未定義的指令(UND)異常最低優(yōu)先級(jí)。復(fù)位異常的優(yōu)先級(jí)最高,因此任何情況下,只要進(jìn)入復(fù)位狀態(tài),系統(tǒng)無(wú)條件地將PC指向0x00000000處,去執(zhí)行系統(tǒng)第一條指令。通常此處放一條無(wú)條件的轉(zhuǎn)移指令,轉(zhuǎn)移到系統(tǒng)初始化程序處。
1)解析程序的概念和作用
ARM處理器響應(yīng)中斷的時(shí)候,總是從固定的地址開(kāi)始的,而在高級(jí)語(yǔ)言環(huán)境下開(kāi)發(fā)中斷服務(wù)程序時(shí),無(wú)法控制固定地址開(kāi)始跳轉(zhuǎn)流程。為了使得上層應(yīng)用程序與硬件中斷跳轉(zhuǎn)聯(lián)系起來(lái),需要編寫(xiě)一段中間的服務(wù)程序來(lái)進(jìn)行連接。這樣的服務(wù)程序常被稱(chēng)作中斷解析程序。常用的中斷跳轉(zhuǎn)流程,如圖2.2所示。圖2.2中斷跳轉(zhuǎn)流程2)解析過(guò)程示例圖2.3中斷解析示例流程3)解析程序的擴(kuò)展圖2.4中斷解析的擴(kuò)展4)向量中斷的處理圖2.5向量中斷解析流程示例4.從異常處理程序中返回復(fù)位異常發(fā)生后,由于系統(tǒng)自動(dòng)從0x00000000開(kāi)始重新執(zhí)行程序,因此復(fù)位異常處理程序執(zhí)行完后無(wú)須返回。其他所有異常處理完后必須返回到原來(lái)程序處向下執(zhí)行,為達(dá)到這一目的,需要執(zhí)行以下操作:(1)恢復(fù)原來(lái)被保護(hù)的用戶(hù)寄存器。(2)將SPSR_mode寄存器值復(fù)制到CPSR中,使得CPSR從相應(yīng)的SPSR中恢復(fù),以恢復(fù)被中斷的程序工作狀態(tài)。(3)根據(jù)異常類(lèi)型將PC值恢復(fù)成斷點(diǎn)地址,以執(zhí)行用戶(hù)原來(lái)運(yùn)行著的程序。(4)清除CPSR中的中斷禁止標(biāo)志I和F,開(kāi)放外部中斷和快速中斷。
不同模式返回用的指令有所不同,下面簡(jiǎn)要介紹幾種異常程序的返回方法。(1)FIQ(FastInterruptRequest),即快速中斷異常,是為了支持?jǐn)?shù)據(jù)傳輸或者通道處理而設(shè)計(jì)的。在A(yíng)RM狀態(tài)下,系統(tǒng)有足夠的寄存器,從而可以保障對(duì)寄存器保存的需求。若將CPSR的F位設(shè)置為1,則會(huì)禁止FIQ中斷,若將CPSR的F位清零,處理器會(huì)在指令執(zhí)行時(shí)檢查FIQ的輸入。注意只有在特權(quán)模式下才能改變F位的狀態(tài)??捎赏獠客ㄟ^(guò)對(duì)處理器上的nFIQ引腳輸入低電平產(chǎn)生FIQ。不管是在A(yíng)RM狀態(tài)還是在Thumb狀態(tài)下進(jìn)入FIQ模式,F(xiàn)IQ處理程序均會(huì)執(zhí)行以下指令從FIQ模式返回:SUBSPC,R14_fiq,#4
該指令將寄存器R14_fiq的值減去4后,復(fù)制到程序計(jì)數(shù)器(PC)中,從而實(shí)現(xiàn)從異常處理程序中的返回,同時(shí)將SPSR_mode寄存器的內(nèi)容復(fù)制到當(dāng)前程序狀態(tài)寄存器(CPSR)中。
(2)IRQ(InterruptRequest)異常屬于正常的中斷請(qǐng)求,可通過(guò)對(duì)處理器的nIRQ引腳輸入低電平產(chǎn)生。IRQ的優(yōu)先級(jí)低于FIQ,當(dāng)程序執(zhí)行進(jìn)入FIQ異常時(shí),IRQ可能被屏蔽。若將CPSR的I位設(shè)置為1,則會(huì)禁止IRQ中斷,若將CPSR的I位清零,處理器會(huì)在指令執(zhí)行完之前檢查IRQ的輸入。注意只有在特權(quán)模式下才能改變I位的狀態(tài)。不管是在A(yíng)RM狀態(tài)還是在Thumb狀態(tài)下進(jìn)入IRQ模式,IRQ處理程序均會(huì)執(zhí)行以下指令從IRQ模式返回:SUBSPC,R14_irq,#4
該指令將寄存器R14_irq的值減去4后,復(fù)制到程序計(jì)數(shù)器(PC)中,從而實(shí)現(xiàn)從異常處理程序中的返回,同時(shí)將SPSR_mode寄存器的內(nèi)容復(fù)制到當(dāng)前程序狀態(tài)寄存器(CPSR)中。
(3)ABORT(中止)異常意味著對(duì)存儲(chǔ)器的訪(fǎng)問(wèn)失敗。ARM微處理器在存儲(chǔ)器訪(fǎng)問(wèn)周期內(nèi)檢查是否發(fā)生中止異常。中止異常包括以下兩種類(lèi)型:指令預(yù)取中止,數(shù)據(jù)中止。當(dāng)指令預(yù)取訪(fǎng)問(wèn)存儲(chǔ)器失敗時(shí),存儲(chǔ)器系統(tǒng)向ARM處理器發(fā)出存儲(chǔ)器中止(Abort)信號(hào),預(yù)取的指令被記為無(wú)效。只有當(dāng)處理器試圖執(zhí)行無(wú)效指令時(shí),指令預(yù)取中止異常才會(huì)發(fā)生,如果指令未被執(zhí)行,如在指令流水線(xiàn)中發(fā)生了跳轉(zhuǎn),則預(yù)取指令中止不會(huì)發(fā)生。若數(shù)據(jù)中止發(fā)生,系統(tǒng)的響應(yīng)與指令的類(lèi)型有關(guān)。當(dāng)確定了中止的原因后,無(wú)論是在A(yíng)RM狀態(tài)還是在Thumb狀態(tài),Abort處理程序均會(huì)執(zhí)行以下指令從中止模式返回:SUBSPC,R14_abt,#4;指令預(yù)取中止SUBSPC,R14_abt,#8;數(shù)據(jù)中止該指令恢復(fù)PC(從R14_abt)和CPSR(從SPSR_abt)的值,并重新執(zhí)行中止的指令。
(4)SWI(SoftwareInterrupt)即軟件中斷,軟件中斷指令用于進(jìn)入管理模式,常用于請(qǐng)求執(zhí)行特定的管理功能。無(wú)論是在A(yíng)RM狀態(tài)還是在Thumb狀態(tài),軟件中斷處理程序執(zhí)行以下指令從SWI模式返回:MOVPC,R14_svc
該指令恢復(fù)PC(從R14_svc)和CPSR(從SPSR_svc)的值,并返回到SWI的下一條指令。(5)當(dāng)ARM處理器遇到不能處理的指令時(shí),會(huì)產(chǎn)生未定義指令(UndefinedInstruc-tion)異常。采用這種機(jī)制,可以通過(guò)軟件仿真擴(kuò)展ARM或Thumb指令集。無(wú)論是在A(yíng)RM狀態(tài)還是在Thumb狀態(tài),在仿真未定義指令后,處理器執(zhí)行以下程序返回:MOVSPC,R14_und
該指令恢復(fù)PC(從R14_und)和CPSR(從SPSR_und)的值,并返回到未定義指令后的下一條指令。
如一個(gè)32位字0x12345678,存放的起始地址為0x00040000,則大端格式下0x00040000單元存放0x12,0x00040001單元存放0x34,0x00040002單元存放0x56,而0x00040003單元存放0x78。1.ARM存儲(chǔ)字?jǐn)?shù)據(jù)的格式
1)大端格式在大端格式中,32位字?jǐn)?shù)據(jù)的高字節(jié)存儲(chǔ)在低地址中,而字?jǐn)?shù)據(jù)的低字節(jié)則存放在高地址中,見(jiàn)表2.6。2.2.6ARM的存儲(chǔ)器格式及數(shù)據(jù)類(lèi)型
如同樣是一個(gè)32位字0x12345678,存放的起始地址為0x00040000,則小端格式下0x00040000單元存放0x78,0x00040001單元存放0x56,0x00040002單元存放0x34,而0x00040003單元存放0x12。2)小端格式在小端格式中,32位字?jǐn)?shù)據(jù)的高字節(jié)存放在高地址中,而低字節(jié)存放在低地址中。2.ARM微處理器數(shù)據(jù)類(lèi)型
ARM微處理器中支持字節(jié)(8位)、半字(16位)、字(32位)3種數(shù)據(jù)類(lèi)型,其中字需要4字節(jié)對(duì)齊(地址的低兩位為0)、半字需要2字節(jié)對(duì)齊(地址的最低位為0)。每一種又支持有符號(hào)數(shù)和無(wú)符號(hào)數(shù),因此認(rèn)為共有6種數(shù)據(jù)類(lèi)型。
ARM微處理器的指令長(zhǎng)度可以是32位(在A(yíng)RM狀態(tài)下),也可以為16位(在Thumb狀態(tài)下)。如果是ARM指令,則必須固定長(zhǎng)度,使用32位指令,且必須以字為邊界對(duì)齊;如果是Thumb指令,則指令長(zhǎng)度為16位,必須以2字節(jié)為對(duì)齊。必須指出的是,除了數(shù)據(jù)傳送指令支持較短的字節(jié)和半字的數(shù)據(jù)類(lèi)型外,在A(yíng)RM內(nèi)部所有的操作都是面向32位操作數(shù)的。當(dāng)從儲(chǔ)存器調(diào)用一個(gè)字節(jié)或半字時(shí),根據(jù)指令對(duì)數(shù)據(jù)的操作類(lèi)型,將其無(wú)符號(hào)或有符合的符合自動(dòng)擴(kuò)展成32位,進(jìn)而作為32位數(shù)據(jù)在內(nèi)部進(jìn)行處理。
所謂流水線(xiàn)電路,就是將一個(gè)電路系統(tǒng)或電路系統(tǒng)的大的數(shù)據(jù)處理電路模塊分成幾個(gè)小的數(shù)據(jù)處理電路模塊,并且沿著數(shù)據(jù)通路引入流水鎖存器,這樣就可以減小有效關(guān)鍵路徑,從而提高系統(tǒng)的時(shí)鐘速度或采樣速度,或者可以在同樣的速度下降低功耗。而電路中的關(guān)鍵路徑,是指數(shù)據(jù)流圖DFG中具有零延時(shí)的所有路徑中,具有最長(zhǎng)運(yùn)算時(shí)間的路徑。一個(gè)流水線(xiàn)電路系統(tǒng)的速度(或時(shí)鐘周期),由任意兩個(gè)鎖存器間、或一個(gè)輸入與一個(gè)鎖存器間、或一個(gè)鎖存器和一個(gè)輸出間、或輸入與輸出之間路徑中最長(zhǎng)的路徑限定。而這個(gè)最長(zhǎng)的路徑或“關(guān)鍵路徑”可以通過(guò)在電路系統(tǒng)中適當(dāng)?shù)牟迦肓魉€(xiàn)鎖存器來(lái)減小。2.3ARM流水線(xiàn)技術(shù)2.3.1流水線(xiàn)電路設(shè)計(jì)基礎(chǔ)知識(shí)
在一個(gè)M級(jí)流水線(xiàn)系統(tǒng)中,從輸入到輸出的任一路徑上的延時(shí)元件數(shù)目是(M-1),它要大于在原始時(shí)序電路中同一路徑上的延時(shí)元件數(shù)。若要使電路正常工作,相鄰的兩個(gè)寄存器之間路徑的時(shí)延應(yīng)小于寄存器的時(shí)鐘信號(hào)CLK的周期Tclk,亦即流水線(xiàn)鎖存器的時(shí)鐘周期Tclk應(yīng)大于所有功能部件中的最長(zhǎng)執(zhí)行時(shí)間。同時(shí)要使流水線(xiàn)電路正常工作,并且系統(tǒng)處理速度盡可能快,流水線(xiàn)數(shù)據(jù)通路上的各個(gè)功能部件的執(zhí)行時(shí)間因盡可能均衡。【例2.1】分別設(shè)計(jì)一個(gè)無(wú)流水線(xiàn)和有流水線(xiàn)的三階有限沖激響應(yīng)(FIR)數(shù)字濾波器的實(shí)現(xiàn)電路,并分析各自電路系統(tǒng)的速度(或時(shí)鐘周期)。考慮三階有限沖激響應(yīng)(FIR)數(shù)字濾波器其框圖實(shí)現(xiàn)如圖2.6,流水線(xiàn)實(shí)現(xiàn)是通過(guò)引入兩個(gè)附加鎖存器而得到的,如圖2.7所示。
圖2.7三階流水線(xiàn)FIR濾波器圖2.6三階FIR濾波器2.3.2微處理器指令流水線(xiàn)處理2.3.3ARM的3級(jí)指令流水線(xiàn)
由于A(yíng)RM7本身的局限性,不可能同時(shí)訪(fǎng)問(wèn)程序存儲(chǔ)器和數(shù)據(jù)存儲(chǔ)器,因此指令流水線(xiàn)出現(xiàn)間斷現(xiàn)象在多周期操作下不可避免的。這就要求合適的存儲(chǔ)結(jié)構(gòu),ARM9TDMI使用了程序存儲(chǔ)器和數(shù)據(jù)存儲(chǔ)器分開(kāi)獨(dú)立編址的哈佛結(jié)構(gòu),并采用5級(jí)指令流水線(xiàn),即取指、譯碼、執(zhí)指、緩沖及寫(xiě)回。5級(jí)流水線(xiàn)的操作如圖2.14所示。2.3.4ARM的5級(jí)指令流水線(xiàn)ARM體系結(jié)構(gòu)目前被公認(rèn)為業(yè)界領(lǐng)先的32位嵌入式RISC微處理器結(jié)構(gòu)。ARM處理器內(nèi)核當(dāng)前有6個(gè)系列產(chǎn)品,即ARM7、ARM9、ARM9E、ARM10E、SecurCORE以及ARM11系列。另外還有IntelXscale微體系結(jié)構(gòu)和StrongARM結(jié)構(gòu)。在高性能的32位嵌入式片上系統(tǒng)設(shè)計(jì)中,幾乎都是以ARM作為處理器核。ARM核已經(jīng)是現(xiàn)在嵌入式SOC系統(tǒng)芯片的核心,也是現(xiàn)代嵌入式系統(tǒng)發(fā)展的方向。ARM處理器核作為基本處理單元,根據(jù)發(fā)展需求還集成了與處理器核密切相關(guān)的功能模塊,這些基于微處理器核并集成這些IP核的標(biāo)準(zhǔn)配置的ARM核都具有基本處理器的配置,這些內(nèi)核稱(chēng)為處理器核。ARM核與其它部件組合在一起才能構(gòu)成實(shí)際的芯片。2.4ARM處理器內(nèi)核結(jié)構(gòu)2.4.1ARM處理器內(nèi)核概述圖2.15ARM核的命名規(guī)則及含義ARM7TDMI是ARM7系列成員中應(yīng)用最為廣泛的32位高性能嵌入式RISC處理器內(nèi)核,其指令系統(tǒng)有32位的ARM指令集和16位的Thumb指令集。ARM7TDMI使用3級(jí)指令流水線(xiàn)技術(shù),對(duì)存儲(chǔ)器的訪(fǎng)問(wèn)采用單一32位數(shù)據(jù)總線(xiàn)傳送指令和數(shù)據(jù)。只有加載、存儲(chǔ)和交換指令可以訪(fǎng)問(wèn)存儲(chǔ)器中的數(shù)據(jù)。數(shù)據(jù)可以是8位(字節(jié)),16位(半字)和32位〔字),字必須以4字節(jié)(32位)為邊界對(duì)齊,半字必須以2字節(jié)(16位)為邊界對(duì)齊。ARM7TDM工采用32位尋址空間、32位移位寄存器和32位ALU以及32位存儲(chǔ)器傳送。
1.ARM7TDMI的特點(diǎn)(1)采用ARM體系結(jié)構(gòu)版本4T,支持64位乘法、半字、有符號(hào)字節(jié)存??;(2)支持Thumb指令集,可降低系統(tǒng)開(kāi)銷(xiāo);(3)采用32×8DSP乘法器;(4)具有32位尋址空間——4GB線(xiàn)性地址空間;(5)包含了嵌入式在線(xiàn)仿真器模塊,以支持嵌入式系統(tǒng)調(diào)試;(6)JTAG控制邏輯被認(rèn)為是處理器核的一部分。2.4.2ARM7TDMI處理器內(nèi)核2.ARM7TDMI處理器內(nèi)核結(jié)構(gòu)及功能圖2.16ARM7TDMI處理器核內(nèi)部結(jié)構(gòu)圖2.17ARM7TDMI內(nèi)核的主處理器邏輯結(jié)構(gòu)ARM主處理器邏輯用于對(duì)調(diào)試硬件的支持,嵌入式宏單元是用于產(chǎn)生調(diào)試異常(如斷點(diǎn)異常等)的寄存器和比較器的集合,嵌入式ICETAP控制器用JTAG串行接口邏輯控制掃描鏈的動(dòng)作,預(yù)定目標(biāo)調(diào)試。
ARM7TDMI內(nèi)核的主處理器邏輯結(jié)構(gòu)如圖2.17所示。主處理器邏輯由地址寄存器、地址增量器、寄存器組、乘法器、桶形移位器、ALU、寫(xiě)數(shù)據(jù)寄存器、指令流水線(xiàn)讀數(shù)據(jù)寄存器/Thumb指令譯碼器以及指令譯碼和控制邏輯、掃描調(diào)試控制部件構(gòu)成。其中地址寄存器連接32條地址線(xiàn)A31~A0,地址鎖存允許信號(hào)(ALE)及地址總線(xiàn)允許信號(hào)(ABE),讀寫(xiě)數(shù)據(jù)寄存器連接32位數(shù)據(jù)線(xiàn)D31~D0,指令譯碼和控制邏輯連接其它信號(hào)線(xiàn)。圖2.18所示為ARM7TDMI處理器核功能框圖,從中可以看出,ARM7TDMI處理器核分成若干功能模塊,包括時(shí)鐘、中斷、總線(xiàn)控制、調(diào)試、存儲(chǔ)器接口及協(xié)處理器接口等。下面將介紹存儲(chǔ)器接口及調(diào)試接口等。圖2.18ARM7TDMI處理器核功能框圖ARM7TDMI采用馮.諾依曼結(jié)構(gòu),因此對(duì)存儲(chǔ)器的控制沒(méi)有專(zhuān)門(mén)的存儲(chǔ)管理單元,存儲(chǔ)器采用簡(jiǎn)單而直接的地址方式來(lái)表示實(shí)際的物理地址,沒(méi)有進(jìn)行段或頁(yè)的轉(zhuǎn)換。
1.總線(xiàn)接口信號(hào)
ARM7TMDI的總線(xiàn)接口信號(hào)包括時(shí)鐘與時(shí)鐘控制信號(hào)、地址類(lèi)信號(hào)、存儲(chǔ)器請(qǐng)求信號(hào)、數(shù)據(jù)時(shí)序信號(hào)4大類(lèi)。
1)時(shí)鐘和時(shí)鐘控制類(lèi)信號(hào)(1)MCLK為主時(shí)鐘輸人信號(hào)。(2)nWAIT
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 超市商品銷(xiāo)售及渠道管理制度
- 流調(diào)溯源篇培訓(xùn)
- 居家安全教育培訓(xùn)課件
- 活頁(yè)紙打印課件
- 2024-2025學(xué)年山東省青島市高二下學(xué)期5月部分學(xué)生質(zhì)量調(diào)研檢測(cè)歷史試題(解析版)
- 2026年國(guó)際金融學(xué)國(guó)際金融市場(chǎng)與投資題集及答案
- 2026年中文經(jīng)典名著閱讀理解與文學(xué)賞析試題
- 2026年軟件測(cè)試用例設(shè)計(jì)與執(zhí)行全過(guò)程剖析
- 2026年金融科技產(chǎn)品經(jīng)理試題庫(kù)區(qū)塊鏈與加密貨幣
- 2026年醫(yī)藥行業(yè)從業(yè)人員繼續(xù)教育測(cè)試題及答案全解
- 東海藥業(yè)校招測(cè)評(píng)題庫(kù)
- 精準(zhǔn)定位式漏水檢測(cè)方案
- 2023氣管插管意外拔管的不良事件分析及改進(jìn)措施
- 2023自動(dòng)啟閉噴水滅火系統(tǒng)技術(shù)規(guī)程
- 架線(xiàn)弧垂計(jì)算表(應(yīng)力弧垂插值計(jì)算)
- 工廠(chǎng)驗(yàn)收測(cè)試(FAT)
- 市醫(yī)療保險(xiǎn)高值藥品使用申請(qǐng)表
- 認(rèn)知障礙患者進(jìn)食問(wèn)題評(píng)估與護(hù)理
- 高職單招數(shù)學(xué)試題及答案
- 基礎(chǔ)化學(xué)(本科)PPT完整全套教學(xué)課件
- 玻璃幕墻分項(xiàng)工程質(zhì)量驗(yàn)收記錄表
評(píng)論
0/150
提交評(píng)論