嵌入式系統(tǒng)習(xí)題解答(完全修訂版)._第1頁
嵌入式系統(tǒng)習(xí)題解答(完全修訂版)._第2頁
嵌入式系統(tǒng)習(xí)題解答(完全修訂版)._第3頁
嵌入式系統(tǒng)習(xí)題解答(完全修訂版)._第4頁
嵌入式系統(tǒng)習(xí)題解答(完全修訂版)._第5頁
已閱讀5頁,還剩5頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、第一章1、舉出3個(gè)書本中未提到的嵌入式系統(tǒng)的例子。答:紅綠燈控制,數(shù)字空調(diào),機(jī)頂盒2、什么叫嵌入式系統(tǒng)嵌入式系統(tǒng):以應(yīng)用為中心、以計(jì)算機(jī)技術(shù)為基礎(chǔ)、軟件硬件可裁剪、適應(yīng)應(yīng)用系統(tǒng)對功能、可靠性、成本、體積、功耗嚴(yán)格要求的專用計(jì)算機(jī)系統(tǒng)。3、什么叫嵌入式處理器?嵌入式處理器分為哪幾類?嵌入式處理器是為完成特殊的應(yīng)用而設(shè)計(jì)的特殊目的的處理器。嵌入式微處理器(EmbeddedMicroprocessorUnit,EMPU)嵌入式微控制器(MicrocontrollerUnit,MCU)嵌入式DSP處理器(EmbeddedDigitalSignalProcessor,EDSP)嵌入式片上系統(tǒng)(Syste

2、mOnChip)4、什么是嵌入式操作系統(tǒng)?為何要使用嵌入式操作系統(tǒng)?是一段在嵌入式系統(tǒng)啟動(dòng)后首先執(zhí)行的背景程序,首先,嵌入式實(shí)時(shí)操作系統(tǒng)提高了系統(tǒng)的可靠性。其次,提高了開發(fā)效率,縮短了開發(fā)周期。再次,嵌入式實(shí)時(shí)操作系統(tǒng)充分發(fā)揮了32位CPU的多任務(wù)潛力。第二章1.基礎(chǔ)知識(1)ARM7TDMI中的T、D、M、I的含義是什么? 64位乘法指令(帶M后綴的)、支持片上調(diào)試(帶D后綴的)、高密度16位的Thumb指令機(jī)擴(kuò)展(帶T后綴的)和EmbededICE觀察點(diǎn)硬件(帶I后綴的)(2)ARM7TDMI采用幾級流水線?使用何種存儲器編址方式? 三級流水線(取指譯碼執(zhí)行);使用了馮諾依曼(VonNeu

3、mann)結(jié)構(gòu),指令和數(shù)據(jù)共用一條32位總線。(3)ARM處理器模式和ARM處理器狀態(tài)有何區(qū)別? 處理器模式指的是處理器在執(zhí)行程序時(shí)在不同時(shí)刻所處的不同狀態(tài),處理器狀態(tài)指的是處理器當(dāng)前所執(zhí)行的指令集。(4)分別列舉ARM的處理器模式和狀態(tài)。狀態(tài):ARM狀態(tài)32位,這種狀態(tài)下執(zhí)行的是字方式的ARM指令 Thumb狀態(tài)16位,這種狀態(tài)下執(zhí)行半字方式的Thumb指令模式:用戶模式、快中斷模式、中斷模式、管理模式、中止模式、未定義模式和系統(tǒng)模式。(5)PC和LR分別使用哪個(gè)寄存器? PC使用R15寄存器,LR使用R14寄存器(6)R13寄存器的通用功能是什么? 堆棧(7)CPSR寄存器中哪些位用來定義

4、處理器狀態(tài)? 寄存器CPSR為當(dāng)前程序狀態(tài)寄存器,當(dāng)控制位T置位時(shí),處理器處于Thumb狀態(tài),執(zhí)行Thumb指令,當(dāng)控制位T清零時(shí),處理器處于ARM狀態(tài),執(zhí)行ARM指令(8)描述一下如何禁止IRQ和FIQ中斷? 標(biāo)志位I和F都是終端禁止標(biāo)志位,用來使能或禁止ARM的兩種外部中斷源 當(dāng)控制位I置位時(shí),IRQ中斷被禁止,否則允許IRQ中斷使能 當(dāng)控制位F置位時(shí),F(xiàn)IQ中斷被禁止,否則允許FIQ中斷使能2、存儲器格式 定義R0=0x12345678,假設(shè)使用存儲指令將R0的值存放在0x4000單元中,如果存儲器格式為大端格式,請寫出在執(zhí)行加載指令將存儲器0x4000單元的內(nèi)容取出存放到R2寄存器操作

