嵌入式系統設計復習題_第1頁
嵌入式系統設計復習題_第2頁
嵌入式系統設計復習題_第3頁
嵌入式系統設計復習題_第4頁
嵌入式系統設計復習題_第5頁
已閱讀5頁,還剩3頁未讀, 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、嵌入式系統設計復習題1、 根據嵌入式系統的實時性強弱,嵌入式系統是如何分類的?結合具體的應用場合,對它們的特點分別加以描述。實時系統指系統的計算正確性不僅取決于計算的邏輯正確性,還取決于產生結果的時間。如果未滿足系統的時間約束,則認為系統失效。 非實時系統(如PDA),對計算或者外接變換響應的時間沒有確定性的要求。軟實時系統(如消費類產品)軟實時系統就是那些從統計的角度來說,一個任務能夠得到有確保的處理時間,到達系統的事件也能夠在截止期限到來之前得到處理,但違反截止期限并不會帶來致命的錯誤。例如在網絡中僅僅是輕微地降低了系統的吞吐量。硬實時系統(工業實時控制系統) 硬實時系統指系統要有確保的最

2、壞情況下的服務時間,即對于事件的響應時間的截止期限是無論如何都必須得到滿足。例如中高檔汽車中使用的氣囊,晚一秒鐘展開氣囊比沒有氣囊的情況更糟糕。強實時系統, 其系統響應時間在毫秒或微秒級。一般實時系統, 其系統響應時間在幾秒的數量級上,其實時性的要求比強實時系統要差一些。弱實時系統, 其系統響應時間約為數十秒或更長。這種系統的響應時間可能隨系統負載的輕重而變化。2、 結合嵌入式系統的組成結構,詳細描述嵌入式系統開發的具體工作有哪些?在嵌入式硬件和嵌入式軟件之間有一個接口層次,這個接口層為什么層?其具體的開發特點是什么?1)系統定義與需求分析; 2)系統設計方案的初步確立; 3)初步設計方案性價

3、比評估與方案評審論證; 4)完善初步方案、初步方案實施; 5)軟硬件集成測試; 6)系統功能性能測試及可靠性測試。嵌入式系統的組成部分是嵌入式系統硬件平臺、嵌入式操作系統(RTOS)和嵌入式系統應用。 操作系統與硬件的接口嵌入式系統硬件平臺是以嵌入式處理器為核心,由存儲器、I/O單元電路、通信模塊、外部設備等必要的輔助接口組成的。 嵌入式軟件:包括嵌入式操作系統及應用軟件 嵌入式操作系統是嵌入式系統中最基本的軟件,它負責分配、回收,控制和協調全部軟硬件資源的并發活動,并且提供應用程序的運行環境和接口,是應用程序運行的基礎。 嵌入式應用軟件嵌入式應用軟件是服務于某種專用應用領域,基于某一特定的嵌

4、入式硬件平臺,用來達到用戶預期任務的計算機軟件。 由于引入了一個中間層,屏蔽了底層硬件的多樣性,操作系統不再面對具體的硬件環境,而是面對由這個中間層次所代表的、邏輯上的硬件環境,因此,把中間層次叫做硬件抽象層(Hardware Abstraction Layer, HAL)。HAL的引入大大推動了嵌入式實時系統的通用化,從而為嵌入式系統的廣泛應用提供了可能。 板級支持包(Board Support Package,BSP)是現有的大多數商用嵌入式操作系統實現可移植性所采用的一種方案,是硬件抽象層的一種實現。BSP隔離了所支持的嵌入式操作系統與底層硬件平臺之間的相關性,是嵌入式操作系統能夠通用與

