西安郵電大學嵌入式課后答案解析_第1頁
西安郵電大學嵌入式課后答案解析_第2頁
西安郵電大學嵌入式課后答案解析_第3頁
免費預覽已結束,剩余49頁可下載查看

下載本文檔

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

文檔簡介

1、.嵌入式系統開發習題 11. 什么是嵌入式系統?有何特點?答:嵌入式系統的概念有很多種,在嵌入式系統領域中比較認同的嵌入式系統的概念是:嵌入式系統是以應用為中心,以計算機技術為基礎,并且軟硬件可裁剪,適用于應用系統對功能、可靠性、成本、體積、功耗有嚴格要求的專用計算機系統。嵌入式系統的特點: 嵌入式系統是將先進的計算機技術、半導體技術以及電子技術與各個行業的具體應用相結合的產物,這一點就決定了它必然是一個技術密集、資金密集、高度分散、不斷創新的知識集成系統。 系統內核小。由于嵌入式系統一般是應用于小型電子裝置中,系統資源相對有限,所以內核較之傳統的操作系統要小得多。 專用性強。 系統精簡。 系

2、統軟件( OS )要求具有高實時性。 嵌入式軟件開發要走向標準化,需要使用多任務的操作系統。 嵌入式系統本身并不具備在其上進行進一步開發的能力。2. 嵌入式系統可以分為幾層?每一層各完成哪些功能?答:嵌入式系統由硬件層、中間層、軟件層和功能層組成。.硬件層:以嵌入式微處理器為核心,存儲器用以存儲數據和執行代碼,相關的設備接口和 I/O 接口,這些組成了一個嵌入式系統的基礎,實現邏輯運算,算術運算等。中間層: 將系統上層軟件和底層硬件進行分離, 封裝成標準的接口, 在上層軟件開發人員無需知道底層硬件的具體情況, 完成的任務是底層硬件的初始化、 數據的輸入 / 輸出操作、硬件的配置等功能。軟件層:

3、主要由RTOS、文件系統、圖形用戶接口、網絡系統和通用的組件模塊組成,是軟件開發的基礎。功能層:用來完成被控對象的控制功能。3. 嵌入式系統中硬件抽象層有什么特點?答:硬件抽象層是介于硬件層與軟件層之間的中間層,它將系統上層軟件與底層硬件分離開來,具有以下兩個特點: 硬件相關性:因為嵌入式實時系統的硬件環境具有應用相關性,而作為上層軟件與硬件平臺之間的接口,硬件抽象層需要為操作系統提供操作和控制具體硬件的方法。 操作系統相關性:不同的操作系統具有各自的軟件層次結構,因此,不同的操作系統具有特定的硬件接口形式。4. 簡述嵌入式處理器的硬件組成?答:隨著集成電路集成度的不斷提高,嵌入式系統板級的硬

4、件電路模塊也越來越多的集成到芯片內部,目前處理器芯片內部的電路模塊組成如下: 處理器內核,以CPU 為核心,有的還包含MMU (存儲器管理單元)、 Cache (高速緩存)、 ICE(在線仿真)等電路模塊。 DSP/ 協處理器,對于多媒體處理的處理器,內部一般有DSP (數字信號處理)、浮點運算、圖像加速等協處理器。. RAM/ROM,在單片機處理器中,處理器芯片內部一般集成了ROM(只讀存儲器)和 RAM (可讀可寫存儲器)。 處理器內部控制電路,如 PLL(鎖相環)、復位、 DMA (直接存儲器存取)、中斷控制器、低功耗控制、看門狗等電路。 芯片內部接口電路,如GPIO (通用輸入、輸出)

5、接口、I2C(雙向兩線制的串行總線)接口、 IIS(音頻總線) 接口、 SPI(串行外設接口)、 USB(通用串行總線)接口、 LCD(液晶顯示)接口、ADC/DAC (模數 / 數模轉換)、 UART (通用異步收發器)、IrDA (紅外接口) 、CAN (控制器局域網絡)總線接口、以太網接口、Timer/RTC (定時器 / 計數器)接口等電路模塊。5. 嵌入式處理器分那幾類?它們有何特點?答:嵌入式微處理器。特點:處理能力強,具有較高的性能,價格也相應較高。 嵌入式微控制器。特點:主要用于嵌入式體統工業的主流,跟嵌入式微處理器相比,微控制器的最大特點是單片化,體積大大減小,從而使功耗和成