5、后所得R2的值,如果存儲器格式改為小端格式,所得的R2值又為多少?低地址0x4000單元的字節(jié)內(nèi)容分別是多少? 大端格式時(shí)R2的值為0x12345678,0x4000單元的內(nèi)容為0x78563412,小端格式時(shí)R2的值0x12345678,0x4000單元的內(nèi)容為0x123456783、處理器異常請描述一下ARM7TDMI產(chǎn)生異常的條件是什么?各種異常會(huì)使處理器進(jìn)入那種模式?進(jìn)入異常時(shí)內(nèi)核有何操作?各種異常的返回指令又是什么? 當(dāng)一個(gè)異常導(dǎo)致模式切換時(shí),內(nèi)核自動(dòng)地做如下處理:將異常處理程序的返回地址PC-4保存到相應(yīng)異常模式下的LR;將CPSR的當(dāng)前值保存到相應(yīng)異常模式下的SPSR;設(shè)置CPS

6、R為相應(yīng)的異常模式; 設(shè)置PC為相應(yīng)異常處理程序的中斷入口向量地址,跳轉(zhuǎn)到相應(yīng)的異常中斷處理程序執(zhí)行。第三章1、基礎(chǔ)知識(1)ARM7TDMI(-S)有幾種尋址方式?LORR1,R0,#0x08屬于哪種尋址方式? 1.寄存器尋址;2.立即尋址;3.寄存器移位尋址;4.寄存器間接尋址;5.基址尋址;6.多寄存器尋址;7.堆棧尋址;8.塊拷貝尋址;9.相對尋址;LORR1,R0,#0x08屬于基址尋址。(2)ARM指令的條件碼有多少個(gè)?默認(rèn)條件碼是什么? 16條,默認(rèn)條件碼是AL。(3)ARM指令中第二個(gè)操作數(shù)有哪幾種形式?舉例5個(gè)8位圖立即數(shù)。 (1)立即數(shù);(2)寄存器;(3)寄存器及移位常數(shù)

7、;0x3FC(0xFF2)、0、0xF0000000(0xF024)、200(0xC8)、0xF0000001(0x1F28)。(4)LDR/STR指令的偏移形式有哪4種?LDRB和LDRSB有何區(qū)別? (1)零偏移;(2)前索引偏移;(3)程序相對偏移;(4)后索引偏移。LDRB就是讀出指定地址的數(shù)據(jù)并存入指定寄存器,LDRSB讀出指定地址的數(shù)據(jù),并高24位用符號位擴(kuò)展,再存入指定寄存器。(5)請指出MOV指令與LDR加載指令的區(qū)別及用途。 MOV指令的源操作數(shù)是常數(shù)或(帶偏移量的)寄存器,用于寄存器之間的數(shù)據(jù)傳送 LDR 指令的源操作數(shù)是地址,用于存儲器到寄存器的數(shù)據(jù)傳送。(6)CMP指令

8、的操作是什么?寫一個(gè)程序,判斷R1的值是否大于0x30,是則將R1減去0x30。 CMP指令將寄存器Rn的值減去operand2的值,根據(jù)操作的結(jié)果更新CPSR中的相應(yīng)條件標(biāo)志位,以便后面的指令根據(jù)相應(yīng)的條件標(biāo)志來判斷是否執(zhí)行。 CMPcond Rn,operand2 CMPR1,0x30 ;將R1與常數(shù)0x30比較 LDRLE PC,LR 如果小于或等于0x30,則程序返回 SUBHIR1,R1,#0x30; 大于0x30,則將R1減去0x30,結(jié)果存回R1(7)調(diào)用子程序是用B還是用BL指令?請寫出返回子程序的指令? BL指令用于子程序調(diào)用。 MOVPC,R14 或 BX LR(8)請指出

9、LDR偽指令的用法。指令格式與LDR加載指令的區(qū)別是什么? LDR偽指令用于加載32位的立即數(shù)或一個(gè)地址值到指定寄存器。它還常用于加載芯片外圍功能部件的寄存器地址(32位立即數(shù)),實(shí)現(xiàn)各種控制操作,與ARM指令的LDR相比,偽指令的LDR參數(shù)有=號。(9)ARM狀態(tài)與Thumb狀態(tài)的切換指令是什么?請舉例說明。 BX指令,從ARM狀態(tài)切換到Thumb狀態(tài)CODE32LDR R0,=Lable+1BX R0CODE16Lable MOV R1,#12;從Thumb狀態(tài)切換到ARM狀態(tài)CODE16LDR R0,=LableBX R0CODE32Lable MOV R1,#10(10)Thumb狀態(tài)