5、BPS所支持的硬件平臺,從而實現嵌入式操作系統的可移植性和跨平臺性,以及嵌入式操作系統的通用性、復用性。3、 嵌入式處理器的種類有哪些?如能給出具體的代表性芯片請給出芯片的型號及生產廠家。嵌入式微控制器8051英特爾嵌入式微處理器ARM、MIPS、Aml86/88( Innovasic)、386EX(intel)、PowerPC(IBM)、68000系列(Motorola)DSP處理器 TI公司TMS320C2000/5000/6000高度集成的片上系統4、 嵌入式交叉開發環境的組成是怎樣的?嵌入式系統開發為什么需要這樣的交叉開發環境而通用計算機的開發不需要?嵌入式系統通常是一個資源受限的系統

6、,因此直 接在嵌入式系統的硬件平臺上編寫軟件比較困難,有時候甚至是不可能的。 模式的特點:目前一般采用的解決辦法是首先在通用計算機上編寫程序,然后通過交叉編譯生成目標平臺上可 以運行的二進制代碼格式,最后再下載到目標平臺上的 特定位置上運行。 交叉開發環境一般由運行于宿主機上的交叉開發軟件、宿主機到目標機的調試通道組成。運行于宿主機上的交叉開發軟件最少必須包含編譯調試模塊,其編譯器為交叉編譯器。作為宿主機的一般為基于x86體系的桌上型計算機,而編譯出的代碼必須在目標機處理器體系結構上運行。在宿主機上編譯好目標代碼后,通過宿主機到目標機的調試通道將代碼下載到目標機,然后由運行于宿主機的調試軟件控

7、制代碼在目標機上運行調試。嵌入式系統應用軟件的開發屬于跨平臺開發,因此需要一個交叉開發環境。5、 11、ARM有哪些工作狀態?如何進行狀態切換? T變種的ARM處理器有兩種工作狀態:ARM狀態: 32位,這種狀態下執行字對準的ARM指令;Thumb狀態:16位,這種狀態下執行半字對準的Thumb指令。ARM處理器在兩種工作狀態之間可以利用BX指令方便地進行切換。(1)進入Thumb狀態。當操作數寄存器的狀態位(位0)為1時,執行BX指令進入Thumb狀態。(2)進入ARM狀態。當操作數寄存器的狀態位(位0)為0時,執行BX指令進入ARM狀態。6、 ARM有哪7種工作模式?各自的用途是什么?其中

8、哪些是特權模式?哪些是異常模式?系統開機時應該為這些工作模式做哪些準備?ARM微處理器支持7種運行模式,分別為:用戶模式(usr): ARM處理器正常的程序執行狀態。系統模式(sys):運行具有特權的操作系統任務??焖僦袛嗄J剑╢iq):用于高速數據傳輸或通道處理。外部中斷模式(irq):用于通用的中斷處理。管理模式(svc):操作系統使用的保護模式。數據訪問終止模式(abt):當數據或指令預取終止時進入該模式,可用于虛擬存儲及存儲保護。未定義指令中止模式(und):當未定義的指令執行時進入該模式,可用于支持硬件協處理器的軟件仿真。除用戶模式外,其它模式均為特權模式。ARM內部寄存器和一些片內

9、外設在硬件設計上只允許(或者可選為只允許)特權模式下訪問。此外,特權模式可以自由的切換處理器模式,而用戶模式不能直接切換到別的模式。后五種為異常模式,它們除了可以通過程序切換進入外,也可以由特定的異常進入。當特定的異常出現時,處理器進入相應的模式。每種異常模式都有一些獨立的寄存器,以避免異常退出時用戶模式的狀態不可靠。管理模式SVC,復位后缺省模式;多種特權模式變化,主要完成各模式的堆棧設置,注意不要進入用戶模式;用戶程序的運行模式,一般為用戶模式User。7、 一個程序執行時間的計算公式: 其中: Ninst :指令數 CPI :每條指令的平均時鐘周期數。 fclk:時鐘頻率。 請結合該公式

