嵌入式系統課后答案馬維華_第1頁
嵌入式系統課后答案馬維華_第2頁
嵌入式系統課后答案馬維華_第3頁
已閱讀5頁,還剩3頁未讀, 繼續免費閱讀

下載本文檔

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

文檔簡介

1、第 1 章 嵌入式系統概述1, 什么是嵌入式系統 嵌入式系統的特點是什么嵌入式系統概念 :(1) IEEE 對嵌入式系統的定義 :用于控制 ,監視或者輔助操作機器和設備的裝置.(2) 一般定義 : 以應用為中心 ,以計算機技術為基礎 ,并且軟硬件可裁剪 ,適用于應用系統對功能 , 可靠性 ,成本,體積 ,功耗有嚴格要求的專用計算機系統.嵌入式系統的特點 :(1) 專用的計算機系統(2) 必須滿足環境要求(3) 必須能滿足對象系統的控制要求(4) 是集成計算機技術與各行業應用的集成系統(5) 具有較長的生命周期(6) 軟件固化在非易失性存儲器中(7) 必須能滿足實時性要求(8) 需要專用開發環境

2、和開發工具2, 簡單分析幾種嵌入式操作系統的主要特點, 包括嵌入式 Linux,Windows CE,uCOS II 及VxWorks.(1) 嵌入式Lin ux:有多個主流版本,根據應用需求,性能略有差別卩CL in ux是Linux小型化后, 適合于沒有MMU的微處理器芯片而裁剪成的操作系統 ,卩CLinuX呆持了傳統Linux操作系統 的主要特性,包括穩定,強大的網絡和文件系統的支持 ,卩CLinux裁剪了大量的Linux內核以縮 小尺寸 ,適合像 512KB RAM,1MB Flash 這樣小容量 ,低成本的嵌入式系統 RT_Linux 即能兼容 通常的 Linux, 又能保證強實時性

3、 (2) Windows CE: 開發平臺主要為 WinCE Platform Builder, 有時也用 EVC 環境開發一些較上層 的應用 WinCE 開發難度遠低于嵌入式 Linux, 實時性略低 ,常用于手機 ,PDA 等手持設備中 (3) uCOS II: 結構小巧 ,搶先式的實時嵌入式操作系統,具有執行效率高 ,占用空間小 ,可移植性強,實時性能好和可擴展性能等優點主要用于小型嵌入式系統 (4) VxWorks: 集成開發環境為 Tornado,Vxworks 因出現稍早 ,實時性很強 ,并且內核可極微 (最 小 8K), 可靠性較高等 通常應用在通信設備等實時性要求較高的系統中

4、第 2 章 嵌入式處理器體系結構1,具體說明 ARM7TDMI 的含義 ,其中的 T,D,M,I 分別代表什么ARM7TDMI是ARM7處理器系列成員之一,采用V4T版本指令.T表示Thumb,該內核可從 16位指令集切換到32位ARM指令集;D表示Debug,該內核中放置了用于調試的結構,支持片內Debug調試;M表示Multiplier,支持位乘法;I表示Embedded ICE ,內含嵌入式ICE宏單元, 支持片上斷點和觀察點 2, ARMV4及以上版本的 CPSR的哪一位反映了處理器的狀態若CPSR=0x000000090,分析系統狀態 CPSR=0x000000090 表示當前處理器

5、工作于 ARM 狀態,系統處于用戶模式下 CPSR的BIT5(T)反映當前處理器工作于 ARM 狀態或Thumb狀態.3,ARM 有哪幾個異常類型 ,為什么 FIQ 的服務程序地址要位于 0x1C 在復位后 ,ARM 處理器 處于何種模式 ,何種狀態ARM 的 7 種異常類型 :復位 RESET 異常 ,未定義的指令 UND 異常 ,軟件中斷 SWI 異常 ,指令 預取中止 PABT 異常 ,數據訪問中止 DABT 異常,外部中斷請求 IRQ 異常,快速中斷請求 FIQ 異常.在有快速中斷發生時,CPU從Ox1C處取出指令執行.ARM復位后處于管理模式,工作于ARM 狀態 4, 為什么要使用