10、與ARM狀態(tài)的寄存器有區(qū)別嗎?Thumb指令對哪些寄存器的訪問受到一定限制? Thumb狀態(tài)下不能更新CPSR中的ALU狀態(tài)標(biāo)志。,Thumb指令對R8R15寄存器訪問受限。(11)Thumb指令集的堆棧入棧、出棧指令是哪兩條? PUSHPOP(12)Thumb指令集的BL指令轉(zhuǎn)換范圍為何能達(dá)到4MB?其指令編碼是怎樣的? Thumb采用兩條16位指令組合成22位半字偏移(符號擴(kuò)展為32位),使指令轉(zhuǎn)移范圍為4MB。2有符號和無符號加法下面給出A和B的值,您可先手動(dòng)計(jì)算A+B,并預(yù)測N、Z、V和C標(biāo)志位的值。然后修改程序清單4.1中R0、R1的值,將這兩個(gè)值裝載到這兩個(gè)寄存器中(使用LDR偽指

11、令,如LDRR0,=0xFFFF0000),使其執(zhí)行兩個(gè)寄存器的加法操作。調(diào)試程序,每執(zhí)行一次加法操作就將標(biāo)志位的狀態(tài)記錄下來,并將所得結(jié)果與您預(yù)先計(jì)算得出的結(jié)果相比較。如果兩個(gè)操作數(shù)看作是有符號數(shù),如何解釋所得標(biāo)志位的狀態(tài)?同樣,如果這兩個(gè)操作數(shù)看作是無符數(shù),所得標(biāo)志位又當(dāng)如何理解? 0xFFFF000F 0x7FFFFFFF 67654321(A) +0x0000FFF1+0x02345678+23110000(B)結(jié)果: (0x00000000) (0x82345677)(0x0568F421)NZCV: 0110 1001 0000 1如果兩個(gè)操作數(shù)是有符號的,A負(fù)B正,和為0,沒有溢

12、出,所以V=0, 如果兩個(gè)操作數(shù)是無符號數(shù),和為0,有進(jìn)位,所以C=1 2如果兩個(gè)操作數(shù)是有符號數(shù),A正B正,和是負(fù)數(shù),有溢出,所以V=1,如果兩個(gè)操作數(shù)是無符號數(shù),沒有進(jìn)位,所以C=0 3如果兩個(gè)操作數(shù)是有符號數(shù),A正B正,和是正數(shù),沒有溢出,所以V=0,如果兩個(gè)操作數(shù)是無符號數(shù),沒有進(jìn)位,所以C=03數(shù)據(jù)訪問把下面的C代碼轉(zhuǎn)換成匯編代碼。數(shù)組a和b分別存放在以0x4000和0x5000為起始地址的存儲區(qū)內(nèi),類型為long(即32位)。把編寫的匯編語言進(jìn)行編譯連接,并進(jìn)行調(diào)試。for(i=0;i8;i+)ai=b7-i;第四章1、基礎(chǔ)知識:(1)LPC2114可使用的外部晶振頻率范圍是多少(

13、使用/不使用PLL功能時(shí))? 晶振頻率范圍:130MHz,若使用PLL或ISP功能為:1025MHz。(2)描述一下LPC2210的PO.14、P1.20、P1.26、BOOT1和BOOT0引腳在芯片復(fù)位時(shí)分別有什么作用?并簡單說明LPC2000系列ARM7微控制器的復(fù)位處理流程。 P0.14的低電平強(qiáng)制片內(nèi)引導(dǎo)裝載程序復(fù)位后控制器件的操作,即進(jìn)入ISP狀態(tài)。 P1.20的低電平使P1.25P1.16復(fù)位后用作跟蹤端口。 P1.26的低電平使P1.31P1.26復(fù)位后用作一個(gè)調(diào)試端口。 當(dāng)RESET為低時(shí),BOOT0與BOOT1一同控制引導(dǎo)和內(nèi)部操作。引腳的內(nèi)部上拉確保了引腳未連接時(shí)呈現(xiàn)高電平