10、分析提高嵌入式系統工作效率的途徑有哪些?優化代碼,提高時鐘頻率,降低cpi,提高cpu指令執行效率8、 “ARM處理器指令大部分可以作為條件指令來執行,大部分的指令也可以影響條件,但是都不是強制的”,這里所說“條件”具體指的是什么?“不是強制的”是什么意思?如何才能讓一條指令影響條件標志?又如何才能使一條指令變成條件執行指令。ARM體系結構包含一個當前程序狀態寄存器(CPSR),CPSR中的ALU狀態標志N、Z、C、V均為條件碼標志位。它們的內容可被算術或邏輯運算的結果所改變,并且可以決定某條指令是否被執行。在ARM模式下,任何一條數據處理指令可以選擇是否根據操作的結果來更新CPSR寄存器中的

11、ALU狀態標志位,在數據處理指令中使用S后綴來實現該功能。但有一些指令的執行總是會影響條件代碼標志。每條ARM指令的條件碼域包含4位條件碼,共16種。幾乎所有指令均根據CPSR中條件碼的狀態和指令條件碼域的設置有條件地執行。當指令執行條件滿足時,指令被執行,否則被忽略。在Thumb模式,大多數操作總是更新狀態標志位,并且只能使用條件轉移指令(B)來實現條件執行。該指令(B)的后綴和在ARM模式下是一樣的。其他指令不能使用條件執行。每條ARM指令的條件碼域包含4位條件碼,共16種。幾乎所有指令均根據CPSR中條件碼的狀態和指令條件碼域的設置有條件地執行。當指令執行條件滿足時,指令被執行,否則被忽

12、略。9、 什么是“有效立即數”,有效立即數在ARM指令中的表示方法是怎樣的?為什么采用這樣的表示方法?有效立即數由一個8位的常數循環移位偶數位得到,在12位的shifter_operand中,8位存數據,4位存移位的次數。shifter_operand占的位數為12位。要用一個12位的編碼來表示任意的32位數是絕對不可能的,只有在表示數的數量上做限制,通過編碼來實現用12位的編碼來表示32位數,8位存數據,4位存移位的次數10、 ARM處理器指令大多都是采用寄存器作為其操作數,以提高指令的執行效率,為此ARM處理器設置了大量的寄存器,可是數據的最初來源和最終歸宿都是存儲器,ARM是如何來解決這

13、一問題的?11、 ARM處理器的堆棧有哪些類型?在ARM狀態和Thumb狀態下分別如何實現堆棧操作。ARM微處理器支持這四種類型的堆棧工作方式,即:滿遞增方式FA(Full Ascending):堆棧指針指向最后入棧的數據位置,且由低地址向高地址生成。滿遞減方式FD(Full Decending):堆棧指針指向最后入棧的數據位置,且由高地址向低地址生成??者f增方式EA(Empty Ascending):堆棧指針指向下一個入棧數據的空位置,且由低地址向高地址生成??者f減方式ED(Empty Decending):堆棧指針指向下一個入棧數據的空位置,且由高地址向低地址生成。LDM(或STM)條件

14、類型 基址寄存器!,寄存器列表LDM(或STM)指令用于從由基址寄存器所指示的一片連續存儲器到寄存器列表所指示的多個寄存器之間傳送數據,該指令的常見用途是將多個寄存器的內容入棧或出棧。其中,類型為以下幾種情況:FD滿遞減堆棧;ED空遞減堆棧;FA滿遞增堆棧;EA空遞增堆棧;LDM和STM指令可以將任何范圍為R0R7的寄存器子集加載或存儲,PUSH和POP指令使用堆棧指針R13作為基址實現滿遞減堆棧,除R0R7外,PUSH指令還可以存儲鏈接寄存器R14,并且POP指令可以加載程序指令PC。PUSH和POP指令格式:PUSH 低寄存器的全部或其子集POP 低寄存器的全部或其子集 這兩條指令是棧操作

