嵌入式考試題_第1頁
嵌入式考試題_第2頁
嵌入式考試題_第3頁
嵌入式考試題_第4頁
嵌入式考試題_第5頁
已閱讀5頁,還剩9頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、【精品文檔】如有侵權(quán),請(qǐng)聯(lián)系網(wǎng)站刪除,僅供學(xué)習(xí)與交流嵌入式考試題.精品文檔.1.嵌入式系統(tǒng)是以應(yīng)用中心,以計(jì)算機(jī)技術(shù)為基礎(chǔ),軟件硬件可裁剪,適應(yīng)應(yīng)用系統(tǒng)對(duì)功能、可靠性、成本、體積、功耗嚴(yán)格要求的專用計(jì)算機(jī)系統(tǒng)。2.在嵌入式系統(tǒng)設(shè)計(jì)過程中,需求分析包括:功能性需求分析和非功能性需求分析。3.ARM字?jǐn)?shù)據(jù)存儲(chǔ)格式有:大端格式和小端格式。4.總線按照傳輸關(guān)系分類可分為:主從結(jié)構(gòu)和對(duì)等結(jié)構(gòu)。5.RS-232C的幀格式由四部分組成,包括:起始位、數(shù)據(jù)位、奇偶校驗(yàn)位和停止位。6.USB低速設(shè)備應(yīng)該在D-線上接一個(gè)上拉電阻,全速設(shè)備應(yīng)該在D+線上接一個(gè)上拉電阻。7.I/O接口電路數(shù)據(jù)傳送方式有:查詢、中斷、

2、DMA、I/O通道和I/O處理機(jī)方式。實(shí)時(shí)系統(tǒng)的關(guān)鍵問題是保證系統(tǒng)的實(shí)時(shí)性;實(shí)時(shí)操作系統(tǒng)就是指具有實(shí)時(shí)性、能支持實(shí)時(shí)系統(tǒng)工作的操作系統(tǒng)。實(shí)時(shí)操作系統(tǒng)的評(píng)價(jià)指標(biāo)有:任務(wù)調(diào)度算法、上下文切換時(shí)間、確定性、最小內(nèi)存開銷和最大中斷禁止時(shí)間。1.下面哪個(gè)系統(tǒng)屬于嵌入式系統(tǒng)。( D )A、“天河一號(hào)”計(jì)算機(jī)系統(tǒng)B、聯(lián)想T400筆記本計(jì)算機(jī)C、聯(lián)想S10上網(wǎng)本D、聯(lián)想OPhone手機(jī)2.軟硬件協(xié)同設(shè)計(jì)方法與傳統(tǒng)設(shè)計(jì)方法的最大不同之處在于( B )。A、軟硬件分開描述B、軟硬件統(tǒng)一描述C、協(xié)同測(cè)試D、協(xié)同驗(yàn)證3.下面關(guān)于哈佛結(jié)構(gòu)描述正確的是( A )。A、程序存儲(chǔ)空間與數(shù)據(jù)存儲(chǔ)空間分離B、存儲(chǔ)空間與IO空間分

3、離C、程序存儲(chǔ)空間與數(shù)據(jù)存儲(chǔ)空間合并D、存儲(chǔ)空間與IO空間合并4.下面哪一種工作模式不屬于ARM特權(quán)模式( A )。A、用戶模式B、系統(tǒng)模式C、軟中斷模式D、FIQ模式5.ARM7TDMI的工作狀態(tài)包括( D )。A、測(cè)試狀態(tài)和運(yùn)行狀態(tài)B、掛起狀態(tài)和就緒狀態(tài)C、就緒狀態(tài)和運(yùn)行狀態(tài)D、ARM狀態(tài)和Thumb狀態(tài)6.指令“LDMIA R0!, R1, R2, R3, R4”的尋址方式為( C )。A、立即尋址B、寄存器間接尋址C、多寄存器尋址D、堆棧尋址7.USB接口移動(dòng)硬盤最合適的傳輸類型為( B )。A、控制傳輸B、批量傳輸C、中斷傳輸D、等時(shí)傳輸8.下面哪一種功能單元不屬于I/O接口電路。(

4、 D )A、USB控制器 B、UART控制器C、以太網(wǎng)控制器D、LED9.下面哪個(gè)操作系統(tǒng)是嵌入式操作系統(tǒng)。( B )A、Red-hat LinuxB、µCLinuxC、Ubuntu LinuxD、SUSE Linux10.使用Host-Target聯(lián)合開發(fā)嵌入式應(yīng)用,( B )不是必須的。A、宿主機(jī)B、銀河麒麟操作系統(tǒng)C、目標(biāo)機(jī)D、交叉編譯器簡(jiǎn)答題1.簡(jiǎn)述嵌入式處理器的特點(diǎn)(列出五個(gè)特點(diǎn)以上)。答:低檔處理器多采用哈佛結(jié)構(gòu),高檔處理器多采用馮·諾伊曼結(jié)構(gòu);品種規(guī)格2.系列化;對(duì)實(shí)時(shí)多任務(wù)有很強(qiáng)的支持能力;可靠性高、功耗低、集成度高、性價(jià)比高。(每個(gè)特點(diǎn)1分)3.什么是CM