14、。外部復(fù)位輸入:當(dāng)該引腳為低電平時(shí),器件復(fù)位,I/O口和外圍功能進(jìn)入默認(rèn)狀態(tài),處理器從地址0開始執(zhí)行程序。復(fù)位信號是具有遲滯作用的TTL電平。(3)LPC2000系列ARM7微控制器對向量表有何要求(向量表中的保留字)? 向量表所有數(shù)據(jù)32位累加和為零(0x000000000x0000001C的8個(gè)字的機(jī)器碼累加),才能脫機(jī)運(yùn)行用戶程序,這是LPC2114/2124/2212/2214的特性。(4)如何啟動(dòng)LPC2000系列ARM7微控制器的ISP功能?相關(guān)電路應(yīng)該如何設(shè)計(jì)? 有兩種情況可以使芯片進(jìn)入ISP狀態(tài)(1)將芯片的P0.14引腳拉低后,復(fù)位芯片,可進(jìn)入ISP狀態(tài)(2)在芯片內(nèi)部無有效

15、用戶代碼時(shí),Boot Block自動(dòng)進(jìn)入ISP狀態(tài)。 如果用戶需要使用ISP功能,則可以設(shè)計(jì)一個(gè)跳線將P0.14接到地,若需要進(jìn)入,將此跳線短接即可,想要脫機(jī)運(yùn)行程序,將此跳線斷開即可。(5)LPC2000系列ARM7微控制器片內(nèi)Flash是多位寬度的接口?它是通過哪個(gè)功能模塊來提高Flash的訪問速度?128位,通過存儲器加速模塊(MAM)來提高Flash的訪問速度(6)若LPC2210的BANK0存儲塊使用32位總線,訪問BANK0時(shí),地址線A1、A0是否有效?EMC模塊中的BLSOBLS4具有什么功能?無效,(如果存儲器組配置成16位寬,則不需要A0;8位寬的存儲器組需要使用A0。);字

16、節(jié)定位選擇信號。(7)LPC2000系列ARM7微控制器具有引腳功能復(fù)用特性,那么如何設(shè)置某個(gè)引腳為指定功能?通過引腳功能選擇寄存器的設(shè)定來設(shè)置某個(gè)引腳為指定功能(8)設(shè)置引腳為GPIO功能時(shí),如何控制某個(gè)引腳單獨(dú)輸入/輸出?當(dāng)前要知道某個(gè)引腳當(dāng)前的輸出狀態(tài)時(shí),是讀取IOPIN寄存器還是讀取IOSET寄存器?GPIO方向寄存器,IOPIN。(9)P0.2和P0.3口是I2C接口,當(dāng)設(shè)置它們?yōu)镚PIO時(shí),是否需要外接上拉電阻才能輸出高電平?具有總線功能的引腳為開漏輸出,設(shè)置為GPI0時(shí)需要接上拉電阻才能輸出高電平或以引腳狀態(tài)輸入(10)使用SPI主模式時(shí),SSEL引腳是否可以作為GPIO?若不能

17、,SSEL引腳應(yīng)如何處理?不能用作GPIO,SSEL應(yīng)設(shè)這高電平,處于末激活狀態(tài)。(11)LPC2114具有幾個(gè)UART是符合什么標(biāo)準(zhǔn)?哪一個(gè)UART可用作ISP通信?哪一個(gè)UART具有MODEM接口?UART0,UART1;UART0用于ISP通信,UART1具有MODEM接口。(12)LPC2114具有幾個(gè)32位定時(shí)器?PWM定時(shí)器是否可以作通用定時(shí)器使用?兩個(gè)32位定時(shí)器,PWM定時(shí)器不能用作通用定時(shí)器使用(13)LPC2000系列ARM7微控制器具有哪兩種低耗模式?如何降低系統(tǒng)的功耗?2個(gè)低功耗模式:空閑和掉電;2、計(jì)算PLL設(shè)置值:假設(shè)有一個(gè)基于LPC2114的系統(tǒng),所使用的晶振為1

18、1.0592MHZ石英晶振。請計(jì)算出最大的系統(tǒng)時(shí)鐘(ccls)頻率為多少M(fèi)HZ?此時(shí)PLL的M值和P值各為多少?請列出計(jì)算公式,并編寫設(shè)置PLL的程序段。Focs=11.0592=Fcclk/M 系統(tǒng)LPC2114的最大系統(tǒng)時(shí)鐘頻率為60Hz所以 M = Fcclk/Fosc 約等于5最大的cclk頻率Fcclk=MFosc=5*11.0592=55.296 MHz因?yàn)?156MHzFcco320 MHz所以 P = Fcco /(Fcclk*2)=1.4 2.89因?yàn)閜的值只能去2 、4、8 故 P=2PLLCON = 1;PLLCFG = plldat;PLLFEED = 0xaa;PLL