6、Thumb模式,與ARM代碼相比較,Thumb代碼的兩大優勢是什么 為了兼容數據總線寬度為 16 位的應用系統 ,使用了 ARM 指令系統的一個子集 Thumb 指令系 統.與等價的 32位代碼相比 ,Thumb 指令集在保留 32位代碼優勢時 ,大大節省了系統的存儲空 間.5, 說明 AMBA,AHB,ASB 以及 APB 的英文全稱及其含義 .AMBA(Advanced Microcontroller Bus Architecture) 即先進的微控制器總線體系結構 , 是 ARM 公司公布的總線標準 ,這一標準定義了 AHB,ASB,APB 及 AMBA 共 4 種高性能的系統總線規 范

7、.AHB(Advanced High_performance Bus) 先進的高性能總線 ,用于連接高性能系統組件或高寬 帶組件 .它支持突發數據傳輸方式及單個數據傳輸方式,所有時序參考同一個時鐘 .ASB(Advaneed System Bus)即先進的系統總線,用于連接高性能的系統模塊它支持突發數據 傳輸 .APB(Advaened Peripheral Bus) 即先進的外圍接口總線 ,是一個簡單的接口 它支持低性能的外 圍接口 ,APB 是用來連接系統的周邊組件 6, 簡述 MMU 從虛擬地址到物理地址的轉換過程和方法 虛擬地址到物理地址的轉換過程 :當 ARM 要訪問存儲器時 ,MM

8、U 先查找 TLB 中的虛擬地址表 ,如果 ARM 的結構支持分開的 地址 TLB 和指令 TLB, 那么它在取指令時使用指令 TLB, 其它的所有訪問類別使用數據 TLB; 如果 TLB 中沒有虛擬地址的入口 ,則是轉換表遍歷硬件從存儲在主存儲器中的轉換表中獲取 訪問權限 ,一旦取到 ,這些信息放在轉換 TLB 中,它會放在 1個沒有使用的入口處或覆蓋 1 個 已有的入口 虛擬地址到物理地址的轉換方法 :(1) 確定 1 級頁表的基地址 (2) 合成轉換表的 1 級描述符 (3) 根據不同的 1級描述符獲取第 2 級描述符地址并找出第 2 級描述符 (4) 將第 2級頁描述符指示的頁基地址

9、,與虛擬地址指示的頁內偏移地址相加 ,得到相應頁的物 理地址 ,完成虛擬地址到物理地址的轉換 第三章 典型嵌入式處理器1,簡述 LPC2000 系列微控制器的內部有哪些重要的外設組件 向量中斷控制器 ,外部存儲控制器 ,I2C 中行總線控制器 ,SPI 同步接口控制器 ,UART 串口控制 器,定時器,AD轉換器,CAN總線控制器,看門狗定時器等2,S3C44B0X 如何組織 8,16,32 位的存儲器 ,地址線如何連接S3C44B0X 不同寬度的存儲器地址線連接方法 存儲器地址引腳8 位總線16 位總線32 位總線A0A0A1A2A1A1A2A3A2A2A3A4A3A3A4A5Am-1Am-

10、1Am-2Am-33, 說明 I2C 的數據有效性和起停條件 .數據有效性:當SCL信號為高電平時,SDA上的數據傳輸有效,傳輸時高位在前,低位在后,每個 字節長度限制為位 ,而每次傳送的字節總數沒有限制.滿足啟動條件后的第一個字節應為地址域.每一個字節有一個應答位 .起停條件:啟動條件,在SCL信號保持高電平時SDA信號由高電平變為低電平;停止條件,要求 在 SCL 信號保持高電平時 SDA 信號由低電平變為高電平 .4,簡述 AT91FR40162 處理器的特點 .AR91FR40162 采用 ARM7TDMI 處理器核 ,內部集成了 256KB 的片內 SRAM 和 1024K 字的 1

11、6位Flash存儲器,完全可編程的外部總線接口 , 8個優先級且可以獨立屏蔽的向量中斷控制 器,32個可編程的 I/O 接口線,3通道16位定時/計數器,2個同步/異步收發器及可編程的看門 狗定時器 ,能完成全靜態操作 ,具有先進的省電特性 .第四章 嵌入式處理器指令系統1, 填空題(1) 在源操作數為立即數時 ,應在前加 #作為前綴 ,在#后加 0x 或&表示十六進制數 ,在#后加%表 示二進制數 ,#后加 0d 或默認表示十進制數 .(2) 根據堆棧指針指向的數據位置不同,堆棧可分為滿堆棧和空堆棧 .(3) 用一條指令完成人條件加法運算,并更新CPSR中的條件碼,R1+R2->

