東師奧鵬2018年秋季《嵌入式系統(tǒng)》參考答案_第1頁
東師奧鵬2018年秋季《嵌入式系統(tǒng)》參考答案_第2頁
東師奧鵬2018年秋季《嵌入式系統(tǒng)》參考答案_第3頁
東師奧鵬2018年秋季《嵌入式系統(tǒng)》參考答案_第4頁
免費預(yù)覽已結(jié)束,剩余1頁可下載查看

下載本文檔

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

文檔簡介

東師奧鵬2018年秋季《嵌入式系統(tǒng)》參考答案東師奧鵬2018年秋季《嵌入式系統(tǒng)》參考答案東師奧鵬2018年秋季《嵌入式系統(tǒng)》參考答案V:1.0精細整理,僅供參考東師奧鵬2018年秋季《嵌入式系統(tǒng)》參考答案日期:20xx年X月期末作業(yè)考核《嵌入式系統(tǒng)》滿分100分一、判斷題(每題3分,共30分)1.嵌入式系統(tǒng)一般具有實時約束,有時限要求,因此,嵌入式系統(tǒng)一般都采用分時操作系統(tǒng)。(√)2.嵌入式系統(tǒng)本身具備自舉開發(fā)能力,用戶可以直接在嵌入式設(shè)備上做開發(fā)。(×)3.硬件資源是硬件設(shè)計工程師在設(shè)計和調(diào)試硬件必備的工具,這些資源不包括示波器。(√)4.嵌入式常用編程語言有匯編語言、C語言、C++語言以及Java語言等。(√)5.嵌入式Linux是以Linux為基礎(chǔ)的嵌入式操作系統(tǒng),它是一種開放源代碼、軟實時、多任務(wù)的嵌入式操作系統(tǒng)。(√)6.uCLinux是面向支持MMU的處理器平臺設(shè)計的。(×)7.ARM指令中的第二個操作數(shù)可以是一個8位的立即數(shù),也可以是一個任意的32位立即數(shù)。(×)8.當(dāng)異常發(fā)生時,需要保護程序執(zhí)行現(xiàn)場,再進行異常處理。其中,現(xiàn)場保護包括返回地址和CPSR的值兩個方面的內(nèi)容。(√)9.MAP用于定義一個結(jié)構(gòu)化的內(nèi)存表的首地址,可以用“*”代替。(×)10.SPACE分配的內(nèi)存單元用0初始化,DCB分配的內(nèi)存用指定的值初始化。(√)二、簡答題(每題8分,共40分)1.什么是可編程片上系統(tǒng)(SOPC)答:SOPC(SystemOnProgrammableChip)即可編程的片上系統(tǒng),或者說是基于大規(guī)模FPGA的單片系統(tǒng)。SOPC技術(shù)是一門全新的綜合性電子設(shè)計技術(shù),涉及面廣。在二○世紀(jì)九十年度末,可編程邏輯器件(PLD)的復(fù)雜度已經(jīng)能夠在單個可編程器件內(nèi)實現(xiàn)整個系統(tǒng)。完整的單芯片系統(tǒng)(SOC)概念是指在一個芯片中實現(xiàn)用戶定義的系統(tǒng),它通常暗指包括片內(nèi)存儲器和外設(shè)的微處理器。最初宣稱真正的SOC――或可編程單芯片系統(tǒng)(SOPC)――能夠提供基于PLD的處理器。在2000年,Altera發(fā)布了Nios處理器,這是AlteraExcalibur嵌入處理器計劃中第一個產(chǎn)品,它成為業(yè)界第一款為可編程邏輯優(yōu)化的可配置處理器。本文闡述開發(fā)Nios處理器設(shè)計環(huán)境的過程和涉及的決策,以及它如何演化為一種SOPC工具。SOPC是基于FPGA解決方案的SOC,與ASIC的SOC解決方案相比,SOPC系統(tǒng)及其開發(fā)技術(shù)具有更多的特色,構(gòu)成SOPC的方案也有如下多種途徑2.什么是嵌入式交叉調(diào)試交叉調(diào)試的方式有哪幾種答:就是宿主機(一般是電腦)與目標(biāo)機(嵌入式系統(tǒng))之間跨平臺進行調(diào)試(一個是x86架構(gòu)處理器,一個是ARM或其他嵌入式微處理器),這種跨平臺的調(diào)試就叫交叉調(diào)試。當(dāng)然,宿主機與目標(biāo)機之間存在某種通信方式,以太網(wǎng)通信或串口通信等。常用的調(diào)試方法有Monitor方式和片上調(diào)試方式。3.嵌入式ARMLinux系統(tǒng)的一般開發(fā)步驟是什么答:第一步、建立交叉編譯環(huán)境沒有交叉開發(fā)經(jīng)驗的讀者,可能一時很難接受這個概念。首先,要明白兩個概念:一般我們工作的機器,稱為開發(fā)機、主機;我們制作好的系統(tǒng)將要放到某臺機器,如手機或另一臺PC機,這臺機我們稱為目標(biāo)主機。我們一般開發(fā)機上已經(jīng)有一套開發(fā)工具,我們稱之為原生開發(fā)套件,我們一般就是用它們來寫程序,那么,那什么又是交叉編譯環(huán)境呢其實一點也不神秘,也就是在開發(fā)機上再安裝一套開發(fā)工具,這套開發(fā)工具編譯出來的程序,如內(nèi)核、系統(tǒng)工作或者我們自己的程序,是放在目標(biāo)主機上運行的。那么或許有初學(xué)者會問,直接用原生開發(fā)工具為目標(biāo)主機編譯程序不就完了至少我當(dāng)初是這么想的。一般來說,我們的開發(fā)機都是X86平臺,原生開發(fā)套件開發(fā)的工具,也針對X86平臺,而我們的目標(biāo)主機可能是PowerPC、IXP、MIPS……所以,我們的交叉編譯環(huán)境是針對某一類具體平臺的。一般來講,交叉開發(fā)環(huán)境需要二進制工具程序、編譯器、C鏈接庫,嵌入式開發(fā)常用的這三類軟件是:BinutilsGccuClibc當(dāng)然,GNU包含的工具套件不僅于此,你還要以根據(jù)實際需要,進行選擇第二步、編譯內(nèi)核開發(fā)工具是針對某一類硬件平臺,內(nèi)核同樣也是。這一步,我們需要用第一步中建立的工具,對內(nèi)核進行編譯,對于有內(nèi)核編譯經(jīng)驗的人來說,這是非常簡單的;第三步、建立根文件系統(tǒng)也就是建立我們平常看到的bin、dev、proc……這一大堆目錄,以及一些必備的文件;另外,我們還需要為我們的目標(biāo)系統(tǒng)安裝一些常用的工具軟件,如ls、ifconfig……當(dāng)然,一個辦法是找到這些工具的源代碼,用第一步建立的交叉編譯工具來編譯,但是這些軟件一是數(shù)量多,二是某些體積較大,不適合嵌入式系統(tǒng),這一步,我們一般都是用busybox來完成的,包括系統(tǒng)引導(dǎo)軟件init;最后,我們?yōu)橄到y(tǒng)還需要建立初始化的引導(dǎo)文件,如inittab……4.試舉例說明LDR和STR指令的前變址、后變址和回寫前變址3種變址模式。答:對于LDR:前變址:LDRr0,[r1,#40]回寫前變址:LDRr0,[r1,#40]!后變址:LDRr0,r1,#40對于STR:前變址:STRr0,[r1,#40]回寫前變址:STRr0,[r1,#40]!后變址:STRr0,r1,#405.從IRQ和FIQ處理程序返回時,如何寫返回指令答:簡單說,把要返回的地址移入PC中即可。說復(fù)雜一點,這個輸入的地址在進入中斷處理例程的時候,保存在LR中,所以一般的做法是做一個movspc,lr即可實現(xiàn)。三、問答及應(yīng)用題(每小題15分,共30分)1.簡述ARM的CPSR各狀態(tài)位的作用,并說明如何對其進行操作,以改變各狀態(tài)位。答:CPSR可在任何運行模式下被訪問,它包含條件碼標(biāo)志位、中斷禁止位、當(dāng)前處理器模式標(biāo)志位,以及其他一些相關(guān)的控制和狀態(tài)位。條件碼標(biāo)志位:N當(dāng)用兩個補碼表示的帶符號數(shù)進行運算時,N=1表示運算的結(jié)果為負數(shù);N=0表示運算的結(jié)果為正數(shù)或零;ZZ=1表示運算的結(jié)果為零;Z=0表示運算的結(jié)果為非零;C①加法(包括比較指令CMN)運算結(jié)果產(chǎn)生進位時(無符號數(shù)溢出),C=1,否則C=0。②減法(包括比較指令CMP)運算產(chǎn)生借位(無符號數(shù)溢出),C=0,否則C=1。③對于包含移位操作的非加/減運算指令,C為移出值的最后一位。V①對于加/減法運算指令,當(dāng)操作數(shù)和運算結(jié)果為二進制的補碼表示的帶符號數(shù)時,V=1表示符號位溢出。CPSR的低8位(包括I、F、T和M[4:0])稱為控制位,當(dāng)發(fā)生異常時這些位可以被改變。狀態(tài)寄存器(PSR)中的其余位為保留位,當(dāng)改變PSR中的條件碼標(biāo)志位或者控制位時,保留位不要被改變,在程序中也不要使用保留位來存儲數(shù)據(jù)。2.假設(shè)已經(jīng)在C程序中定義了一個數(shù)組intFi[100],數(shù)組元素初始值為0。試編寫一個ARM匯編子程序Fibonacci,實現(xiàn)將斐波拉契數(shù)列的前100項存入數(shù)組Fi[100]中,其中前兩項為1和1,分別存入到Fi[0]和Fi[1],其他項依次存入數(shù)組其余元素,數(shù)組的地址作為參數(shù)傳遞給匯編子程序。斐波拉契數(shù)列是形如:1,1,2,3,5,8,13,…的數(shù)列。答:intmax(intarray[]){if(array[i]>max){intmax=array[0];inti=0;for(i=0;i<12;i++){max=array[i];}}returnmax;}intmain(void){intline,row;intArray[]={1,5,-1,25,9,44,43,65,10,11110,343,765};//數(shù)組初始化intNumber=max(Array);printf("最大的數(shù)是%d\n",Number);//數(shù)組l的F數(shù)列l(wèi)onginta

溫馨提示

  • 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. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論