嵌入式助理工程師硬件試題_第1頁
嵌入式助理工程師硬件試題_第2頁
嵌入式助理工程師硬件試題_第3頁
嵌入式助理工程師硬件試題_第4頁
嵌入式助理工程師硬件試題_第5頁
已閱讀5頁,還剩16頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

嵌入式硬件助理工程師認(rèn)證考試試題題庫選擇題1、以下說法不正確的是(B)。A、任務(wù)可以有類型說明 B、任務(wù)可以返回一個數(shù)值C、任務(wù)可以有形參變量 D、任務(wù)是一個無限循環(huán)2、用圖形點(diǎn)陣的方式顯示一個16*16點(diǎn)陣漢字需要(B)字節(jié)。A、8 B、32C、16 D、643、下列描述不屬于RISC計(jì)算機(jī)的特點(diǎn)的是(C)。A.流水線每周期前進(jìn)一步。B.更多通用寄存器.C.指令長度不固定,執(zhí)行需要多個周期。D.獨(dú)立的Load和Store指令完成數(shù)據(jù)在寄存器和外部存儲器之間的傳輸。4、存儲一個32位數(shù)0x2168465到2000H~2003H四個字節(jié)單元中,若以大端模式存儲,則2000H存儲單元的內(nèi)容為(D)。A、0x21 B、0x68C、0x65 D、0x025、μCOS-II中對關(guān)鍵代碼段由于希望在執(zhí)行的過程中不被中斷干擾,通常采用關(guān)中斷的方式,以下X86匯編代碼正確而且不會改變關(guān)中斷之前的中斷開關(guān)狀態(tài)的是(D)A.先CLI、執(zhí)行關(guān)鍵代碼、再STIB。先STI、執(zhí)行關(guān)鍵代碼、再CLIC.先POPF、CLI、執(zhí)行關(guān)鍵代碼、再PUSHFD。先PUSHF、CLI、執(zhí)行關(guān)鍵代碼、再POPF。6、RS232—C串口通信中,表示邏輯1的電平是(D)。A、0v B、3。3vC、+5v~+15v D、-5v~-15v7、ARM匯編語句“ADDR0,R2,R3,LSL#1"的作用是(A)。A。R0=R2+(R3〈〈1)B。R0=(R2〈〈1)+R3C.R3=R0+(R2<<1)D.(R3〈〈1)=R0+R28、IRQ中斷的入口地址是(C).A、0x00000000 B、0x00000008C、0x00000018 D、0x000000149、S3C2420XI/O口常用的控制器是(D)。(1)端口控制寄存器(GPACON-GPHCON)。(2)端口數(shù)據(jù)寄存器(GPADAT—GPHDAT)。(3)外部中斷控制寄存器(EXTINTN)。(4)以上都是。10、實(shí)時操作系統(tǒng)中,兩個任務(wù)并發(fā)執(zhí)行,一個任務(wù)要等待其合作伙伴發(fā)來信息,或建立某個條件后再向前執(zhí)行,這種制約性合作關(guān)系被成為(A)。A。同步B?;コ釩.調(diào)度D。執(zhí)行11、和PC系統(tǒng)機(jī)相比嵌入式系統(tǒng)不具備以下哪個特點(diǎn)(C)。A、系統(tǒng)內(nèi)核小 B、專用性強(qiáng)C、可執(zhí)行多任務(wù) D、系統(tǒng)精簡12、ADD R0,R1,#3屬于(A)尋址方式。A.立即尋址 B。多寄存器尋址C.寄存器直接尋址 D。相對尋址13、GET偽指令的含義是(A)A.包含一個外部文件 B。定義程序的入口C。定義一個宏 D。聲明一個變量14、存儲一個32位數(shù)0x876165到2000H~2003H四個字節(jié)單元中,若以小端模式存儲,則2000H存儲單元的內(nèi)容為(C)。A、0x00 B、0x87C、0x65 D、0x6115、μCOS—II操作系統(tǒng)不屬于(C)。A、RTOS B、占先式實(shí)時操作系統(tǒng)C、非占先式實(shí)時操作系統(tǒng) D、嵌入式實(shí)時操作系統(tǒng)16、若R1=2000H,(2000H)=0x86,(2008H)=0x39,則執(zhí)行指令LDR R0,[R1,#8]!后R0的值為(D)。A。0x2000 B。0x86C。0x2008 D。0x3917、寄存器R13除了可以做通用寄存器外,還可以做(C).A、程序計(jì)數(shù)器 B、鏈接寄存器C、棧指針寄存器 D、基址寄存器18、FIQ中斷的入口地址是(A)。A、0x0000001C B、0x00000008C、0x00000018 D、0x0000001419、ARM指令集和Thumb指令集分別是(D)位的。A.8位,16位 B。16位,32位C。16位,16位 D。32位,16位20、ARM寄存器組有(D)個寄存器。A、7 B、32C、6 D、3721、若R1=2000H,(2000H)=0x28,(2008H)=0x87,則執(zhí)行指令LDR R0,[R1,#8]!后R0的值為(D)。A。0x2000 B.0x28C。0x2008 D.0x8722、寄存器R15除了可以做通用寄存器外,還可以做(A)A。程序計(jì)數(shù)器 B.鏈接寄存器C。堆棧指針寄存器 D?;芳拇嫫?3、嵌入式系統(tǒng)有硬件和軟件部分構(gòu)成,以下(C)不屬于嵌入式系統(tǒng)軟件。A.系統(tǒng)軟件B.驅(qū)動C。FPGA編程軟件D。嵌入式中間件24、μCOS-II操作系統(tǒng)屬于(B)A、順序執(zhí)行系統(tǒng) B、占先式實(shí)時操作系統(tǒng)C、非占先式實(shí)時操作系統(tǒng) D、分時操作系統(tǒng)25、ARM指令集是(B)位的.A。16 B.32C.8 D。2426、假設(shè)R1=0x31,R2=0x2則執(zhí)行指令A(yù)DD R0,R1,R2LSL#3后,R0的值是(C)A.0x33 B。0x34C.0x39 D.0x3827、寄存器R13除了可以做通用寄存器外,還可以做(C)A、程序計(jì)數(shù)器 B、鏈接寄存器C、棧指針寄存器 D、基址寄存器28、ARM寄存器組有(C)個狀態(tài)寄存器A、7 B、32C、6 D、3729、和PC機(jī)系統(tǒng)相比下列哪個不是嵌入式系統(tǒng)獨(dú)具的特點(diǎn)(C)A、系統(tǒng)內(nèi)核小 B、專用性強(qiáng)C、可執(zhí)行多任務(wù) D、系統(tǒng)精簡30、Unicode編碼與(A)編碼方式兼容。A、ASCII碼 B、GBKC、GB2312 D、區(qū)位碼31、嵌入式系統(tǒng)有硬件和軟件部分構(gòu)成,以下(C)不屬于嵌入式系統(tǒng)軟件.A。系統(tǒng)軟件B。驅(qū)動C。FPGA編程軟件D。嵌入式中間件32、Cache用于存放主存數(shù)據(jù)的部分拷貝,主存單元地址與Cache單元地址之間的轉(zhuǎn)換用(A)完成。A.硬件B。軟件C.用戶D。程序員33、在μC/OS—II系統(tǒng)中,OSTimeTick()函數(shù)只被以下(A)函數(shù)或過程所調(diào)用。A.OSTickISRB。OSShedC.OSCtxSwD。OSIntCtxSw34、每種嵌入式操作系統(tǒng)都有自身的特點(diǎn)以吸引相關(guān)用戶,下列說法錯誤的是(D).A。嵌入式Linux提供了完善的網(wǎng)絡(luò)技術(shù)支持;B。CLinux是專門為沒有MMU的ARM芯片開發(fā)的;C.C/OS-Ⅱ操作系統(tǒng)是一種實(shí)時操作系統(tǒng)(RTOS);D。WinCE提供完全開放的源代碼。35、下列關(guān)于存儲管理單元(MMU)說法錯誤的是(B).A。MMU提供的一個關(guān)鍵服務(wù)是使各個任務(wù)作為各自獨(dú)立的程序在其自己的私有存儲空間中運(yùn)行。B.在帶MMU的操作系統(tǒng)控制下,運(yùn)行的任務(wù)必須知道其他與之無關(guān)的任務(wù)的存儲需求情況,這就簡化了各個任務(wù)的設(shè)計(jì)。C.MMU提供了一些資源以允許使用虛擬存儲器。D.MMU作為轉(zhuǎn)換器,將程序和數(shù)據(jù)的虛擬地址(編譯時的連接地址)轉(zhuǎn)換成實(shí)際的物理地址,即在物理主存中的地址。36、下列CPSR寄存器標(biāo)志位的作用說法錯誤的是(D).A.N:負(fù)數(shù)B.Z:零C.C:進(jìn)位D。V:借位37、S3C2410X處理器為用戶進(jìn)行應(yīng)用設(shè)計(jì)提供了支持多主總線的IIC接口.處理器提供符合IIC協(xié)議的設(shè)備連接的串行連接線為(C)。A。SCL和RTXB。RTX和RCXC。SCL和SDAD。SDA和RCX38、棧和隊(duì)列的共同特點(diǎn)是(C)。A。都是先進(jìn)先出B。B。都是先進(jìn)后出C.只允許在端點(diǎn)處插入和刪除元素D。沒有共同點(diǎn)