5、OS電平?有何特點(diǎn)?答:發(fā)送端:高電平>0.9Vdd,低電平<0.1Vdd;(2分)接收端:高電平>0.7Vdd,低電平<0.3Vdd。(2分)特點(diǎn):噪聲容限大,負(fù)載能力強(qiáng)。(1分)4.什么是信號(hào)的建立時(shí)間?什么是信號(hào)的保持時(shí)間?答: 建立時(shí)間:在時(shí)鐘信號(hào)邊沿到來之前,數(shù)據(jù)信號(hào)必須提前一段時(shí)間保持穩(wěn)定有效。(2.5分)保持時(shí)間:在時(shí)鐘信號(hào)邊沿到來之后,數(shù)據(jù)信號(hào)必須在隨后的一段時(shí)間內(nèi)保持穩(wěn)定有效。(2.5分)5.什么是非搶先式實(shí)時(shí)操作系統(tǒng)?有何優(yōu)缺點(diǎn)?它的實(shí)時(shí)性如何決定?答:對(duì)于基于優(yōu)先級(jí)的實(shí)時(shí)操作系統(tǒng)而言,非搶先式實(shí)時(shí)操作系統(tǒng)是指某個(gè)任務(wù)運(yùn)行后,就把CPU控制權(quán)完全交給

6、了該任務(wù),直到它主動(dòng)將CPU控制權(quán)還回來。(2分)優(yōu)點(diǎn):實(shí)時(shí)性比不使用實(shí)時(shí)操作系統(tǒng)的好,程序設(shè)計(jì)相對(duì)簡(jiǎn)單,可調(diào)用不可重入函數(shù)(任務(wù)間不嵌套)。(1分)缺點(diǎn):如果最長任務(wù)的執(zhí)行時(shí)間不能確定,系統(tǒng)的實(shí)時(shí)性就不能確定。(1分)實(shí)時(shí)性:取決于最長任務(wù)的執(zhí)行時(shí)間。(1分)6.簡(jiǎn)述優(yōu)先級(jí)倒置產(chǎn)生的條件、現(xiàn)象以及解決方案。答:條件:基于優(yōu)先級(jí)搶先式的任務(wù)調(diào)度、資源共享。(1分)現(xiàn)象:低優(yōu)先級(jí)任務(wù)L和高優(yōu)先級(jí)任務(wù)H共享資源,在任務(wù)L占有共享資源之后,任務(wù)H就緒,但這時(shí)任務(wù)H必須等待任務(wù)L完成對(duì)共享資源的操作。在任務(wù)L完成對(duì)共享資源的操作之前,任務(wù)M也已就緒并將搶先任務(wù)L運(yùn)行。在任務(wù)M運(yùn)行時(shí),系統(tǒng)中具有最高優(yōu)先

