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

下載本文檔

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

文檔簡(jiǎn)介

1、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.1/0接口電路數(shù)據(jù)傳送方式有:查詢、中斷、 DMA、I/O通道和I/O處理機(jī)方 式。實(shí)時(shí)系統(tǒng)的關(guān)鍵問題是

2、保證系統(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)。(A、“天河一號(hào)”計(jì)算機(jī)系統(tǒng)C、聯(lián)想S10上網(wǎng)本D )B、聯(lián)想T400筆記本計(jì)算機(jī)D、聯(lián)想OPhone手機(jī)2. 軟硬件協(xié)同設(shè)計(jì)方法與傳統(tǒng)設(shè)計(jì)方法的最大不同之處在于(B )。A、軟硬件分開描述B、軟硬件統(tǒng)一描述協(xié)同驗(yàn)證C、協(xié)同測(cè)試3. 下面關(guān)于哈佛結(jié)構(gòu)描述正確的是(AA、程序存儲(chǔ)空間與數(shù)據(jù)存儲(chǔ)空間分離B、存儲(chǔ)空間與IO空間分離C、程序存儲(chǔ)空間與數(shù)據(jù)存儲(chǔ)空間合并存儲(chǔ)空間與IO空間合并4.

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

4、 控制器C、以太網(wǎng)控制器9. 下面哪個(gè)操作系統(tǒng)是嵌入式操作系統(tǒng)A、Red-hat Linux B、pCLinux10. 使用 Host-TargetA、宿主機(jī)D 、交叉編譯器C、目標(biāo)機(jī)簡(jiǎn)答題D 、 LED(B )C、 Ubuntu Linux D、 SUSE Linux聯(lián)合開發(fā)嵌入式應(yīng)用, ( B )不是必須的。B、銀河麒麟操作系統(tǒng)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. 什么是 CMOS 電平?有何特點(diǎn)?

5、答:發(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)行后,就把CP

6、U控制權(quán)完全交給了該任務(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):如果最長(zhǎng)任務(wù)的執(zhí)行時(shí)間不能確定,系統(tǒng)的實(shí)時(shí)性就不能確定。(1分)實(shí)時(shí)性:取決于最長(zhǎng)任務(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

7、運(yùn)行時(shí),系統(tǒng)中具有最高優(yōu)先級(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)的

8、編程思想(任務(wù)就是一個(gè)函數(shù),直接調(diào)用,無需實(shí)現(xiàn),但至少三個(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)志 ;(1 分)(1 分)even tFlagl = true; _irq v

9、oid Han dleFlag2( void ) 清中斷請(qǐng)求標(biāo)志;even tFlag2 = true;_irq void Han dleFlag3( void ) 清中斷請(qǐng)求標(biāo)志;even tFlag3 = 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í)生活

10、增加了無窮的樂趣。請(qǐng)列舉你所熟悉的五個(gè)嵌入式應(yīng)用系統(tǒng),并對(duì)每個(gè)嵌入式系統(tǒng)作簡(jiǎn)單的分析(指出它為什么是嵌入式系統(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??偩€由傳輸信息的物

11、理介質(zhì)和管理信息傳輸?shù)膮f(xié)議組成。采用RS232C實(shí)現(xiàn)最簡(jiǎn)單的雙機(jī)互聯(lián),至少需要如下信號(hào)線:TXD、RXD和GND。USB通信總線中的事務(wù)可能由令牌包、數(shù)據(jù)包和握手包組成。11.1/0接口編址方式有兩種,分別是:統(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ì)中,嵌

12、入式處理器選型是在進(jìn)行(C )時(shí)完成。A、需求分析B、系統(tǒng)集成C、體系結(jié)構(gòu)設(shè)計(jì)D、軟硬件設(shè)計(jì)16. 下面哪一類嵌入式處理器最適合于用于工業(yè)控制(B )0A、嵌入式微處理器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處理器的異常的描述不

13、正確的是(C )oA、復(fù)位屬于異常B、除數(shù)為零會(huì)引起異常C、所有異常都要返回D、外部中斷會(huì)引起異常19. 下面總線不屬于對(duì)等結(jié)構(gòu)的是( A )oA、PCIB、IEEE1394C、令牌網(wǎng)D、以太網(wǎng)20.USB總線米用的通信方式為(A )oA、輪詢方式B、中斷方式C、DMA方式D、I/O 通道方式21.嵌入式系統(tǒng)最常用的數(shù)據(jù)傳送方式是(B)0A、查詢B、中斷C、DMAD、I/O處理機(jī)22 , pCIinux與標(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)一般通過

14、( A )手段來解決代碼體積與嵌入式應(yīng)用多樣性的 問題。A、使用可定制的操作系統(tǒng)B、將操作系統(tǒng)分布在多個(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分)性能:一般為 1002000MIP

15、S ;( 1 分) 存儲(chǔ)器: FIash 一般為 116MB , SDRAM 一般為 264MB ;( 1 分) 一般加載復(fù)雜嵌入式操作系統(tǒng): VxWorks 、 WinCE、 pCIinux 等。(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分)中斷

16、傳輸:?jiǎn)蜗?,糾錯(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)系統(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),一旦

17、在這個(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í)時(shí)操作系統(tǒng)的關(guān)系。答:“嵌入式”并不意味著“實(shí)時(shí)”,例如pCIinux、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

18、為讀信號(hào),高 電平有效。問:如果主設(shè)備要求的建立時(shí)間 tsu -40ns,保持時(shí)間£ -6ns,則此 系統(tǒng)的最高時(shí)鐘頻率為多少?能否滿足保持時(shí)間的要求? (要求寫出計(jì)算過程)。4 參考功能描述最小值最大值單位tord延遲時(shí)間510nst1rd持續(xù)時(shí)間60nst2rd有效到數(shù)據(jù)輸出30nst3rd無效到data持續(xù)時(shí)間510ns答:滿足存儲(chǔ)器讀rd時(shí)序要求,則時(shí)鐘周期tcYc t0 - 1 t0 60 10 = 70nstCYC - 70 - 5 = 65ns要保證主設(shè)備有足夠的建立時(shí)間,則時(shí)鐘周期tcYC - g t2= 80nS要保證主設(shè)備有足夠的保持時(shí)間£ = t0 t

19、3 - 5 5 二 10ns 6ns最咼時(shí)鐘頻率為tcYC - max65,80 =80 nsfMAX12.5MHz80 ns/當(dāng)前時(shí)刻/ Turn LED1 On/ Wait 1000ms/ Turn LED2 On/ Wait 1000ms分析下述S3C44B0x的示例程序。#in elude <S3C44B0X.h> volatile unsigned long timeval;void mai n(void) ini t_timer();/In itialize Timerwhile(1) pPIO->PDATE = 0xFD; wait(1000);pPIO->

20、;PDATE = 0xFB; wait(1000);/初始化Timer5以及開定時(shí)中斷void ini t_timer(void) / 1ms 產(chǎn)生一次定時(shí)中斷_irq void HandlerTIMER5(void) timeval+;pIC->I_ISPC = INT_TIMER5; / 等待函數(shù),以毫秒為單位void wait( un sig ned long time) 問:語句while (1) ”的作用是什么?關(guān)鍵詞 _irq”的作用是什么? 語句 plC->l_ISPC = INT_TIMER5; ”的作用是什么?子程序 HandlerTIMER5 并未被調(diào)用,它是如

21、何執(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),但是PC機(jī)中卻包含了大量的嵌入式系統(tǒng)。列舉其中包含的嵌入式應(yīng)

22、用系統(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)該處于 ARM狀態(tài)。ARM處理器

23、狀態(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、Un def、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)行模式,分別為: 用戶模式

24、(usr) : ARM處理器正常的程序執(zhí)行狀態(tài)??焖僦袛嗄J剑╢iq):用于高速數(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)資源是不能

25、被訪問的。除用戶模式以外,其余的所有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í)行。處理器允許