6、本下降,可靠性提高。并且價格低廉,功能優良,擁有的品種和數量最多。 嵌入式DSP 處理器。特點:DSP 處理器是專門用于信號處理方面的處理器,在系統結構和指令算法方面進行了特殊設計,具有很高的編譯效率和指令的執行速度。 SoC 片上系統。特點:實現了軟硬件無縫結合,直接在處理器片內嵌入操作系統的代碼模塊具有極高的綜合性,在一個硅片內部運用VHDL 等硬件描述語言,實現一個復雜的系統絕大部分系統構件在系統內部,系統簡潔,減少了系統的體積和功耗,提高了系統的可靠性跟設計生產效率。.6. 分析目前市場上常用的幾種嵌入式處理器,說明不同嵌入式處理器的各自特點?答:目前市場上常用的嵌入式處理器有MCS5

7、1單片機, ARM處理器, MIPS 處理器, PowerPC處理器, MC68000處理器, X86 處理器等。MCS51的特點是, 8 位 CPU ,片內振蕩器,4KB ROM,128KB RAM,21個特殊功能寄存器, 32 根 I/O 總線,片外可尋找范圍分別為64KB 的外部程序和數據,兩個16 位的定時 / 計數器,一個全雙工串口接口,中斷結構分為兩級優先級,5 個中斷源,適于按位邏輯運算的處理器。ARM 處理器的特點是,體積小,功耗低,成本低,高性能,支持16/32位雙指令集,在全球有眾多合作伙伴。MIPS 處理器的特點是,高性能,高檔次的處理器,有32 位和 64 位的處理器,

8、簡化硬件設計,強調軟硬件協同提高性能。PowerPC處理器特點,具有優異的性能,低能量消耗,低散熱量。MC68000處理器,是一個16/32位的 CISC 處理器,采用32 位總線和寄存器,這個結構對之后的32 為產品保持兼容。X86 處理器的特點,可變指令長度的CISC 處理器,允許不對齊訪問存儲器。7. 舉例說明嵌入式處理器的性能指標?并分析對嵌入式系統的影響?答:性能指標主要有主頻,處理器字長,數據通路速度,運算速度,高速緩存和處理器的系統架構。 主頻,執行每條指令的時鐘周期數一定,主頻越高單位時間內執行的指令越多。處理器字長,處理器內部數據運算的基本位數,反映的是計算精度,以及單次處理

9、數據的總長度; 數據通路速度,讀取指令數據傳輸計算數據的速度越高,處理器性能越好。運算速度,用MIPS (每秒執行多少百萬條指令)表示,MIPS 越大,說明運算速度越快;高速緩存,突破主存訪問速度的瓶頸,提高處理器的綜合性能。.8. 簡述你對嵌入式操作系統的認識,分析嵌入式操作系統有哪些特點?答:嵌入式操作系統EOS 是一種支持嵌入式系統應用的操作系統軟件,它是嵌入式系統(包括軟硬件系統)極為重要的組成部分,通常包括與硬件相關的底層驅動軟件、系統內核、設備驅動接口、通信協議、圖形界面、標準化瀏覽器等。EOS 是相對于一般操作系統而言的,它除具備了一般操作系統最基本的功能,如任務調度、同步機制、

10、中斷處理、文件功能等之外,還有以下特點: 可裝卸性,開放性、可伸縮性的體系結構。 強實時性, EOS 實時性一般較強,可用于各種控制系統中。 統一的接口,提供各種設備驅動接口。 操作方便、簡單,提供友好的圖形GUI ,追求易學易用。 提供強大的網絡功能,支持TCP/IP 協議及其他協議,提供TCP/UDP/IP/PPP協議支持及統一的MAC 訪問層接口,為各種移動計算設備預留接口。 強穩定性,弱交互性。 固化代碼。 更好地硬件適應性,也就是良好的移植性。9. 試分析實時操作系統中可搶占型和不可搶占型有何區別?并舉例說明。答:實時操作系統可分為可搶占型和不可搶占型兩類。對于基于優先級的系統而言,