7、級(jí)的任務(wù)H仍然保持掛起狀態(tài)。(3分)解決方案:優(yōu)先級(jí)繼承、優(yōu)先級(jí)頂置。(1分)7.右下圖為USB批量IN傳輸事務(wù)流程圖,請(qǐng)根據(jù)右下圖用文字?jǐn)⑹銎涔ぷ鬟^程(包括4+2個(gè)分支并說明分支出現(xiàn)的原因)。答:令牌段:(2分)主機(jī)發(fā)出令牌包,尋址從機(jī)。數(shù)據(jù)段:(4分)從機(jī)如果接收令牌包出錯(cuò),無響應(yīng);從機(jī)端點(diǎn)不存在,回送STALL;從機(jī)端點(diǎn)數(shù)據(jù)未準(zhǔn)備好,回送NAK;從機(jī)端點(diǎn)數(shù)據(jù)準(zhǔn)備好,回送數(shù)據(jù)包。握手段:(4分)主機(jī)如果接收數(shù)據(jù)包出錯(cuò),無響應(yīng);主機(jī)如果接收數(shù)據(jù)包正確,回送ACK。請(qǐng)用C語言編寫一個(gè)簡(jiǎn)單框架程序(個(gè)別地方也可文字?jǐn)⑹觯?,要求體現(xiàn)前后臺(tái)系統(tǒng)的編程思想(任務(wù)就是一個(gè)函數(shù),直接調(diào)用,無需實(shí)現(xiàn),但至少

8、三個(gè)任務(wù)),并分析前后臺(tái)系統(tǒng)的優(yōu)缺點(diǎn)以及它的實(shí)時(shí)性如何決定。答:后臺(tái)程序:void main( void )Init( )/初始化while(1) (1分)if( eventFlag1) (1分)task1( );else if( eventFlag2) (1分)task2( );else if( eventFlag3) (1分)task3( );前臺(tái)程序:_irq void HandleFlag1( void ) (1分)清中斷請(qǐng)求標(biāo)志;eventFlag1 = true;_irq void HandleFlag2( void ) (1分)清中斷請(qǐng)求標(biāo)志;eventFlag2 = true;

9、_irq void HandleFlag3( void ) (1分)清中斷請(qǐng)求標(biāo)志;eventFlag3 = true;優(yōu)點(diǎn):系統(tǒng)結(jié)構(gòu)簡(jiǎn)單,幾乎不需要額外的存儲(chǔ)開銷。(1分)缺點(diǎn):所有的任務(wù)具有相同的優(yōu)先級(jí)別,任務(wù)響應(yīng)時(shí)間不可預(yù)測(cè);后臺(tái)程序是一個(gè)無限循環(huán)的結(jié)構(gòu),一旦在這個(gè)循環(huán)體中正在處理的任務(wù)崩潰,使得整個(gè)任務(wù)隊(duì)列中的其他任務(wù)得不到機(jī)會(huì)被處理,從而造成整個(gè)系統(tǒng)的崩潰。(1分)實(shí)時(shí)性:取決于所有其它任務(wù)的執(zhí)行時(shí)間之和。(1分)形形色色的嵌入式系統(tǒng)默默無聞地生活在我們的身邊,為我們的學(xué)習(xí)生活增加了無窮的樂趣。請(qǐng)列舉你所熟悉的五個(gè)嵌入式應(yīng)用系統(tǒng),并對(duì)每個(gè)嵌入式系統(tǒng)作簡(jiǎn)單的分析(指出它為什么是嵌入式系

10、統(tǒng))。答:答案眾多(評(píng)分標(biāo)準(zhǔn):每一個(gè)應(yīng)用2分,其中題目1分,簡(jiǎn)要分析1分) U盤(2分);MP3播放器(2分);手機(jī)(2分);藍(lán)牙耳機(jī)(2分);GPS導(dǎo)航儀(2分)。等等簡(jiǎn)要分析略。8.從模塊結(jié)構(gòu)來看,嵌入式系統(tǒng)由三大部分組成,分別是:硬件、軟件和開發(fā)平臺(tái)。9.嵌入式系統(tǒng)的設(shè)計(jì)過程包括:需求分析、規(guī)格說明、體系結(jié)構(gòu)設(shè)計(jì)、構(gòu)件設(shè)計(jì)、系統(tǒng)集成和系統(tǒng)測(cè)試。ARM系列微處理器支持的邊界對(duì)齊格式有:字節(jié)對(duì)齊、半字對(duì)齊和字對(duì)齊。10.RAM存儲(chǔ)器有兩種,分別是:SRMA和DRAM??偩€由傳輸信息的物理介質(zhì)和管理信息傳輸?shù)膮f(xié)議組成。采用RS232C實(shí)現(xiàn)最簡(jiǎn)單的雙機(jī)互聯(lián),至少需要如下信號(hào)線:TXD、