39、有如下程序main(){intx=1,a=0,b=0;switch(x){case0:b++;case1:a++;case2:a++;b++;}printf(”a=%d,b=%d\n",a,b);}該程序的輸出結(jié)果是(A)。A.a=2,b=1B。a=1,b=1C。a=1,b=0D。a=2,b=2

40、若已定義的函數(shù)有返回值,則以下關(guān)于該函數(shù)調(diào)用的敘述中錯誤的是(D)。A。函數(shù)調(diào)用可以作為獨(dú)立的語句存在B。函數(shù)調(diào)用可以作為一個函數(shù)的實(shí)參C.函數(shù)調(diào)用可以出現(xiàn)在表達(dá)式中D.函數(shù)調(diào)用可以作為一個函數(shù)的形參41、以下說法正確的是(C).A。C語言程序總是從第一個的函數(shù)開始執(zhí)行B。在C語言程序中,要調(diào)用函數(shù)必須在main()函數(shù)中定義C。C語言程序總是從main()函數(shù)開始執(zhí)行D。C語言程序中的main()函數(shù)必須放在程序的開始部分42、寄存器R15用作(B)。A。棧指針寄存器 B。程序計(jì)數(shù)器C.當(dāng)前程序狀態(tài)寄存器 D?;刂芳拇嫫鱅RQ中斷的優(yōu)先級別是(D)。A.1 B。2C。3 D.4LDRR2,[R3,#128]的尋址方式是(C)。A。寄存器尋址 B。寄存器移位C.變址尋址 D。間接尋址S3C2410有(B)個USB接口。A.1 B。2C.3 D。446、ARM處理器的工作模式有(C)種。A。5B.6C。7D。8填空題:串行通信方式有三中單工通信、雙工通信和半雙工通信.填寫μC/OS—II中任務(wù)創(chuàng)建函數(shù)OSTaskCreate()的四個參數(shù)的含義:OSTaskCreate(MyTask, //(任務(wù)的函數(shù)指針)(void*)s, //(傳給任務(wù)函數(shù)的參數(shù)) &TaskStartStk[TASK_STK_SIZE—1],//(任務(wù)的堆棧指針)0 //(任務(wù)的優(yōu)先級號));。ARM7指令系統(tǒng)采用三級流水線指令,分別包括:取指、譯碼和執(zhí)行。TCP/IP在多個層引入了安全機(jī)制,其中TLS協(xié)議位于(傳輸)層。OSTaskSuspend(self)可把正在運(yùn)行的任務(wù)掛起(或等待),參數(shù)self指任務(wù)自身的優(yōu)先級。用此函數(shù)掛起的任務(wù)可通過OSTaskResume(self)函數(shù)喚醒.下列程序的輸出結(jié)果是(“Hello”)。maim(){charb[]=”Helloyou”;b[5]=0;printf(”%s\n",b);}有數(shù)組定義inta[2][2]={{1},{2,3}};則a[0][1]的值為(0)。在ARM處理器的各種模式中,大多數(shù)應(yīng)用程序運(yùn)行在(用戶)模式,當(dāng)一個高優(yōu)先級中斷產(chǎn)生時會進(jìn)入(快速中斷)模式,在復(fù)位或軟件軟中斷時進(jìn)入(特權(quán))模式.一個嵌入式系統(tǒng)結(jié)構(gòu)有典型的四層組成,包括:硬件層、中間層、軟件層和功能層。一個FAT文件系統(tǒng)卷有四部分組成,包括:保留區(qū) 、FAT區(qū)、根目錄和數(shù)據(jù)區(qū)。事件控制塊ECB中OSEventType表示事件類型,OSEventCnt表示信號量計(jì)數(shù)器(和信號量的值).串行通信方式有三中單工通信、雙工通信和半雙工通信。OSTaskSuspend(self)可把正在運(yùn)行的任務(wù)掛起(或等待),參數(shù)self指任務(wù)自身的優(yōu)先級。用此函數(shù)掛起的任務(wù)可通過OSTaskResume(self)函數(shù)喚醒。如果信號量是用于表示打印機(jī)不忙,那么該信號量的初始值應(yīng)設(shè)為1。若一個優(yōu)先級為48的任務(wù)就緒,則在就緒表中,OSRdyTbl[]的OSRdyTbl[6]的D0置位,變量OSRdyGrp的 D6置位。Socket接口是TCP/IP網(wǎng)絡(luò)的__API______,定義了許多函數(shù)或例程.常用的Socket類型有兩種為_流式(stream)__Socket和_數(shù)據(jù)報(bào)式(datagram)_Socket。其中_流式(stream)__Socket是面向連接的,_數(shù)據(jù)報(bào)式(datagram)_Socket是面向無連接的。調(diào)試程序時調(diào)入的文件最好為Debug版本下編譯生成的。axf文件,該版本的文件包含部分調(diào)試用到的信息。S3C44B0X使用ARM7(或ARM7TDMI) 內(nèi)核,工作頻率為66MHZ.在圖形操作系統(tǒng)中,字符通常有兩種存儲方式:一種是圖形點(diǎn)陣(或點(diǎn)陣)方式;一種是矢量圖形(或矢量圖)方式。在嵌入式開發(fā)系統(tǒng)中使用的都是圖形點(diǎn)陣方式。和信號量用數(shù)值表示不同,郵箱可以使一個任務(wù)向令一個任務(wù)發(fā)送一個指針型變量,該變量包含了特定消息的數(shù)據(jù)結(jié)構(gòu)。S3C44B0提供_兩個__個獨(dú)立的異步串口,都可以運(yùn)行于__中斷__模式或__DMA___模式。16、ARM處理器的兩種工作狀態(tài)為ARM狀態(tài)和Thmub狀態(tài)。17、USB家庭中有三位成員,即主機(jī)(或host)、設(shè)備(或device)、集線器(或Hub).ARM存儲器有兩種存儲模式,即大端模式和小端模式。假設(shè)Y=0x46134存儲在2000H~2003H四個內(nèi)存單元中,若以小端模式存儲,則(2000H)=__0x34__、(2001H)=0x61_、(2002H)=_0x04_、(2003H)=__0x00__。信號量有兩種類型,分別為:二進(jìn)制(或binary)型和記數(shù)器(或counter)型。影響流水線性能的因素有(互鎖)和(跳轉(zhuǎn)指令)。某數(shù)碼相機(jī)內(nèi)置128MB的存儲空間,拍攝分辨率設(shè)定為1600×1200像素,顏色為24為,若不采用壓縮技術(shù),使用內(nèi)部存儲器最多可以存儲(23)張照片,該相機(jī)最多支持(224)種色彩。對于8位二進(jìn)制數(shù),-7的反碼和補(bǔ)碼分別是(11111000)和(11111001)。在CPU的狀態(tài)寄存器中,如果符號標(biāo)志為“1",表示運(yùn)算結(jié)果為(負(fù));如果進(jìn)位標(biāo)識為“0”,表示(無進(jìn)位或借位)。判斷題程序運(yùn)行過程中的資源可以是顯示器、鍵盤,但不可以是一個數(shù)組或變量(X)21、在μCOS-II操作系統(tǒng)中,已知Task1的優(yōu)先級為12,Task2的優(yōu)先級為26。假如在Task2運(yùn)行過程中發(fā)生鍵盤中斷,在執(zhí)行中斷服務(wù)程序時Task1進(jìn)入就緒狀態(tài),則中斷返回時Task1得到CPU的使用權(quán)。(√)若定義任務(wù)task1的優(yōu)先級為12,則不能再定義其他任務(wù)的優(yōu)先級也為12(√)任務(wù)創(chuàng)建后即開始調(diào)度(X)液晶工作在文本模式下時,既可以顯示英文字符也可以顯示漢字(X)處于就緒狀態(tài)的任務(wù)只能切換到運(yùn)行狀態(tài)(X)等待消息函數(shù)WaitMessage(0)中的“0”表示此函數(shù)的超時等待時間為0秒(X)若OSTaskSuspend(prio)函數(shù)把正在延時的任務(wù)掛起,則調(diào)用一次對應(yīng)的喚醒函數(shù)即可使該任務(wù)切換到就緒狀態(tài).(X)調(diào)試程序時,需要停止程序運(yùn)行后才可查看變量內(nèi)容(√ )μCOS—II操作系統(tǒng)中移植成功后即可使用文件系統(tǒng)(X)將模擬信號轉(zhuǎn)換成數(shù)字信號的電路是DA轉(zhuǎn)換器。(×)IIC是同步串行數(shù)據(jù)總線,。(√)S3C2410的處理器對內(nèi)存的訪問只能通過Load/Store指令來實(shí)現(xiàn)。(√)NandFlash比NorFlash成本高,可靠性差。(×)C語言程序可以嵌套加入?yún)R編程序模塊。(√)運(yùn)算放大器的輸出電壓范圍一般大于電源電壓的范圍。(×)由于CPU內(nèi)部寄存器的訪問速度較高,根據(jù)ATPC標(biāo)準(zhǔn),應(yīng)盡可能使函數(shù)的參數(shù)控制在4個以下。(√)ARM處理器結(jié)構(gòu)體系中具有T變種處理器核可以工作在ARM狀態(tài)和Thumb狀態(tài)。(√)簡答題1、ARM微處理器的編程模型是指ARM微處理器的基本工作原理和一些與程序設(shè)計(jì)相關(guān)的基本技術(shù)細(xì)節(jié),ARM編程模型主要有哪五個方面?主要是指什么內(nèi)容?答案要點(diǎn):ARM微處理器的工作狀態(tài):ARM狀態(tài)、Thumb狀態(tài)ARM體系結(jié)構(gòu)的存儲器格式:大端格式、小端格式ARM微處理器的工作模式:7種運(yùn)行模式ARM體系結(jié)構(gòu)的寄存器組織:37個32位寄存器,其中31個為通用寄存器,6個為狀態(tài)寄存器,哪些寄存器是可編程訪問的,取決微處理器的工作狀態(tài)及具體的運(yùn)行模式.ARM微處理器的異常狀態(tài):7種異常畫圖說明μCOS—II操作系統(tǒng)各狀態(tài)之間是如何切換的,并舉出至少一個相應(yīng)的切換條件或函數(shù).答:帶箭頭各任務(wù)間切換圖正確,得1分;切換條件每三個得1分,共3分,每種切換能舉出一個正確條件或函數(shù)即可。3、什么是μCOS—II操作系統(tǒng)的時鐘節(jié)拍?答:時鐘節(jié)拍是特定的周期性中斷。(1分)這個中斷可以看作是系統(tǒng)心臟的脈動。中斷間的時間間隔取決于不同的應(yīng)用,一般在10ms~200ms之間。(1分)時鐘的節(jié)拍式中斷使得內(nèi)核可以將任務(wù)延時若干個整數(shù)時鐘節(jié)拍,以及當(dāng)任務(wù)等待事件發(fā)生時,提供等待超時的依據(jù)。(1分)時鐘節(jié)拍率越快,系統(tǒng)的額外開銷就越大。(1分)4、ARM處理器有幾種工作模式?并做說明每種工作模式的含義。答:ARM處理器有7種工作模式:用戶模式(usr)—正常程序執(zhí)行的模式 0。5分快速中斷模式(fiq)—FIQ異常響應(yīng)時進(jìn)入此模式 0。5分中斷模式(irq)-IRQ異常響應(yīng)時進(jìn)入此模式 0.5分管理員模式(svc)-系統(tǒng)復(fù)位和軟件中斷響應(yīng)時進(jìn)入此模式 0。5分中止模式(abt)—用于虛擬存儲及存儲保護(hù) 0.5分系統(tǒng)模式(sys)—與用戶類似,但有直接切換到其它模式等特權(quán) 0。5分未定義模式(und)—未定義指令異常響應(yīng)時進(jìn)入此模式 0。5分除了用戶模式外,其他模式均可視為特權(quán)模式 0。5分5、什么是操作系統(tǒng)?操作系統(tǒng)在“硬件、操作系統(tǒng)、應(yīng)用程序、硬件驅(qū)動”四者中,處于哪兩層之間??答:操作系統(tǒng)是計(jì)算機(jī)中最基本的程序。操作系統(tǒng)負(fù)責(zé)計(jì)算機(jī)系統(tǒng)中全部軟硬件資源的分配與回收、控制與協(xié)調(diào)等并發(fā)的活動;操作系統(tǒng)提供用戶接口,使用戶獲得良好的工作環(huán)境;操作系統(tǒng)為用戶擴(kuò)展新的系統(tǒng)提供軟件平臺.(3分)操作系統(tǒng)處于應(yīng)用程序和硬件驅(qū)動之間。(1分)6、什么是嵌入式系統(tǒng)?分別從狹義和廣義兩方面說明.答:從廣義上說,凡是與產(chǎn)品結(jié)合在一起具有嵌入式特點(diǎn)的控制系統(tǒng)都可以叫嵌入式系統(tǒng)如電子表、超聲波測距儀等職能儀表,常見CPU為MCS51系列芯片。(2分) 從狹義上說,嵌入式系統(tǒng)是指而嵌入式系統(tǒng)一般指在開發(fā)時移植了操作系統(tǒng),功能較復(fù)雜的便攜式電子設(shè)備,如手機(jī)、掌上電腦、MP4等,常見CPU為ARM、DSP、SOC等。(2分)7、簡述任務(wù)切換的過程。答:當(dāng)多任務(wù)內(nèi)核決定運(yùn)行另外的任務(wù)時,它保存正在運(yùn)行任務(wù)的當(dāng)前狀態(tài),即CPU寄存器中的全部內(nèi)容。(1分)這些內(nèi)容保存在任務(wù)的當(dāng)前狀態(tài)保存區(qū),也就是任務(wù)自己的堆棧中。(1分)入棧工作完成以后,就把下一個將要運(yùn)行的任務(wù)的當(dāng)前狀態(tài)從任務(wù)的堆棧中重新裝入CPU的寄存器,并開始下一個任務(wù)的運(yùn)行。這個過程就稱為任務(wù)切換.(1分)做任務(wù)切換所需要的時間取決于CPU有多少寄存器要入棧。(1分)8、S3C44B0的存儲系統(tǒng)中,0xc000000和0xc080000的含義是什么?它們之間的512kbyte空間做什么用?答:0xC000000是SDRAM的起始地址,系統(tǒng)的程序存儲空間從0xC080000開始。(2分)512Kbyte的空間劃分出來,作為系統(tǒng)的LCD顯示緩沖區(qū)使用(更新其中的數(shù)據(jù),就可以更新LCD的顯示)。(2分)9、簡述你對嵌入式和嵌入式系統(tǒng)的理解?答:凡是使用了CPU的便攜式電子設(shè)備都可以叫嵌入式,(如電子表、超聲波測距儀等職能儀表,常見CPU為MCS51系列芯片)(2分).而嵌入式系統(tǒng)一般指在開發(fā)時移植了操作系統(tǒng),功能較復(fù)雜的便攜式電子設(shè)備,(如手機(jī)、掌上電腦、MP4等,常見CPU為ARM、DSP、SOC等).(2分)10、嵌入式設(shè)計(jì)流程?答:1)系統(tǒng)需求分析 2)體系結(jié)構(gòu)設(shè)計(jì) 3)硬件/軟件協(xié)同設(shè)計(jì) 4)系統(tǒng)集成 5)系統(tǒng)測試(每點(diǎn)約1分,酌情錯2點(diǎn),扣1分)11、什么是代碼臨界區(qū),進(jìn)、出代碼臨界應(yīng)分別做什么?答:代碼的臨界區(qū)也稱為臨界區(qū),指處理時不可分割的代碼.一旦這部分代碼開始執(zhí)行,則不允許任何中斷打入。(2分) 為確保代碼臨界區(qū)的執(zhí)行,在進(jìn)入臨界區(qū)之前要關(guān)中斷,而臨界區(qū)代碼執(zhí)行完以后要立即開中斷(在任務(wù)切換時,地址、指令、數(shù)據(jù)等寄存器堆棧保護(hù))。(2分)12、簡要敘述嵌入式系統(tǒng)開發(fā)流程。參考答案及要點(diǎn):建立開發(fā)環(huán)境;配置開發(fā)主機(jī);建立引導(dǎo)裝載程序BOOTLOADER;下載已經(jīng)移植好的操作系統(tǒng);建立根文件系統(tǒng);開發(fā)應(yīng)用程序。13、試簡述常用的三極管放大電路和技術(shù)特點(diǎn)。答:共射電路:具有較大的電壓放大倍數(shù)和電流放大倍數(shù),輸入電阻和輸出電阻適中.共集電路:輸入電阻大,輸出電阻小,電壓放大倍數(shù)小于1。共基電路:輸入電阻小,頻率特性好。14、嵌入式系統(tǒng)的軟件層次結(jié)構(gòu)包括哪些部分?簡單說明各部分的功能與作用.答:驅(qū)動層程序、操作系統(tǒng)、應(yīng)用程序接口和應(yīng)用程序.驅(qū)動層程序:為上層軟件提供設(shè)備的操作接口。操作系統(tǒng):進(jìn)程管理、進(jìn)程間通信、內(nèi)存管理等.應(yīng)用程序接口:復(fù)雜函數(shù)和數(shù)據(jù)結(jié)構(gòu)的集合,簡化應(yīng)用程序的開發(fā).應(yīng)用程序:實(shí)現(xiàn)用戶功能。閱讀程序題1、根據(jù)以下程序回答問題。structNODE{intk;structNODE*link;};

main(){structNODEm[5],*p=m,*q=m+4;inti=0;while(p!=q){p-〉k=++i;p++;q—〉k=i++;q-—;}

q-〉k=i;for(i=0;i〈5;i++)printf("%d”,m[i]。k);printf(”\n");}(1)i、p、structNODE和m的分別占據(jù)多少字節(jié)的內(nèi)存空間?(4分)(2)p和q指針初始指向的地址相差多少字節(jié)?(4分)(3)程序運(yùn)行后的輸出結(jié)果是什么?(4分)參考答案及要點(diǎn):(1)i、p、structNODE和m的分別占據(jù)4字節(jié)、4字節(jié)、8字節(jié)和40字節(jié)的內(nèi)存空間.(2)p和q指針初始指向的地址相差32字節(jié)(3)程序運(yùn)行后的輸出結(jié)果13431.2、在分辨率為320x240的LCD上,執(zhí)行完下列程序后,畫出在LCD上顯示的圖形并在劃橫線處添加注釋。voidMain_Task(void*Id){ intoldx,oldy; PDCpdc; ClearScreen(); pdc=CreateDC(); SetDrawOrg(pdc,LCDWIDTH/2,LCDHEIGHT/2,&oldx,&oldy); Circle(pdc,0,0,50);//_________________________ MoveTo(pdc,-50,—50);//_________________________ LineTo(pdc,50,-50);//_________________________ ArcTo(pdc,80,-20,TRUE,30);//_________________________LineTo(pdc,80,20);ArcTo(pdc,50,50,TRUE,30);LineTo(pdc,—50,50);ArcTo(pdc,-80,20,TRUE,30);LineTo(pdc,-80,—20);ArcTo(pdc,-50,—50,TRUE,30); OSTimeDly(3000); }答: 320x240的LCD以原點(diǎn)為圓心,50為半徑畫圓 (0.5分 畫筆移動到坐標(biāo)(-50,-50)處 (0。5分) 從坐標(biāo)(-50,—50)到(50,-50)畫直線 (0。5分) 從當(dāng)前坐標(biāo)開始以30為半徑順時針畫圓弧到坐標(biāo)(80,-20) (0。5分)3、在劃線處添加代碼,完成下面的程序,實(shí)現(xiàn)在task1中計(jì)算1到10的平均值,完成后向task2發(fā)送信號量。Task2無限期等待信號量,等到后在LCD上顯示收到平均值。 ___OS_EVENT*math_Sem;__;VoidTask1() { inti,average=0,sum=0; __math_Sem=OSSemCreate(0);__ for(i=1;i〈=10;i++) {sum=sum+i;} average=sum/10; _OSSemPost(math_Sem);__;for(;;){OSTimeDly(100);} }voidtask2(){ __U8err;___;for(;;){ _OSSemPend(math_Sem,0,&err);_ ;LCD_printf("wegettheaverage!\n"); ____OSTimeDly(100);__ ;}}4、在劃橫線處添加代碼,完成下面創(chuàng)建一個任務(wù)的過程,要求優(yōu)先級為36,任務(wù)棧大小為256。OS_STKtask1_Stack[256]={0,};voidtask1(void*Id);#definetask1_Prio36OSInit();//操作系統(tǒng)初始化OSTaskCreate(task1,(void*)0,(OS_STK*)&task1_Stack[256-1],task1_Prio);OSStart() ;//操作系統(tǒng)任務(wù)調(diào)度開始5、ARM指令集的每一條指令都是4字節(jié)的,下面是一段中斷入口程序,在空白處填上該中斷的類型和中斷向量。ENTRYB Startup ; 復(fù)位中斷,0x001分B UndefHandle ; 未定義指令中斷,0x04 1分B SWIHandle ; 軟中斷,0x081分B PAbtHandle ; 預(yù)取中止,0x0C1分B DAbtHandle ; 數(shù)據(jù)中止,0x00000010 NOP; ;系統(tǒng)保存未用,0x00000014B IRQHandle ; IRQ中斷,0x181分B FIQHandle ;快速中斷,0x1C1分6、下面的程序描述了鍵盤消息的創(chuàng)建和使用過程,認(rèn)真閱讀并在劃橫線的地方添加適當(dāng)?shù)淖⑨尅oidKey_Scan_Task(void*Id)//按鍵掃描任務(wù){(diào) U32key;INT8Uerr;POSMSGpmsg;for(;;){OSMboxPend(Key_MailBox,0,&err);//__請求鍵盤郵箱 1分key=Zlg7289_ReadKey();pmsg=OSCreateMessage(NULL,OSM_KEY,KeyBoard_Map[key],0); ;//__請求到表示有鍵按下的郵箱1分if(pmsg)SendMessage(pmsg);//_創(chuàng)建消息 1分}}voidMain_Task(void*Id)//接收鍵盤消息的任務(wù){(diào) POSMSGpMsg=0;//創(chuàng)建消息結(jié)構(gòu) for(;;){//死循環(huán)pMsg=WaitMessage(0);//___發(fā)送消息 1分switch(pMsg—〉Message){//___判斷消息的類型1分caseOSM_KEY://鍵盤消息LCD_printf(”Tohavekeyon!\n");//向液晶屏輸出break;}DeleteMessage(pMsg);//___刪除消息1分}}7、三個任務(wù)代碼如下,其中task1、task2、task3的優(yōu)先級分別為:29、36,48。分析LCD上的顯示結(jié)果。Voidtask1(){ ClearScreen();LCD_Printf(“task1isrunning!\n");OSTimeDly(500);}Voidtask2(){ ClearScreen();LCD_Printf(“thisistask2!\n”);OSTimeDly(350);}Voidtask3(){ ClearScreen();LCD_Printf(“runningtask3!\n”);OSTimeDly(200);}在LCD上的顯示結(jié)果為:第一次:task1isrunning! (1分) 第二次:thisistask2! (1分) 第三次:runningtask3! (1分) 第四次:runningtask3! (1分) 第五次:thisistask2! (1分)第六次:task1isrunning! (1分)8、C語言程序#include”.。\ucos—ii\includes。h"/*uC/OSinterface*/#include”。。\ucos-ii\add\osaddition.h”#include"。.\inc\drv。h"#include〈string。h〉OS_STKMain_Stack[STACKSIZE*8]={0,};//1)定義并初始化堆棧(數(shù)組)voidMain_Task(void*Id);#defineMain_Task_Prio12//2)定義任務(wù)優(yōu)先級OS_EVENT*Nand_Rw_Sem;//3)定義信號量OS_EVENT*Uart_Rw_Sem;intmain(void){ ARMTargetInit();//開發(fā)板初始化 OSInit();//4)操作系統(tǒng)初始化 uHALr_ResetMMU();//復(fù)位MMU LCD_Init();//初始化LCD模塊 LCD_printf("LCDinitializationisOK\n");//向液晶屏輸出數(shù)據(jù) LCD_printf(”320x240TextMode\n”); initOSGUI();//初始化圖形界面 LoadFont();//調(diào)Unicode字庫 LoadConfigSys();//使用config。sys文件配置系統(tǒng)設(shè)置 LCD_printf(”CreatetaskonuCOS—II。。。\n”); OSTaskCreate(Main_Task,(void*)0,(OS_STK*)&Main_Stack[STACKSIZE*8—1],Main_Task_Prio);//5)創(chuàng)建系統(tǒng)任務(wù) OSAddTask_Init();//創(chuàng)建系統(tǒng)附加任務(wù) LCD_printf(”StartinguCOS-II。。.\n"); LCD_printf("Enteringgraphmode。。。\n"); LCD_ChangeMode(DspGraMode);//變LCD顯示模式為文本模式 InitRtc();//初始化系統(tǒng)時鐘Nand_Rw_Sem=OSSemCreate(1);//6)創(chuàng)建信號量,初值為1,滿足互斥條件 OSStart();//7)操作系統(tǒng)任務(wù)調(diào)度開始return0;}9、閱讀下列與看門狗有關(guān)的寄存器描述,解釋每一行代碼的功能??撮T狗定時器控制寄存器(WTCON)寄存器地址讀/寫描述初始值WTCON0x53000000讀/寫看門狗定控制寄存器0x8021WTCON的標(biāo)識位WTCONBit描述初始值PrescalerValue[15:8]預(yù)裝比例值,有效范圍值為0~2550x80Reserved[7:6]保留00WatchdogTimer[5]使能和禁止看門狗定時器0=禁止看門狗定時器1=使能看門狗定時器0ClockSelect[4:3]這兩位決定時鐘分頻因素00:1/1601:1/3210:1/6411:1/12800InterruptGeneration[2]中斷的禁止和使能0=禁止中斷產(chǎn)生1=使能中斷產(chǎn)生0Reserved[1]保留0ResetEnable/Disable[0]禁止很使能看門狗復(fù)位信號的輸出1=看門狗復(fù)位信號使能0=看門狗復(fù)位信號禁止1看門狗定時器數(shù)據(jù)寄存器(WTDAT)寄存器地址讀/寫描述初始值WTDAT0x53000004讀/寫看門狗數(shù)據(jù)寄存器0x8000看門狗計(jì)數(shù)寄存器(WTCNT)寄存器地址讀/寫描述初始值WTCNT0x53000008讀/寫看門狗計(jì)數(shù)器當(dāng)前值0x8000#definerWTCON(*(volatileunsigned*)0x53000000)//第1行#definerWTDAT(*(volatileunsigned*)0x53000004)//第2行#definerWTCNT(*(volatileunsigned*)0x53000008)//第3行voidwatchdog_test(void){ rWTCON=((PCLK/1000000-1)<<8)|(3<〈3)|(1〈〈2);//第4行 rWTDAT=7812; //第5行 rWTCNT=7812;//第6行 rWTCON|=(1〈<5); //第7行}參考答案及要點(diǎn):第1-3行:定義看門狗控制寄存器、數(shù)據(jù)寄存器和計(jì)數(shù)寄存器為rWTCON、rWTDAT和rWTCNT。(2分)第4行:設(shè)置看門狗的預(yù)裝比例值為1000000,分頻因素為1/128,并使能中斷。(6分)第5—6行:對數(shù)據(jù)寄存器和計(jì)數(shù)寄存器賦值為7812。(2分)第7行:啟動看門狗。(2分)10、下面程序是多任務(wù)中信號量的典型應(yīng)用,閱讀程序,分別畫出各個任務(wù)的程序流程圖,并說明程序要實(shí)現(xiàn)的功能什么。OS_EVENT*math_Sem; int source,dest; math_Sem=OSSemCreate(0); voidtask1() { for(;;){source=8;OSSemPost(math_Sem); }}voidtask2() { U8err;for(;;){OSSemPend(math_Sem,0,&err); dest=source; source=0; }}答:功能:編寫兩個任務(wù)task1和task2實(shí)現(xiàn)要求的功能。設(shè)task2為較高的優(yōu)先級,task1中給一個全局變量source賦值;task2中讀取這個變量的值到另一個全局變量dest中,然后清零source變量.要求先賦值后讀取.(3分) 流程圖:(3分)Task1的流程圖task2的流程圖應(yīng)用實(shí)踐題1、利用串口1實(shí)現(xiàn)兩個開發(fā)平臺間的雙機(jī)通信.要求1)畫出雙機(jī)通信的串口連接圖。2)要實(shí)現(xiàn)開發(fā)平臺A發(fā)送某個數(shù),開發(fā)平臺B接收到后加1再回送給開發(fā)平臺A.應(yīng)如何設(shè)計(jì)程序,給出編程思路或畫出程序流程圖。1)(2分)2)編程思路: 開發(fā)平臺A編程思路:1)初始化串口12)給一個變量賦初值,并調(diào)發(fā)送函數(shù)通過串口1發(fā)送3)調(diào)接受函數(shù),通過串口1接收(3分) 開發(fā)平臺B編程思路:1)調(diào)接受函數(shù),通過串口1接收2)接收到得數(shù)據(jù)加13)調(diào)發(fā)送函數(shù),發(fā)送加1后的數(shù)據(jù)(3分)2、編寫程序,實(shí)現(xiàn)利用ARM芯片的I/O端口控制LED顯示。控制如下硬件原理圖中的四個發(fā)光二極管LED1、LED2、LED3、LED4,使它們有規(guī)律地點(diǎn)亮和熄滅,具體順序如下:LED1亮→LED2亮→LED3亮→LED4亮→LED1滅→LED2滅→LED3滅→LED4滅→全亮→全滅,如此反復(fù)。參考答案及要點(diǎn):#include"2410lib.h”voidled_on(void){inti,nOut;nOut=0xF0;rGPFDAT=nOut&0x70;for(i=0;i<100000;i++);rGPFDAT=nOut&0x30;for(i=0;i<100000;i++);rGPFDAT=nOut&0x10;for(i=0;i<100000;i++);rGPFDAT=nOut&0x00;for(i=0;i〈100000;i++);}voidled_off(void){inti,nOut;nOut=0;rGPFDAT=0;for(i=0;i〈100000;i++);rGPFDAT=nOut|0x80;for(i=0;i〈100000;i++);rGPFDAT|=nOut|0x40;for(i=0;i〈100000;i++);rGPFDAT|=nOut|0x20;for(i=0;i<100000;i++);rGPFDAT|=nOut|0x10;for(i=0;i<100000;i++);}voidled_on_off(void){inti;rGPFDAT=0;for(i=0;i<100000;i++);rGPFDAT=0xF0;for(i=0;i<100000;i++);}3、實(shí)現(xiàn)CAN總線通信需要哪兩個芯片?畫出S3C44B0利用CAN總線進(jìn)行通信的硬件連接示意圖。要實(shí)現(xiàn)兩個開發(fā)平臺間通過CAN總線雙機(jī)通信,應(yīng)如何設(shè)計(jì)程序(給出軟件設(shè)計(jì)思路或程序流程圖).答:1)MCP2510和TJA1050。(2分)2)(3分) 3)能正確表示CAN總線的初始化和發(fā)送接收編程思路(3分) 開發(fā)平臺A編程思路:1)初始化MCP25102)啟動can總線收發(fā) 3)通過can口發(fā)送一個字符 開發(fā)平臺B編程思路:1)初始化MCP25102)啟動can總線收發(fā) 3)通過can口接收一個字符4、給出S3C44B0通過驅(qū)動器控制步進(jìn)電機(jī)的硬件連接示意圖;已知步進(jìn)電機(jī)正轉(zhuǎn)時的控制順序?yàn)锳→AB→B→BC→C→CD→D→DA,以列表的形式給出各I/O控制口的值.可以通過哪個宏來設(shè)置I/O控制口的值.答:1)2)高四位I/O控制口的值3)可以通過宏SETEXIOBITMASK(bit,mask)(EXIO。h)來設(shè)置擴(kuò)展I/O口.5、TCP/IP協(xié)議可以分為哪幾層?畫出S3C44B0進(jìn)行網(wǎng)絡(luò)通信的硬件框圖;要實(shí)現(xiàn)基于UDP的網(wǎng)絡(luò)通信,應(yīng)如何設(shè)計(jì)程序,給出編程思路或程序流程圖.1)分為: 物理層數(shù)據(jù)鏈路層(IEEE802.3EthernetMAC)網(wǎng)絡(luò)層(IP、ARP、ICMP、IGMP)傳輸層(TCP、UDP)應(yīng)用層(BSDSockets) 2)3)能正確描述實(shí)現(xiàn)網(wǎng)絡(luò)初始化、創(chuàng)建、綁定、發(fā)送和接收UPD包的過程。編程思路:1)初始化以太網(wǎng)2)創(chuàng)建socket套接字3)綁定socket套接字和本機(jī)Ip4)通過socket發(fā)送數(shù)據(jù)或5)通過socket接收數(shù)據(jù)最后兩步順序可換6、獨(dú)立式鍵盤和矩陣式鍵盤各有什么優(yōu)缺點(diǎn)?畫出矩陣式鍵盤連接示意圖;若采用矩陣式鍵盤,怎樣編程獲得按下的鍵值,給出編程思路或流程圖。1)獨(dú)立式鍵盤占有I/O口較多,但編程簡單;矩陣式鍵盤占有I/O接口較少,編程相對復(fù)雜。 2)3)識別矩陣鍵盤按鍵的方法分為兩步:第一步,識別鍵盤有無鍵被按下;第二步,如果有鍵被按下,識別出具體的按鍵。識別鍵盤有無鍵被按下的方法是:讓所有行線均置為0電平,檢查各列線電平是否有變化,如果有變化,則說明有鍵被按下,如果沒有變化,則說明無鍵被按下。識別具體按鍵的方法是(亦稱掃描法):逐行置零電平,其余各行置為高電平,檢查各列線電平的變化,如果某列電平有高電平變?yōu)榱汶娖?,則可確定此行此列交叉點(diǎn)處的按鍵被按下7、閱讀以下S3C2410部分用戶手冊.求:當(dāng)PCLK或UCLK為40MHz時,串口0的波特率為2400bps,串口1的波特率為115200bps,相應(yīng)的控制寄存器如何設(shè)置.(8分)UART

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論