11、可搶占型的實時操作系統是指內核可以搶占正在運行任務的CPU 使用權并將使用權交給進入就緒態的優先級更高的任務,是內核搶了CPU 讓別的任務運行。不可搶占型實時操作系統使用某種算法以決定讓某個任務運行后,就把CPU 的控制權完全交給該任務,直到它主動將 CPU 控制權還回來。比如嵌入式操作系統uC/OS ,可以根據優先級進行搶占使用CPU ,優先級高的任務可.以比優先級低的任務優先使用CPU 。10. 簡述嵌入式系統的開發過程?答:嵌入式系統的開發過程可以分為需求分析、建立開發環境、體系結構設計、軟件/ 硬件設計、系統集成和系統優化與測試 6 個階段。如果設計的流程是從需求分析開始,然后是建立開

12、發環境,依次進行,最后是系統優化與測試,那么就叫做自上而下的設計流程;反之就叫做自下而上的設計流程。所有的嵌入式系統設計不可避免的設計這六個階段,更重要的是找到一個好的設計方法,目前一種比較好的設計方法是采用計算機輔助設計工具。11. 簡述在線仿真器 ICE 和在線調試器 ICD 有何區別?答:在線仿真器ICE 是一種模擬CPU 的設備,能執行CPU 的全部動作。采用該方式調試時,利用仿真頭代替目標板上的CPU ,可以完全仿真CPU 的行為。在線調試器ICD 是將 CPU 的調試功能的引腳引出來,讓外部的硬件直接連接到這些引腳上去監控整個CPU 的動作。12. 試分析嵌入式系統測試中的純軟件測

13、試過程,舉例說明實現方法。答:純軟件測試過程是指用工具采用軟件打點技術,在被測試代碼中加入一些函數,這些函數用來完成數據的生成,并將數據送往目標機系統的共享內存中,同時,在目標機系統中運行一個與處理任務,用于完成這些數據的預處理,然后將處理過的數據通過目標機的串口,網口或者USB 口送往宿主機測試平臺。舉例,可以在程序中間插入函數,讀出當前所有寄存器內容,發送至目標機系統,測試者可以根據這些數據了解系統執行情況。習題 21.按照 ARM處理器的命名規則,說明ARM7TDMI中 T、 D、 M 、 I 的含義。.答: T:支持16 位的Thumb指令集;D :支持JTAG片上調試;M :支持長乘

14、法操作( 64位結果)的ARM指令,包含快速乘法器;I :帶有嵌入式追蹤宏單元ETM( Embedded Trace Macro),用來設置斷點和觀察點。2. 什么是哈佛結構?與普林斯頓結構有何區別?答:哈佛結構是一種將程序中指令和數據分開存儲的存儲器結構。即哈佛結構中程序存儲器和數據存儲器是兩個獨立的存儲器,每個存儲器獨立編址、獨立訪問。普林斯頓結構(馮·諾伊曼結構)是一種將程序指令存儲器和數據存儲器合并在一起的存儲器結構。程序指令存儲地址和數據存儲地址指向同一個存儲器的不同物理位置。這便是。這便是兩種結構的區別。3. 什么是 RSIC ?什么是 CSIC ?簡述他們的特點與差別。

15、答: RSIC 是精簡指令集計算機,CISC 是復雜指令集計算機。兩者的區別在于不同的CPU 設計理念和方法。對于 CISC : 在 CSIC 結構的指令系統中,各種指令的使用頻率相差懸殊。有80% 的指令只在 20% 的運行時間內才會用到。 CISC 結構指令系統的復雜性帶來了計算機體系結構的復雜性,這不僅增加了研制時間和成本,而且還容易造成設計錯誤。 在 CISC 結構指令系統中,由于各條指令的功能不均衡性,不利于采用先進的計算機體系結構技術來提高系統的性能。對于 RISC: 簡化指令集,只保留常用的基本指令; 設計大量的通用存儲器,減少訪存的次數; 采用裝載 / 保存結構,支持流水線技術