11、RXD和GND。USB通信總線中的事務(wù)可能由令牌包、數(shù)據(jù)包和握手包組成。11.I/O接口編址方式有兩種,分別是:統(tǒng)一編址和獨(dú)立編址。12.在宿主機(jī)上使用編譯器軟件將嵌入式應(yīng)用、嵌入式操作系統(tǒng)編譯成為可以在目標(biāo)機(jī)上運(yùn)行代碼的過程,稱為交叉編譯,而采用的編譯器稱為交叉編譯器。13.嵌入式操作系統(tǒng)的內(nèi)核構(gòu)成包括系統(tǒng)初始化、多任務(wù)管理和內(nèi)存管理。14.下面哪個(gè)系統(tǒng)不屬于嵌入式系統(tǒng)( D )。A、MP3播放器B、GPS接收機(jī)C、“銀河玉衡”核心路由器D、“天河一號(hào)”計(jì)算機(jī)系統(tǒng)15.在嵌入式系統(tǒng)設(shè)計(jì)中,嵌入式處理器選型是在進(jìn)行( C )時(shí)完成。A、需求分析B、系統(tǒng)集成C、體系結(jié)構(gòu)設(shè)計(jì)D、軟硬件設(shè)計(jì)16.下

12、面哪一類嵌入式處理器最適合于用于工業(yè)控制( B )。A、嵌入式微處理器B、微控制器C、DSPD、以上都不合適17.關(guān)于ARM子程序和Thumb子程序互相調(diào)用描述正確的是( B )。A、系統(tǒng)初始化之后,ARM處理器只能工作在一種狀態(tài),不存在互相調(diào)用。B、只要遵循一定調(diào)用的規(guī)則,Thumb子程序和ARM子程序就可以互相調(diào)用。C、只要遵循一定調(diào)用的規(guī)則,僅能Thumb子程序調(diào)用ARM子程序。D、只要遵循一定調(diào)用的規(guī)則,僅能ARM子程序調(diào)用Thumb子程序。18.關(guān)于ARM處理器的異常的描述不正確的是( C )。A、復(fù)位屬于異常B、除數(shù)為零會(huì)引起異常C、所有異常都要返回D、外部中斷會(huì)引起異常19.下面

13、總線不屬于對(duì)等結(jié)構(gòu)的是( A )。A、PCIB、IEEE1394C、令牌網(wǎng)D、以太網(wǎng)20.USB總線采用的通信方式為( A )。A、輪詢方式B、中斷方式C、DMA方式D、I/O通道方式21.嵌入式系統(tǒng)最常用的數(shù)據(jù)傳送方式是( B )。A、查詢B、中斷C、DMAD、I/O處理機(jī)22,µClinux與標(biāo)準(zhǔn)Linux最大的區(qū)別在于( B )。A、文件系統(tǒng) B、內(nèi)存管理C、任務(wù)調(diào)度算法D、應(yīng)用開發(fā)模式23.嵌入式操作系統(tǒng)一般通過( A )手段來解決代碼體積與嵌入式應(yīng)用多樣性嵌入式操作系統(tǒng)一般通過( A )手段來解決代碼體積與嵌入式應(yīng)用多樣性的問題。A、使用可定制的操作系統(tǒng)B、將操作系統(tǒng)分布在

14、多個(gè)處理器上運(yùn)行C、增大嵌入式設(shè)備的存儲(chǔ)容量D、使用壓縮軟件對(duì)操作系統(tǒng)進(jìn)行壓縮24.談一談嵌入式系統(tǒng)的發(fā)展趨勢(shì)(列出五個(gè)趨勢(shì)以上)。答:產(chǎn)品種類不斷豐富;應(yīng)用范圍不斷普及;性能不斷提高;功耗不斷降低,體積不斷縮??;網(wǎng)絡(luò)化、智能化程度不斷提高;軟件成為影響價(jià)格的主要因素。(每個(gè)趨勢(shì)1分)25.簡(jiǎn)述嵌入式微處理器的特點(diǎn)。答:嵌入式微處理器的特點(diǎn):通用微處理器的增強(qiáng),一般為32位。(1分)構(gòu)成:一般CPU、存儲(chǔ)器、I/O接口三者分離;(1分)性能:一般為1002000MIPS;(1分)存儲(chǔ)器:Flash一般為116MB,SDRAM一般為264MB;(1分)一般加載復(fù)雜嵌入式操作系統(tǒng):VxWorks、