12、;R3 ADDS R3,R1,R2.(4) 在程序執行過程中 ,是通過寄存器 R15 控制程序的運行的 .(5) 轉移指令的跳轉范圍是 -32MB-32MB.2,選擇題(2) 堆棧隨著存儲器地址的增大而向上增長,基址寄存指向存貯有效數據的最高地址或者說指向第一個要讀出的數據位置,是(A)堆棧.A,滿遞增B,空遞增 C,滿遞減D,空遞減在指令LDR R0,R1,#4!執行后,R1中的值為(C).A,R1 不變 B,R1=R1+1 C,R1=R1+4 D,R1=43, 說明下列指令完成的功能(1) ADD R0,R1,R3,LSL #2 ;R0=R1+4R2(2) ANDNES RO,R1,#Ox

13、OF ;if (CPSR 寄存器中Z=0) R1的高28位清零后送寄存器 R0并更新CPSR寄存器,else執行下一條指令.(3) LDRB R0,R1,R2,LSR#2;把存儲器地址為(R1+R2>>2)的字節數據加載到R0,R0的高24位清零 .(4) ADCHI R1,R2,R3; if(CPSR 寄存器中Z=0并且C=1)執行R仁R2+R3加法操作,else執行下 一條指令 .(5) E0R RO,RO,R3,ROR R4; R3寄存器中的內容根據R4寄存器中的內容循環右移后與R0寄存器進行邏輯異或操作后,其結果存在 R0 寄存器內 .(7) MLA R0,R1,R2,R3

14、; R0=R1R2+R3 MLA 是32位乘加指令,運算結果的高 32位自動丟掉.(8) LDR R1,R0,-R5,LSL #4;將存儲器地址為 R0-16R5的字數據加載到寄存器R1中4, 用匯編語言實現下列功能的程序段,令R1=a,R2=b.(1) if(a!=b)&a-b>5) a=a+bCMP R1,R2BEQ NextADD R3,R2,#5CMP R1,R3BLS NextADD R1,R1,R2Next B Next(2) while(a!=0)b=b+b*2;a-;AREA TestWhile,CODE,READONL Ya equ 5b equ 1ENTRYM

15、OV R1,#aMOV R2,#bLOOPCTL CMP R1,#0ADDNE R2,R2,R2,LSL#1SUBNES R1,R1,#1BNE LOOPCTLEND從a所指向的地址,拷貝20個32位數據到b所指向的地址AREA DataCopy,CODE,READONL YENTRYLDR R0,=SrcDataLDR R1,=DstDataMOV R2,#20LOOPCTL LDR R3,R0,#4STR R3,R1,#4SUBS R2,R2,#1BNE LOOPCTLWait B WaitAREA DataDef, DATA,READWRITESrcData DCD 1,2,3,4,5,

16、6,7,8,9,10,11,12,13,14,15,16,17,18,19,20DstData SPACE 4*10END6,試比較 TST 與 ANDS,CMP 與 SUBS,MOV 與 MVN 指令的區別 .(1) TST 指令把兩個操作數進行按位的與操作,并根據運算結果更新 CPSR 中的條件標志位的值.該指令通常用來檢測是否設置了特定的位,一般操作數 1 是要測試的數據 ,而操作數 2是一個位掩碼 .ANDS 指令用于在兩個操作數上進行邏輯與運算,并把結果放到目的寄存器中 ,操作數 1 應是一個寄存器 ,操作數 2 可以是一個寄存器 ,被移位的寄存器 ,或是 1個立即數 .該指令常用于

17、設置 操作數 1 的某些位 .TST和ANDS兩條指令都影響 CPSR寄存器;TST指令不改變參與運算的數據 ,而ANDS指令 對目的寄存器進行更新 .(2) CMP指令用于把2個操作數進行比較,同時更新CPSR中條件標志位的值該指令進行一次減法運算 ,但不保存運算結果 ,只更改條件標志位 .標志位表示的是操作數1 和操作數 2 的關系(大,小,相等)SUBS 指令用于把操作數 1 送去操作數 2,并將結果存放到目的寄存器中操作數 1 應是一個寄存器,操作數2可以是一個寄存器,被移位的寄存器,或是一個立即數指令影響CPSR值 CMP 和 SUBS 指令都影響 CPSR 寄存器 ;CMP 指令不