16、,使每個周期時間相等; 采用簡單的指令格式、規整的指令字長和簡單的尋址方式;. 單機器周期指令,即大多數的指令都可以在一個機器周期內完成,并且允許處理器在同一時間內執行一系列的指令。4. ARM7 處理器是幾級流水線?在 ARM7 處理器中,“ PC 指向的是下一條要執行的指令”,這句話對嗎?為什么?答: ARM7處理器采用三級流水線。“ PC指向的是下一條要執行的指令”,這句話不對。在ARM處理器中將PC程序計數器定義到R15寄存器,無論處理器處于何種狀態,PC總是指向“正在取值”指令的地址,一般來說,人們習慣性的約定將“正在執行的指令作為參考點”,成為當前第一條指令,那么 PC 總是指向隨

17、后的第三條指令,或者說PC 總是指向當前正在執行的指令地址再加上2 條指令的地址,即指向正在執行指令的下下一條指令,而不是指向下一條要執行的指令。5.簡述ARM處理器中在線仿真器模塊EmbeddedICE-RT的作用。答: ARM處理器中的在線仿真器模塊EmbeddedICE-RT,一般還帶有嵌入式宏跟蹤單元模塊ETM ,實現ARM處理器的在線調試和運行過程的跟蹤功能;并且具有諸多ICE功能,例如實時尋址、斷點、單步、對ARMCPU 的完全控制、對ASIC 系統其余部分的訪問,以及對主機顯示器外設訪問、鍵盤輸入和磁盤存儲。6. ARM 處理器的工作狀態分為哪二種?ARM 處理器又是怎么定義和標

18、志的?答: ARM 處理器的工作狀態分為ARM 狀態和 Thumb狀態,這兩種狀態有程序狀態字CPSR 中 T 標志位確定,為0 時處理器工作在ARM 狀態,為 1 時處理器工作在Thumb狀態。7.ARM7TDMI支持哪幾種指令集,各有什么特點?答: ARM7TDMI處理器內核包含2 套指令系統,分別為ARM指令集和Thumb指令.集,兩種指令集的特點是:ARM 指令集:處理器執行32 位字對齊方式的ARM 指令,每條ARM 指令長度為32位,指令的功能強大。Thumb指令集:處理器執行16 位字對齊方式的Thumb指令,每條Thumb指令長度為 16 位,是 ARM 指令功能的子集。8.

19、ARM7 處理器有哪些工作模式?如何實現不同模式之間的切換?舉例說明。答: ARM 處理器供支持7 種工作模式,分別為:用戶模式( usr );快速中斷模式 ( fiq );外部中斷模式(irq );管理模式(svc);數據訪問終止模式(abt );系統模式(sys);未定義指令中止模式(und )。在 7 中模式中,除用戶模式外,其他的6 種模式稱為特權模式,特權模式可以自由的切換處理器模式,而用戶模式不能直接切換到別的模式。特權模式下通過修改當前程序狀態寄存器CPSR 中控制位M4:0 的值,來改變處理器的運行模式。例如MSRCPSR_c, # (NoInt |SVC32Mode) / 從

20、系統模式切換到管理模式MSRCPSR_c, # (NoInt |SYS32Mode) / 從管理模式切換到系統模式9.描述 ARM7處理器的內部寄存器結構,并分別說明快速中斷FIQ 有何特點?答: ARM7 微處理器共有37 個 32 位寄存器,其中31 個為通用寄存器,6 個為狀態寄存器。 37 個寄存器定義如下:31個 通 用 寄 存 器 : R0R15、 R8_fiq 、R9_fiq 、R10_fiq 、R11_fiq、R12_fiq 、R13_fiq 、R14_fiq 、 R13_svc 、 R14_svc 、 R13_abt 、 R14_abt 、 R13_und 、R14_und

21、、 R13_irq 、R14_irq 。6個狀態寄存器:CPSR 、 SPSR_abt、 SPSR_svc、 SPSR_irq、 SPSR_fiq 、.SPSR_und 。快速中斷 FIQ ,適用于對一個突發事件的快速響應,在ARM 狀態中,快中斷有8 個專用的寄存器, 可以縮短狀態切換時需要的時間。當 CPSR 中相應的 F 位清零, 快速中斷被使能。10. 什么是中斷延時?在實時系統中如何計算中斷延時時間?答:中斷延時是系統響應一個中斷所需要的時間,即從外部中斷請求信號發出到執行對應的中斷服務程序ISR 的第 1 條指令所需要的時間。FIQ 的中斷延時計算,當FIQ 使能時,最壞的延時包括