15、WinCE、µClinux等。(1分)26.什么是訪存時(shí)序配合?答:存控發(fā)出的信號(hào)要滿足存儲(chǔ)器的時(shí)序要求(2.5分);存儲(chǔ)器返回的信號(hào)要滿足存控的時(shí)序要求(2.5分)。27.請(qǐng)指出USB總線的四種傳輸類型,并指出每一種傳輸類型的基本特點(diǎn)。答:四種傳輸類型:控制傳輸、批量傳輸、中斷傳輸和等時(shí)傳輸(1分)控制傳輸:雙向,糾錯(cuò),查詢、配置設(shè)備信息;(1分)批量傳輸:?jiǎn)蜗?,糾錯(cuò),大塊無結(jié)構(gòu)數(shù)據(jù),延遲不定;(1分)中斷傳輸:?jiǎn)蜗颍m錯(cuò),小塊無結(jié)構(gòu)數(shù)據(jù),延遲確定;(1分)等時(shí)傳輸:?jiǎn)蜗?,無糾錯(cuò),大塊無結(jié)構(gòu)數(shù)據(jù),延遲確定。(1分)28.什么是前后臺(tái)系統(tǒng)?有何優(yōu)缺點(diǎn)?它的實(shí)時(shí)性如何決定?答:前后臺(tái)系

16、統(tǒng):分為前臺(tái)程序和后臺(tái)程序。前臺(tái)程序也稱中斷級(jí)程序,通過中斷來處理事件,在中斷服務(wù)子程序中,一般對(duì)中斷做一些簡(jiǎn)單的處理,然后給出事件發(fā)生的標(biāo)志,待后臺(tái)程序來處理;后臺(tái)程序也稱任務(wù)級(jí)程序,一個(gè)死循環(huán),循環(huán)查詢各種標(biāo)志位,如果標(biāo)志位置位,就執(zhí)行相應(yīng)的任務(wù)程序。(2分)優(yōu)點(diǎn):系統(tǒng)結(jié)構(gòu)簡(jiǎn)單,幾乎不需要額外的存儲(chǔ)開銷。(1分)缺點(diǎn):所有的任務(wù)具有相同的優(yōu)先級(jí)別,任務(wù)響應(yīng)時(shí)間不可預(yù)測(cè);后臺(tái)程序是一個(gè)無限循環(huán)的結(jié)構(gòu),一旦在這個(gè)循環(huán)體中正在處理的任務(wù)崩潰,使得整個(gè)任務(wù)隊(duì)列中的其他任務(wù)得不到機(jī)會(huì)被處理,從而造成整個(gè)系統(tǒng)的崩潰。(1分)實(shí)時(shí)性:取決于所有其它任務(wù)的執(zhí)行時(shí)間之和。(1分)29.簡(jiǎn)述嵌入式操作系統(tǒng)和實(shí)

17、時(shí)操作系統(tǒng)的關(guān)系。答:“嵌入式”并不意味著“實(shí)時(shí)”,例如µClinux、Embedded Linux為嵌入式操作系統(tǒng)但非實(shí)時(shí)操作系統(tǒng)(2分);“實(shí)時(shí)”并不意味著“嵌入式”,例如OpenVMS(工作站、小型機(jī))為實(shí)時(shí)操作系統(tǒng)但非嵌入式操作系統(tǒng)(2分);不過實(shí)際上,目前的嵌入式操作系統(tǒng)(EOS)基本上是實(shí)時(shí)操作系統(tǒng)(RTOS)(1分)。下圖為單周期存儲(chǔ)器讀時(shí)序圖。clk為時(shí)鐘信號(hào),上升沿有效;rd為讀信號(hào),高電平有效。問:如果主設(shè)備要求的建立時(shí)間,保持時(shí)間,則此系統(tǒng)的最高時(shí)鐘頻率為多少?能否滿足保持時(shí)間的要求?(要求寫出計(jì)算過程)。參考功能描述最小值最大值單位t0rd延遲時(shí)間510nst

18、1rd持續(xù)時(shí)間60nst2rd有效到數(shù)據(jù)輸出30nst3rd無效到data持續(xù)時(shí)間510ns答:滿足存儲(chǔ)器讀rd時(shí)序要求,則時(shí)鐘周期要保證主設(shè)備有足夠的建立時(shí)間,則時(shí)鐘周期要保證主設(shè)備有足夠的保持時(shí)間最高時(shí)鐘頻率為分析下述S3C44B0x的示例程序。#include <S3C44B0X.h>volatile unsigned long timeval; / 當(dāng)前時(shí)刻void main(void) init_timer();/ Initialize Timerwhile(1) pPIO->PDATE = 0xFD; / Turn LED1 Onwait(1000);/ Wait