15、指令,用于在寄存器和堆棧之間進行成組的數據傳送,PUSH指令用于把寄存器列表中的寄存器數據推進堆棧;POP指令用于把棧區的數據彈出列表的寄存器中。12、 在ARM“偽指令”和“匯編指令”中都有LDR指令,如何區分指令中的LDR為“偽指令”還是“匯編指令”?請舉例說明。單一數據加載/存儲指令LDR格式為:LDR條件 目的寄存器,<存儲器地址>LDR指令是字加載指令,用于從存儲器中將一個32位的字數據傳送到目的寄存器中。LDRR3,R4;LDR偽指令語法格式 :LDRcond  Rd, =數值表達式;加載數字常量LDRcond  Rd, =語句標

16、號+數值表達式 ;加載地址LDR偽指令是把一個數字常量或一個地址加載到低端寄存器偽指令。如果所加載的是一個32位的數字常量,則編譯程序就可以把這條語句編譯成一條MOV指令,如果不能用MOV指令來表達,則編譯成一條LDR指令。如果所加載的是地址的話,編譯程序會把這條語句編譯成LDR指令。13、 ATPCS標準的具體內容是什么?建立該標準的目的是什么?為了使單獨編譯的C語言程序和匯編程序能夠互相調用,定義了統一的函數過程調用標準ATPCS(ARM-Thumb Procedure Call Standard)。ATPCS定義了寄存器組中的R0R3作為參數傳遞和結果返回寄存器,如果參數數目超過四個,則

17、使用堆棧進行傳遞。內部寄存器的訪問速度是遠遠大于存儲器的,所以要盡量使參數傳遞在寄存器里面進行,即應盡量把函數的參數控制在四個以下。14、 Boot Loader在嵌入式系統中主要起什么作用?完成哪些主要的工作?BootLoader是一段匯編代碼,存放在MBR(Master Boot Record-主引導扇區 )中,它的主要作用就是將操作系統啟動代碼讀入內存。從功能上看,Bootloader就是在操作系統內核或用戶應用程序運行之前運行的一段小程序。通過這段小程序可以初始化硬件設備、建立內存空間的映射圖,從而將系統的軟硬件環境帶到一個合適的狀態,以便為最終調用操作系統內核或用戶應用程序準備好正確

18、的環境。15、 簡述嵌入式Linux交叉編譯環境搭建及開發步驟交叉編譯器完整的安裝一般涉及到多個軟件的安裝, 包括binutils、 gcc、 glibc等軟件。交叉編譯器的安裝有兩種方法:一種是利用網上交叉編譯包安裝,第二種是利用交叉鏈Crosstool自己構建交叉編譯器。1、利用交叉編譯包安裝交叉編譯器網上有很多編譯好的交叉編譯器,將下載的壓縮包解壓,復制到usr/local/arm,下面以安裝3.4.1為例:創建目錄:mkdir p /usr/local/arm將解壓得到的文件夾復制到usr/local/arm指定交叉編譯器路徑:export PATH=$PATH:/usr/local/

19、arm/3.4.1/bin這樣交叉編譯器就算是安裝好了。2、利用crosstool構建交叉編譯器1. 做好準備工作。下載上述工具的源碼包和補丁、準備內核頭文件和創建工作目錄等。2. 編譯binutils。3. 編譯輔助編譯器。4. 使用交叉編譯工具鏈,如arm-linux-gcc編譯glibc庫。5. 編譯生成完整的gcc編譯器。重新配置gcc功能,使其完整的支持C、C等語言。1.建立開發環境 2.配置開發主機,3.建立引導裝載程序Bootloader 4.移植Linux 操作系統 5.建立根文件系統 6.建立應用程序的flash磁盤分區 7.開發應用程序 8.應用程序開發結束后,需要燒寫內核

20、、根文件系統、應用程序。最后進行產品的發布。16、 在編寫嵌入式Linux設備驅動程序中,如何對I/O物理地址進行讀寫?17、 簡述在多線程開發中互斥鎖(Mutex)的作用及使用步驟互斥鎖是同一時間只能有一個線程獲得控制權的機制。互斥鎖的使用步驟:(1) 聲明互斥鎖,并設置為快速鎖(常用的鎖)pthread_mutex_t mutex = PTHREAD_MUTEX_INITIALIZER; (2) 在對共享數據或者變量修改前,調用pthread_mutex_lock (&mutex)加鎖; 如果此時mutex已經被別的線程獲取,那么pthread_mutex_lock將會一直等待,直