22、:a) Tsyncmax: 請求通過同步器的最長時間,為兩個處理器周期。b)Tldm :最長執行時間,最長為20 個周期。c) Texc:數據中止異常進入時間,為三個周期。d) Tfiq : FIQ 進入時間,為兩個周期總的延時可為 27 個周期。11. 在內存的數據存儲過程中,什么是“字對齊”和“半字對齊”?答:在內存數據存儲過程中,一般分為小端存儲格式和大端存儲格式。下面以小端存儲格式為例來說明字對齊和半字對齊:在小端存儲格式中,對于地址為A 的字單元,其中字節的低位字節到高位字節地址順序為 A ,A+1, A+2 , A+3 ;對于地址為A 的半字單元,其中字節的低位字節到高位字節地址順

23、序為A , A+1 。12. 簡述程序計數器( PC)在處理器工作中的作用。答:在 ARM 處理器中將PC 程序計數器定義到R15 寄存器,無論處理器處于何種狀態,PC 總是指向“正在取值”指令的地址。.13. 簡述 ARM 處理器中的返回鏈接寄存器( LR )在處理器工作中的作用。答:鏈接寄存器LR 用于保存子程序返回地址或者異常處理程序的返回地址,LR 寄存器一共有 6 個,其中子程序的返回地址使用一個R14 ,每種異常模式各自有一個專用的LR 寄存器用于保存異常處理程序的返回地址,它們分別為R14_fiq 、 R14_svc 、 R14_abt 、R14_und 、 R14_irq 。1

24、4. 分別簡述 ARM 處理器中的 CPSR 、 SPSR 在處理器工作中的作用。答: ARM 內核包含1 個 CPSR 和 5 個僅供異常處理模式使用的SPSR。由于所有模式全部共享一個程序狀態寄存器CPSR,因此處理器所有的狀態全部都保存在 CPSR 中,也就是ARM 內核是通過CPSR 來監視和控制內部操作的。每種異常模式都有一個對應的程序狀態保存寄存器SPSR,用于保存任務在異常發生之前的 CPSR 狀態的當前值。15.結合 CPSR 的結構,說明程序狀態字中各個bit位的作用。3130292827876543210NZCV-IFTM4M3M2M1M0答:條件代碼標志(共計4bit )

25、含義如下:N :運算結果的最高位反映在該標志位。對于有符號二進制補碼,結果為負數時N=1 ,結果為正數或零時N=0 ;Z :指令結果為0 時 Z=1 (通常表示比較結果“相等”),否則Z=0 ;C:當進行加法運算,最高位產生進位時C=1 ,否則C=0 。當進行減法運算(包括CMP指令 ),最高位產生借位時C=0 ,否則 C=1 。V:當進行加法 / 減法運算,并且發生有符號溢出時V=1 ,否則V=0 ,其它指令V 不變。. CPSR 的最低 8 位為控制位,控制了處理器的工作方式。當發生異常時,這些位被硬件改變。當處理器處于一個特權模式時,可用軟件操作這些位。它們分別是:中斷禁止位包括I和 F

26、位:當 I 位置位時, IRQ 中斷被禁止;當 F 位置位時, FIQ 中斷被禁止。T 位反映了處理器的當前狀態:當位 T=1 時,處理器正在Thumb狀態下運行;當位 T=0 時,處理器正在ARM 狀態下運行。模式位包括M4:0 共計 5bit ,這些位決定處理器的操作模式16. 簡述 ARM7TDMI 內部有哪些寄存器及特點。答: ARM7 微處理器共有37 個 32 位寄存器,其中31 個為通用寄存器,6 個為狀態寄存器。 37 個寄存器定義如下:31個 通 用 寄 存 器 : R0R15、 R8_fiq 、R9_fiq 、R10_fiq 、R11_fiq、R12_fiq 、R13_fi