19、 1000mspPIO->PDATE = 0xFB;/ Turn LED2 Onwait(1000);/ Wait 1000ms/ 初始化Timer5以及開定時(shí)中斷void init_timer(void) / 1ms產(chǎn)生一次定時(shí)中斷_irq void HandlerTIMER5(void)timeval+; pIC->I_ISPC = INT_TIMER5; / 等待函數(shù),以毫秒為單位void wait(unsigned long time) 問:語句“while (1)”的作用是什么?關(guān)鍵詞“_irq”的作用是什么?語句“pIC->I_ISPC = INT_TIMER5;

20、”的作用是什么?子程序HandlerTIMER5并未被調(diào)用,它是如何執(zhí)行的?此程序的功能是什么?答: 語句“while (1)”的作用是死循環(huán)、等待中斷、LED顯示;(2分) 關(guān)鍵詞“_irq”的作用是指明該函數(shù)為IRQ中斷服務(wù)子程序;(2分) 語句“pIC->I_ISPC = INT_TIMER5;”的作用是清除中斷請(qǐng)求標(biāo)志;(2分) 中斷源發(fā)出中斷請(qǐng)求,CPU響應(yīng)中斷并查詢中斷源得到中斷向量表入口地址,到中斷向量表相應(yīng)入口地址取指令執(zhí)行,該處為跳轉(zhuǎn)指令,執(zhí)行跳轉(zhuǎn)指令跳轉(zhuǎn)到子程序HandlerTIMER5處執(zhí)行;(2分) 此程序的功能是雙燈閃爍。(2分)3、PC機(jī)不是嵌入式系統(tǒng),但是P

21、C機(jī)中卻包含了大量的嵌入式系統(tǒng)。列舉其中包含的嵌入式應(yīng)用系統(tǒng)(至少三個(gè)),并對(duì)每個(gè)嵌入式應(yīng)用系統(tǒng)作簡(jiǎn)單的介紹和分析。答:答案眾多(評(píng)分標(biāo)準(zhǔn):每一個(gè)應(yīng)用3分,敘述詳細(xì)最多加1分)鍵盤、鼠標(biāo)、光驅(qū)、顯示器等,介紹及分析略。ARM處理器狀態(tài) ARM微處理器的工作狀態(tài)一般有兩種,并可在兩種狀態(tài)之間切換:第一種為ARM狀態(tài),此時(shí)處理器執(zhí)行32位的字對(duì)齊的ARM指令;第二種為Thumb狀態(tài),此時(shí)處理器執(zhí)行16位的、半字對(duì)齊的Thumb指令。在程序的執(zhí)行過程中,微處理器可以隨時(shí)在兩種工作狀態(tài)之間切換,并且,處理器工作狀態(tài)的轉(zhuǎn)變并不影響處理器的工作模式和相應(yīng)寄存器中的內(nèi)容。但ARM微處理器在開始執(zhí)行代碼時(shí),應(yīng)

22、該處于ARM狀態(tài)。 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指針放入異常模式鏈接寄存器中,并從異常向量地址開始執(zhí)行程序,也可以使處理器切換到ARM狀態(tài)。ARM處理器模式 ARM微處理器支持7種運(yùn)行模式,分

23、別為:用戶模式(usr):ARM處理器正常的程序執(zhí)行狀態(tài)??焖僦袛嗄J?fiq):用于高速數(shù)據(jù)傳輸或通道處理。外部中斷模式(irq):用于通用的中斷處理。管理模式(svc):操作系統(tǒng)使用的保護(hù)模式。數(shù)據(jù)訪問終止模式(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é)處理器的軟件仿真。ARM處理器模式 ARM微處理器的運(yùn)行模式可以通過軟件改變,也可以通過外部中斷或異常處理改變。大多數(shù)的應(yīng)用程序運(yùn)行在用戶模式下,當(dāng)處理器運(yùn)行在用戶模式下時(shí),某些被保護(hù)的系統(tǒng)