21、到別的線程釋放了鎖。 (3) 修改完成后,再調用pthread_mutex_unlock (&mutex)釋放鎖。釋放后,別的等待鎖的線程將會被喚醒18、 分析下面兩條指令的作用,并分析基址寄存器的變化有什么不同? LDMIA R0!,R2-R9 STMIA R1,R2-R9LDMIA R0!,R2-R9 (將R0指向的單元中數據讀出到R2R9中)加載數據到R2R9,由于存在!最后的地址寫入基址寄存器STMIA R1,R2-R9-保存R2R9的數據到R1指向的地址,基址寄存器的數據不變19、 請閱讀如下指令段,并分析這段指令的功能 MOV R11,#20 MOV R10,#0 LOOP

22、: LDR R0,R8,#4 LDR R1,R9,#4 MLA R10,R0,R1,R10 SUBS R11,R11,#1 BNE LOOPMOV R11,#20 設定循環次數為20次 MOV R10,#0 初始化和為0LOOP: LDR R0,R8,#4 把以R8+4后為地址的內容加載到R0 LDR R1,R9,#4 把以R9+4后為地址的內容加載到R1 MLA R10,R0,R1,R10 R10=R0*R1+R10 SUBS R11,R11,#1 R11=R11-1 BNE LOOP 減到0跳出循環20、 編寫 S3C2440X 處理器的端口控制程序,實現在GPC5上輸出一周期為50Hz的

23、方波,要求利用語言編寫主控制程序,匯編實現精確定時。若干ms的匯編延時程序如下:delayxms stmfd sp!,r11; sub r0,r0,#1 ;r0=r0-1 ldr r11,=1000loop2 sub r11,r11,#1 cmp r11,#0x0 bne loop2 cmp r0,#0x0;將r0與0比較 bne delayxms ;比較的結果不為0,則繼續調用delayxms ldmfd sp!,r11; mov pc,lr;返回要求程序結構要完整。#include <stdio.h>#define GPCCON  (*(

24、volatile unsigned long *) 0x56000020#define GPCDAT  (*(volatile unsigned long *) 0x56000024extern void delayxms();int main()GPCCON =1<<10;GPBDAT = 0x0;while(1) GPCDAT |=  1<<5; delayxms();

25、delayxms(); GPCDAT &=  (1<<5); delayxms();delayxms();Return 0;AREA asmfile, CODE, READONLYEXPORT delayxmsdelayxms stmfd sp!,r11; sub r0,r0,#1 ;r0=r0-1 ldr r11,=1000loop2 sub r11,r11,#1 cmp r11,#0x0 bne loop2 cmp r0,#0x0;將r0與0比較 bne delayxms ;比較的結果不為0,則繼續調用delayxms ldmfd

26、 sp!,r11; mov pc,lr;返回 ENDIMPORT  mainarea Init,code,readonly entrycode32; * Setup interrupt/exception vectors *start   b Reset_Handler Undefined_Handler  b Undefined_HandlerSWI_Handler  b SWI_HandlerPrefetch_handler  b&

27、#160;Prefetch_handlerAbort_Handler  b Abort_Handlernop IRQ_Handler b IRQ_HandlerFIQ_Handler b FIQ_HandlerReset_Handler bl initstack 初始化各模式下的堆棧指針  切換至用戶模式堆 msr cpsr_c,#0xd0 110 10000 bl mainhalt  b halt initstack  mov r0,lr r0<-lr,因為各種模式下r0是相同的而各個模式? 設置管理模式堆棧msr cpsr_c,#0xd3 110 10011 ldr sp,stacksvc 設置中斷模式

溫馨提示

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

評論

0/150

提交評論