26、多個(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_= CPSRCPS

27、R4: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 = Excepti on 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)行的一段小程序。通過這段小程序,

28、我們可以初始化硬件設(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ì)BootLoader歸納出一些通用的概念來,以指導(dǎo)用戶特定的Boot Loader 設(shè)計(jì)與實(shí)現(xiàn)?;?ARM7TDMI core 的CPU 在復(fù)位時(shí)通常都從地址0x00000000 取它的第一條指令。在系統(tǒng)加電后,CPU將首先執(zhí)行Boot Loader 程序。大多數(shù)Boot Loader都包含兩種不

29、同的操作模式:?jiǎn)?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ā)生以后,ARM處理器便強(qiáng)制把 PC指針置為向量表

30、中對(duì)應(yīng)中斷類型的地址值。因?yàn)槊總€(gè)中斷只占據(jù)向量表中1個(gè)字的存儲(chǔ)空間,只能放置一條 ARM指令,使程序跳轉(zhuǎn)到存儲(chǔ)器的其他地方,再執(zhí)行中斷處理。中斷向量表的程序?qū)崿F(xiàn)通常如下表示:AREA Boot ,CODE, READONLYENTRYB? ResetHa ndlerB? Un defHa ndlerB? SWIHa ndlerB? PreAbortHa ndlerB? DataAbortHa ndlerBB? ?IRQHa ndlerB? FIQHa ndler其中關(guān)鍵字ENTRY是指定編譯器保留這段代碼,因?yàn)榫幾g器可能會(huì)認(rèn)為這是一段亢余代碼而加以優(yōu)化。鏈接的時(shí)候要確保這段代碼被鏈接在0地址處

31、,并且作為整個(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模式的堆棧設(shè)置,因?yàn)檫M(jìn)入U(xiǎn)ser

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

溫馨提示

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

評(píng)論

0/150

提交評(píng)論