24、資源是不能被訪問的。 除用戶模式以外,其余的所有6種模式稱之為非用戶模式,或特權(quán)模式;其中除去用戶模式和系統(tǒng)模式以外的5種又稱為異常模式,常用于處理中斷或異常,以及需要訪問受保護(hù)的系統(tǒng)資源等情況。ARM寄存器 ARM處理器共有37個(gè)寄存器。其中包括:31個(gè)通用寄存器,包括程序計(jì)數(shù)器(PC)在內(nèi)。這些寄存器都是32位寄存器。以及6個(gè)32位狀態(tài)寄存器。 關(guān)于寄存器這里就不詳細(xì)介紹了,有興趣的人可以上網(wǎng)找找,很多這方面的資料。異常處理 當(dāng)正常的程序執(zhí)行流程發(fā)生暫時(shí)的停止時(shí),稱之為異常,例如處理一個(gè)外部的中斷請(qǐng)求。在處理異常之前,當(dāng)前處理器的狀態(tài)必須保留,這樣當(dāng)異常處理完成之后,當(dāng)前程序可以繼續(xù)執(zhí)行。

25、處理器允許多個(gè)異常同時(shí)發(fā)生,它們將會(huì)按固定的優(yōu)先級(jí)進(jìn)行處理。當(dāng)一個(gè)異常出現(xiàn)以后,ARM微處理器會(huì)執(zhí)行以下幾步操作:進(jìn)入異常處理的基本步驟:將下一條指令的地址存入相應(yīng)連接寄存器LR,以便程序在處理異常返回時(shí)能從正確的位置重新開始執(zhí)行。將CPSR復(fù)制到相應(yīng)的SPSR中。根據(jù)異常類型,強(qiáng)制設(shè)置CPSR的運(yùn)行模式位。強(qiáng)制PC從相關(guān)的異常向量地址取下一條指令執(zhí)行,從而跳轉(zhuǎn)到相應(yīng)的異常處理程序處。如果異常發(fā)生時(shí),處理器處于Thumb狀態(tài),則當(dāng)異常向量地址加載入PC時(shí),處理器自動(dòng)切換到ARM狀態(tài)。 ARM微處理器對(duì)異常的響應(yīng)過程用偽碼可以描述為: R14_ = Return LinkSPSR_= CPSRC

26、PSR4:0 = Exception Mode NumberCPSR5 = 0 ;當(dāng)運(yùn)行于 ARM 工作狀態(tài)時(shí)If = Reset or FIQ then;當(dāng)響應(yīng) FIQ 異常時(shí),禁止新的 FIQ 異常CPSR6 = 1PSR7 = 1PC = Exception Vector Address異常處理完畢之后,ARM微處理器會(huì)執(zhí)行以下幾步操作從異常返回:將連接寄存器LR的值減去相應(yīng)的偏移量后送到PC中。將SPSR復(fù)制回CPSR中。若在進(jìn)入異常處理時(shí)設(shè)置了中斷禁止位,要在此清除。BootLoader簡(jiǎn)介 簡(jiǎn)單地說,Boot Loader 就是在操作系統(tǒng)內(nèi)核運(yùn)行之前運(yùn)行的一段小程序。通過這段小程序

27、,我們可以初始化硬件設(shè)備、建立內(nèi)存空間的映射圖,從而將系統(tǒng)的軟硬件環(huán)境帶到一個(gè)合適的狀態(tài),以便為最終調(diào)用操作系統(tǒng)內(nèi)核準(zhǔn)備好正確的環(huán)境。 Boot Loader 是嚴(yán)重地依賴于硬件而實(shí)現(xiàn)的,特別是在嵌入式世界。因此,在嵌入式世界里建立一個(gè)通用的 Boot Loader 幾乎是不可能的。盡管如此,我們?nèi)匀豢梢詫?duì) Boot Loader 歸納出一些通用的概念來,以指導(dǎo)用戶特定的 Boot Loader 設(shè)計(jì)與實(shí)現(xiàn)。 基于 ARM7TDMI core 的 CPU 在復(fù)位時(shí)通常都從地址 0x00000000 取它的第一條指令。在系統(tǒng)加電后,CPU 將首先執(zhí)行 Boot Loader 程序。大多數(shù) Boo