18、保存運算結果 ,而 SUBS 指令可以保存 運算結果 ,并且減數和被減數的值也不發生變化(3) MOV 指令將一個寄存器 ,被移位的寄存器或一個立即數的值裝入目的寄存器內,可以指定相同的寄存器實現 NOP 的效果 ,還可以移位一個寄存器 MVN 指令與 MOV 指令的不同之處是在傳送數據之前先按位取反,即把一個被取反的值傳送到目的寄存器中 8,寫一段ARM匯編程序:循環累加隊列中的所有數據,直到碰到零值位置,結果放在R4源程 序末尾隊列如下 :Array:DCD 0x11DCD 0x22DCD 0x33DCD 0R0 指向隊列頭 ,ADR R0,ARRAY 使用命令LDR R1,R0,#4來裝

19、載,累加至R4,循環直到R1為0,用死循環來停止程序 :AREA Cond_Sum,CODE,READONL YENTRYLDR R0,=ArrayMOV R4,#0LooPCtl LDR R1,R0,#4CMP R1,#0ADDNE R4,R4,R1BNE LooPCtlWait B WaitAREA SrcData,CODE,READONL YArray DCD 0x11DCD 0x22DCD 0x33DCD 0END9,寫一個匯編程序,求一個含64個帶符號的16位數組組成的隊列的平方和程序:AREA SquareSum,CODE,READONL YENTRYLDR R0,=ArrayMO

20、V R3,#4MOV R4,#0LooPCtl LDRH R1,R0,#2MLA R4,R1,R1,R4SUBS R3,R3,#1BNE LooPCtlNOPAREA SrcData,CODE,READONL YArray DCD 0x00010002DCD 0x00030004END第五章嵌入式系統程序設計基礎4, 簡要說明EXPORT和IMPORT的使用方法.答:EXPORT偽指令用于在程序中聲明一個全局的標號,該標號可在其它的文件中引用 .EXPORT可用GLOBAL 代替標號在程序中區分大小寫 .WEAK選項聲明其它的同名標 號優先于該標號被引用.IMPORT偽指令用于通知編譯器要使用

21、的標號在其它的源文件中定義,但要在當前源文件中引用,而且無論當前源文件中是否引用該標號 ,該標號均會被加入到當前源文件的符號表中 .5, 分析說明下段程序完成什么功能AREA ChangeState,CODE,READONL YCODE32LDR R0,=Start+1BX R0CODE16Start MOV R1,#1END解:程序功能實現程序的跳轉并從ARM狀態切換到Thumb狀態.6, 設計一段程序完成數據塊的復制,數據從源數據區snum|復制到目標數據區 dnum .復制時,以8個字為單位進行.對于最后所剩不足 8個字的數據,以字為單位進行復制.程序:AREA BlockDataCop

22、y,CODE,READONL Ynum EQU 20ENTRYStart LDR R0,=snumLDR R1,=dnumMOV R2,#numMOV R13,#400BlockCopy MOVS R3,R2,LSR#3BEQ CopyWordsSTMFD R13!,R4-R11OctCopy LDMIA R0!,R4-R11STMIA R1!,R4-R11SUBS R3,R3,#1BNE OctCopyLDMFD R13!,R4-R11CopyWords ANDS R2,R2,#7BEQ StopWordsCopy LDR R3,R0,#4STR R3,R0,#4SUBS R2,R2,#1B

23、NE WordsCopyStop B StopAREA BlockData, DATA,READWRITEsnum DCD 1,2,3,4,5,6,7,8,9,10,11DCD 12,13,14,15,16,17,18,19,20dnum SPACE 20*4END3 個不同的子7, 利用跳轉表的思想編寫一個匯編程序,實現當 R0 分別為 0,1,2 時完成跳轉到程序 .程序 :AREA JumpTable,CODE,READONL Ynum EQU 3ENTRYStart MOV R0,#1MOV R1,#3MOV R2,#2BL JumpTblCtlStop B StopJumpTblCtl CMP R0,#numMOVHS PC,LRADR R3,JumpTblEntryLDR PC,R3,R0,LSL#2JumpTblEntry DCD Subroutine1DCD Subroutine2DCD Subroutine3Subroutine1 MOV R3,#0x55MOV PC,LRSubroutine2 MOV R4,#0xAAMOV PC,LRSubroutine3 MOV R5,#0x5AMOV PC,LREND第六章 嵌入式操作系統1, 簡述卩CLinux的特點,說明其主要應用的環境.答:卩C

溫馨提示

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

評論

0/150

提交評論