27、q 、 R14_fiq 、 R13_svc 、 R14_svc 、 R13_abt 、 R14_abt 、 R13_und 、R14_und 、 R13_irq 、R14_irq 。6個狀態寄存器:CPSR 、 SPSR_abt、 SPSR_svc、 SPSR_irq、 SPSR_fiq 、SPSR_und 。特點:在 ARM 狀態中, R0R7是通用寄存器,是不分組寄存器;R8R14 ,SPSR 根據模式進行分組的寄存器;R15 是程序計數器,不進行分組;CPSR 是狀態寄存器,不進行分組。17.什么是 ARM處理器的異常?ARM處理器中有哪幾種異常?答:在ARM中,異常是一些事件,這些事件

28、能導致正常的程序執行流程被暫時地停.止,而進入到該事件對應的處理器異常模式并對該事件進行處理。ARM 中定義了復位、未定義指令、SWI(軟中斷)、預取指終止、預取數終止、irq 以及 fiq 等種異常,與之對應地ARM7 處理器有5 種異常模式。18. 分別簡述 ARM7 的 IRQ 、FIQ 異常處理過程,說明其異常向量地址。答: IRQ 異常的處理流程如下: 進入 IRQ 異常模式。程序運行在用戶模式下,當一個IRQ 異常中斷發生時,內核切換到“中斷模式”,并自動的做如下處理。將異常處理程序的返回地址保存到異常模式下的R14(R14_irq) 中。用戶模式的CPSR 將被保存到中斷異常模式

29、SPSR_irq 中。修改 CPSR,將 I 置 1 ,禁止新的IRQ 中斷產生,但不改變F 值,不限制FIQ 中斷發生,清零T 標志位,進入ARM 狀態,修改模式位,設置為IRQ 模式。將 IRQ 異常中斷入口向量地址0x00000018送入 PC。在 IRQ 模式下,用戶模式的R13 和 R14 將不能操作,而R13_irq和 R14_irq 可以操作,即 R13_irq保存 IRQ 模式下的地址指針,R14_irq 保存了“ IRQ 中斷返回地址 +4 ”。退出IRQ異常模式。中斷服務程序執行完畢后,使用一條指令將返回地址送入PC,即可實現IRQ 中斷返回,在返回過程中處理器會自動將SP

30、SR_irq中的內容復制到CPSR,恢復中斷前的處理器狀態。FIQ 異常進入與退出的流程與IRQ 類似,其異常入口地址是0x0000001C。19. ARM7 處理器對哪些異常可以進行屏蔽?如何屏蔽或允許?答: FIQ 和 IRQ 可以被屏蔽。 將 CPSR 的標志位I 和 F 分別置位對應著IRQ 和 FIQ 中斷被禁止,清零這些位又可以將其使能。20.說明 CPSR 中 T 位的作用, ARM7處理器如何切換狀態?.答: CPSR 中 T 標志位為0 時處理器工作在ARM 狀態,為 1 時處理器工作在Thumb狀態。由于 ARM 采用字對齊或者半字對齊的存儲模式,這意味著地址的最低一個比特

31、位就不會在尋址過程中使用到。故,使用地址的最低位進行區分,以何種模式取值和執行指令,當地址地位為1 時,置 CPSR 的 T 位為 1 ,反之,置位為0 。21.大 端 存 儲 模 式 和 小 端 存 儲 模 式 的 含 義 是 什 么 ? 畫 出 在0x2000單 元 中 存 儲0x87654321數據的大端存儲模式和小端存儲模式。答:大端存儲模式:在大端存儲格式中,對于地址為A 的字單元,其中字節的低位字節到高位字節地址順序為A+3 ,A+2 , A+1 , A;對于地址為A 的半字單元,其中字節的低位字節到高位字節地址順序為A+1 , A 。即數據的低字節存放在高地址中的順序進行存儲。小

32、端存儲模式:在小端存儲格式中,對于地址為A 的字單元,其中字節的低位字節到高位字節地址順序為A , A+1, A+2 , A+3 ;對于地址為A 的半字單元,其中字節的低位字節到高位字節地址順序為A , A+1 。即數據的高字節存放在高地址中的順序進行存儲。0x210x20030x210x20000x430x430x650x650x870x20000x870x2003上圖中,左側為大端存儲模式,右側為小端存儲模式。.習題 31 、 ARM7TDMI支持哪幾種指令集,各有什么特點?答:支持ARM 指令集和Thumb指令集,各自特點是ARM 指令集的指令是32位,執行效率高、功能全,每條指令可以根