28、t Loader 都包含兩種不同的操作模式:“啟動(dòng)加載”模式和“下載”模式 :?jiǎn)?dòng)加載(Boot loading)模式:Boot Loader 從目標(biāo)機(jī)上的某個(gè)固態(tài)存儲(chǔ)設(shè)備上將操作系統(tǒng)加載到 RAM 中運(yùn)行,整個(gè)過程并沒有用戶的介入。下載(Downloading)模式:Boot Loader 將通過串口連接或網(wǎng)絡(luò)連接等通信手段從主機(jī)(Host)下載文件,比如:下載內(nèi)核映像和根文件系統(tǒng)映像等。BOOT的一般步驟為: 設(shè)置中斷向量表 初始化存儲(chǔ)設(shè)備 初始化堆棧 初始化用戶執(zhí)行環(huán)境 呼叫主應(yīng)用程序設(shè)置中斷向量表 ARM要求中斷向量表必須放置在從0地址開始,連續(xù)8X4字節(jié)的空間內(nèi)。 每當(dāng)一個(gè)中斷發(fā)生以

29、后,ARM處理器便強(qiáng)制把PC指針置為向量表中對(duì)應(yīng)中斷類型的地址值。因?yàn)槊總€(gè)中斷只占據(jù)向量表中1個(gè)字的存儲(chǔ)空間,只能放置一條ARM指令,使程序跳轉(zhuǎn)到存儲(chǔ)器的其他地方,再執(zhí)行中斷處理。中斷向量表的程序?qū)崿F(xiàn)通常如下表示: AREA Boot ,CODE, READONLYENTRYB? ResetHandler B? UndefHandler B? SWIHandlerB? PreAbortHandlerB? DataAbortHandlerBB? ?IRQHandlerB? FIQHandler其中關(guān)鍵字ENTRY是指定編譯器保留這段代碼,因?yàn)榫幾g器可能會(huì)認(rèn)為這是一段亢余代碼而加以優(yōu)化。鏈接的時(shí)候

30、要確保這段代碼被鏈接在0地址處,并且作為整個(gè)程序的入口。? 初始化存儲(chǔ)設(shè)備 存儲(chǔ)器端口的接口時(shí)序優(yōu)化是非常重要的,這會(huì)影響到整個(gè)系統(tǒng)的性能。因?yàn)橐话阆到y(tǒng)運(yùn)行的速度瓶頸都存在于存儲(chǔ)器訪問,所以存儲(chǔ)器訪問時(shí)序應(yīng)盡可能的快;而同時(shí)又要考慮到由此帶來的穩(wěn)定性問題。在不同的板子上處理芯片、存儲(chǔ)設(shè)備以及其接口差異很大,應(yīng)根據(jù)不同的情況來配置。初始化堆棧 因?yàn)锳RM有7種執(zhí)行狀態(tài),每一種狀態(tài)的堆棧指針寄存器(SP)都是獨(dú)立的。因此,對(duì)程序中需要用到的每一種模式都要給SP定義一個(gè)堆棧地址。方法是改變狀態(tài)寄存器內(nèi)的狀態(tài)位,使處理器切換到不同的狀態(tài),然后給SP賦值。注意:不要切換到User模式進(jìn)行User模式的堆

31、棧設(shè)置,因?yàn)檫M(jìn)入U(xiǎn)ser模式后就不能再操作CPSR回到別的模式了,可能會(huì)對(duì)接下去的程序執(zhí)行造成影響。 這是一段堆棧初始化的代碼示例:mrs r0,cpsr ;讀取cpsr寄存器的值bic r0,r0,#MODEMASK ;把模式位清零orr r1,r0,#UNDEFMODE|NOINTmsr cpsr_cxsf,r1 ;UndefModeldr sp,=UndefStack其他模式的堆棧的初始化也類似。堆棧地址的定義一般如下: (_ISR_STARTADDRESS-0x1400)UserStack # 1024 ;#=field,定義一個(gè)數(shù)據(jù)域,長度為1024SVCStack # 1024UndefStack # 1024 AbortStack # 1024 IRQStack # 1024 FIQStack # 0初始化用戶執(zhí)行環(huán)境 一個(gè)ARM映像文件由RO,RW和ZI三個(gè)段組成,其中RO為代碼段,RW是已初始化的全局變量,ZI是未初始化的全局變量。映像一開始總是存儲(chǔ)在ROMFlash里面的,其RO部分即可以在ROMFlash里面執(zhí)行,也可以轉(zhuǎn)移到速度更快的RAM中執(zhí)行;而RW和ZI這兩部分是必須轉(zhuǎn)移到可寫的RAM里去。所謂應(yīng)用程序執(zhí)行環(huán)境的初始化,就是完成必要的從ROM到RAM的數(shù)據(jù)傳輸和內(nèi)容清零。 編譯器

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論