19、FEED = 0x55;While(PLLSTAT&(110)=0);PLLCON = 3;PLLFEED = 0xaa;PLLFEED = 0x55;M - 1 = 5;P = 2;PLLCFG = 5|(25)return (TRUE);3、存儲器重影射:(1)LPC2210具有(4)種存影射模式。3514(2)當(dāng)程序已固化到片內(nèi)Flash,向量表保存在0x00000000起始處,則MAP1:0的值應(yīng)該為(2)。00011011(3)LPC2000系列APM7微控制器ccq重影射的目標(biāo)起始地址為(),共有()個(gè)字。0x00000000,80x40000000,80x00000000,160

20、x7FFFE000,84、外部中斷喚醒掉電設(shè)計(jì):以下代碼是初始化外部中斷0,用它來喚醒掉電的LPC2114,請?zhí)羁?。PINSEL0=0x00000000;PINSELI=(PINSEL1&0XFFFFFFFC)|0X01;/設(shè)置I/O連接,PO.16設(shè)置為EINTOEXTMODE=0X00;/設(shè)置EINT0為電平觸發(fā)模式EXTPOLAR=0X00;/設(shè)置EINT0為低電平觸發(fā)EXTWAKE=0X01;/允許外部中斷0喚醒掉電的CPUEXTINT=0x0F;/清除外部中斷標(biāo)識第五章1.寫出最小系統(tǒng)的定義,并畫出最小系統(tǒng)原理框圖.單片機(jī)最小系統(tǒng)即單片機(jī)的時(shí)鐘電路和單片機(jī)的復(fù)位電路。2.電源電路設(shè)計(jì)

21、有哪些要點(diǎn)? 必須考慮的因素有:輸出的電壓、電流和功率;輸入的電壓、 電流;安全因素;輸出紋波;電磁兼容和電磁干擾;體制限制;功耗限制;成本限制。3.LPC2000系列時(shí)鐘系統(tǒng)如何設(shè)計(jì)?設(shè)計(jì)電路4.寫出Nand和Nor型Flash的異同點(diǎn)。區(qū)別:兩者工藝不一樣,Nor讀取速度快,成本高,容量不易做大,Nand讀取慢,成本低,容量很容易作大。相同點(diǎn):都是采用FLASH技術(shù)生產(chǎn)功能:Nor適合作為芯片程序存儲的ROM使用,Nand適合作為非易失性數(shù)據(jù)存儲器程序清單4.1寄存器相加;文件名:TESTI.S;功能:實(shí)現(xiàn)兩個(gè)寄存器相加;說明:使用ARMulate軟件仿真調(diào)試AREAExamplel,CO

22、DE,READONLY;聲明代碼段ExamplelENTRY ;標(biāo)識程序入口CODE32;聲明32位ARM指令STARTMOVR0,#0;設(shè)置參數(shù)MOVR1,#10LOOPBLADD_SUB ;調(diào)用子程序ADD_SUBBLOOP;跳轉(zhuǎn)到LOOPADD_SUB ADDS R0,R0,R1 ;R0=R0+R1 MOV PC,LR ;子程序返回 END ;文件結(jié)束 4.2讀取SMI立即數(shù) T_bit EQU 0X20 SWI_Handler STMFD SP!,R0_R3,R12,LR ;現(xiàn)場保護(hù) MRS R0,SPSR ;讀取SPSR STMED SP!,R0 ;保存SPSR TST R0,#T_

23、bit ;測試T標(biāo)志位 LDRNEH R0,LR,#_2 ;若是Thumb指令,讀取指令碼(16位) BICNE R0,R0,,#0xFF00 ;取得Thumb指令的8位立即數(shù) LDREQ R0,LR,#_4 ;若是ARM指令,讀取指令碼(32位) BICEQ R0,R0,#0Xff000000 ;取得ARM指令的24位立即數(shù) LDMFD SP!, R0_R3,R12,PC ;SWI異常中斷返回 4.3使用IRQ中斷 ENABLE_IRQ MRS R0,CPSR BIC R0,R0,#0x80 MSR CPSR_C,R0 MOV PC,LR 4.4禁能IRQ中斷 DISABLE_IRQ MRS R0 CPSR ORR R0,R0,#0x80 MSR CPSR_C,R0 MOV

溫馨提示

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

評論

0/150

提交評論