33、據條件執行,但是代碼密度低。Thumb指令集指令是16 位,在功能上是ARM 指令集的子集,功能并沒有降低。2 、 ARM指令的尋址方式有幾種?并指出下列指令中的尋址方式。答: ARM指令的尋址方式有8 種,分別為立即尋址、寄存器尋址、寄存器移位尋址、寄存器間接尋址、基址變址尋址、相對尋址、多寄存器尋址、堆棧尋址。 SUBR0, R1, R2寄存器尋址 LDRR0, R2寄存器間接尋址 MVNR0, #0x0F2立即尋址LDMIAR0,R1-R5多寄存器尋址 STRR2, R4, #0x02!基址變址尋址 LDRR1, R2, R3基址變址尋址 MOVR1, R1, ROR #2寄存器移位尋址

34、 LDRR1, R3, #0x04基址變址尋址3 、 簡述 ARM指令集中第2 個操作數( operand2)的三種形式。答: 常數表達方式。該常數必須對應8 位位圖,即常數是由一個8 位的常數循環右移偶數位得到。例如:MOVR2 ,#100 ; 寄存器方式。Operand2是 Rm 寄存器方式,在寄存器方式下操作數即位寄存器中的數值。例如:SUB R0 ,R1 , R2; 寄存器移位方式。Rm , shift表示將寄存器的移位結果作為操作數,但Rm.值保持不變。例如:MOVR0, R1 , RRX;將 R1 帶擴展的循環右移1 位,存入 R0中。4 、 指出下列指令是否正確,若不正確請說明原

35、因。 MOVSR1, 101不正確,立即尋址方式應該是#101 MVNR1, #0x10F正確 STMDAR11, R2-R8!不正確,不能同時存儲在R2 和 R8 中 ADDR0!, R2, #4正確 LDRR4, R5!不正確, LDR 是存儲到單個寄存器的加載指令,而這個是兩個存儲器都進行存儲,應該為LDRR4, R5 MRSPC, CPSR不正確 MRS 是將 CPSR 傳送到通用寄存器中,但這里的通用寄存器不包括R15 ,即 PC LDMFDSR0!, R5-R8, R2正確 ADDR3, R3, R7不正確, ADD 指令不能訪問存儲器(9) LDRR11, R15 , R8 !正

36、確(10) BXSR0正確5 、 何謂 ARM指令的條件碼?默認的條件碼是什么?舉例說明ARM指令的條件碼對指令執行的影響。答:所謂的ARM指令的“條件執行”是指在指令碼中含有本條指令的執行條件,當 CPSR 中的條件碼標志滿足時,處理器執行本條指令,否則本條指令不執行。默認是無條件執行。比如執行指令“ANDEQR2 , R1 , R3 ”時,如果CPSR 中的Z=1時,執行R2=R1&R3,否則不執行該指令。.6 、 解釋“滿堆棧”、“空堆棧”、“遞增堆棧”和“遞減堆棧”? ARM指令系統中是如何支持的?答:滿堆棧:堆棧指針SP 指向最后壓入的堆棧有效數據項。空堆棧:堆棧指針SP 指

37、向下一個待壓入數據的空位置。遞增堆棧:向高地址方向生長。遞減堆棧:向低地址方向生長。滿遞增:堆棧向上增長,SP 指向內含有效數據項的最高棧單元。指令如LDMFA 、STMFA等;空遞增:堆棧向上增長,SP 指向堆棧上的第一個空位置。指令如LDMEA 、 STMEA等;滿遞減:堆棧向下增長,SP 指向內含有效數據項的最低棧單元。指令如LDMFD 、STMFD等;空遞減:堆棧向下增長,SP 指向堆棧下的第一個空位置。指令如LDMED 、 STMED等。7 、 試說明 MOV指令、 LDR 加載指令和LDR 偽指令三者的區別。答: MOV指令是在寄存器間進行數據傳送,影響標志位。LDR 指令是將存儲

38、器中的數據按給定地址加載到寄存器中,不影響標志位。LDR 偽指令是可以在一個立即數前面加等號,把一個地址寫入某寄存器。8 、 解釋 B 指令、 BL 指令與 BX 指令的功能差別,并舉例說明其使用方法。答: B 指令是分支指令,BL 指令是帶鏈接的分支指令,BX 是帶狀態切換的分支指令。對于 B 指令“ B WAITA ”指跳轉至標號WAITA處開始執行, B 指令的跳轉范圍為±32M ,對于 BL 指令,實現程序跳轉, 并保持 PC 到鏈寄存器LR 中,跳轉范圍± 32M ,.舉例“ BL DELAY ”完成的跳轉至標號DELAY 處執行,并把PC-4 存入 LR。BX

39、指令,帶狀態切換的跳轉,比如“ BX R0 ”表示跳轉 R0 指定的地址開始執行,并查看R00位的值,如果是1,對 CPSR 的 T 位置位,解釋目標程序為Thumb 指令,如果是 0 ,對 CPSR 的 T 位清零,解釋目標程序為ARM 指令。9 、 分析下列兩段程序片斷的功能,試用類C 語言寫出其等價功能。程序片斷 1:程序片斷 2:CMPR0 , #10CMP R0, R1CMPNER1 , #20ADDHIR0,R0,#1ADDLSR1,R1,#1ADDNER0,R0,R1答:( 1) if(R0 > R1)( 2) if(R0 != 10)&&(R1 != 20

40、)R0+;RO = R0+R1;elseR1+;10 、 使用 ARM匯編指令的條件執行功能,試用匯編語言實現下列兩條C 代碼語句。 if(x = = y)a = b + c;elsea = b c; if(x = = y) && ( a = = b) c = c * 2+b;( 2) LDR R0,x LDR R1,y答:( 1)LDRR0,xLDRR1,yLDRR2,bLDRR3,cCMPR0,R1ADDEQR4,R2,R3SUBNER4,R2,R3LDRR2, aLDRR3, bLDRR4, cCMPR0, R1CMPEQR2,R3,MULEQR4, R4, #2ADD

41、R4 , R4, R3STR c,R4STRa,R4.11 、下列代碼段是實現開 IRQ中斷和關 IRQ 中斷功能,試補齊空白處內容。MRSR0, CPSR MRSR1 ,CPSRBICR1,R0 , 0x80ORRR1, R1,#0x80MSRCPSR_c, R1MSRCPSR_c, R112 、 如果ARM處理器中各寄存器及存儲單元參數如下圖所示,試寫出執行下列指令后,各寄存器及存儲單元中內容變化情況。 STMIAR13!,R0-R3 LDMDBR13, R0-R3答:(1), R13 R0(2), R0 R13,R1 R1+4;R13+4 R1R1 R13,R1 R1+4;R13+8 R

42、2R2 R13,R1 R1+4;R13+12 R3R3 R13,R1 R1+4;習題 41. 什么是計算機語言?一般可以分為哪幾種?各自的優缺點?答:計算機語言是計算機可以識別、理解的語言。計算機語言分為三類:機器語言,匯編語言和高級語言。機器語言( MachineLanguage)是由 0 和 1 二進制代碼表示和存儲的指令與數據。它的特點是能被機器直接識別與執行;程序所占內存空間較少。其缺點是難認、難記、難編、易錯。.匯編語言是一種面向物理層操作的計算機語言。不同的處理器類型,具有不同的匯編語言。使用匯編語言編寫程序能夠直接利用硬件系統的特性(如寄存器、標志、中斷系統等) ,可直接對位、字節、字寄存器或存儲單元、I/O 端口進行處理,同時也能直接使用 CPU 指令系統提供的各種尋址方式,編制出高質量的程序,這樣的程序不但占用內存空間少,而且執行速度快。缺點:由于匯編語言不直接支持復雜的抽象數據類型,在描述目標系統模型時,需要程序員自己組織各種抽象數據類型的存儲方式,使得匯編語言程序設計較高級語言困難的多,需要較多的軟件開發時間,也增加了程序設計過程中出錯的可能性,程序維護也麻煩。高級語言( High Level Language)是脫離具體機器 (即獨立于機器) 的通用語言,不依賴于特定計算機的結構與指令系統。與目標系統的數學模型之間有著良

溫馨提示

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

評論

0/150

提交評論