




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
《嵌入式ARM基礎(chǔ)》習(xí)題
第一章
什么是嵌入式操作系統(tǒng)
答:嵌入式系統(tǒng)是以應(yīng)用為中心,以計算機技術(shù)為基礎(chǔ),軟/硬件可裁減,功能???/p>
靠性,成本,體積,功耗要求嚴(yán)格的專用計算機系統(tǒng)。
與通用計算機相比,嵌入式系統(tǒng)有哪些特點
答(1).嵌入式系統(tǒng)通常是面向特定應(yīng)用的;
(2).嵌入式系統(tǒng)是將計算機技術(shù),半導(dǎo)體技術(shù)和電子技術(shù)與各行各業(yè)的具體應(yīng)用相結(jié)合的后
的產(chǎn)物,是一門綜合技術(shù)學(xué)科;
(3).嵌入式系統(tǒng)和具體應(yīng)用有機的結(jié)合在一起,它的升級換代也是和具體產(chǎn)品同步進行的,
因此嵌入式產(chǎn)品一旦進入市場,就有較長的生命周期;
(4).為了提高執(zhí)行速度和可靠性,嵌入式系統(tǒng)中的軟件一般都固化在存儲器芯片或單片機本
身中,而不是存儲于磁盤等載體中;
(5).嵌入式系統(tǒng)本身不具有自主開發(fā)能力,即使設(shè)計完成以后用戶通常也不能對其中的程序
功能進行修改,必須有一套開發(fā)工具和環(huán)境才能進行開發(fā)。
根據(jù)嵌入式的復(fù)雜程度,嵌入式系統(tǒng)可分為哪4類
答:1.單個微處理器;
2.嵌入式處理器可擴展系統(tǒng);
3.復(fù)雜的嵌入式系統(tǒng);
4.在制造或過程控制中使用的計算機系統(tǒng);
舉例介紹嵌入式處理器有哪幾類
答:1.嵌入式微處理器(EmbeddedMicroprocessorUnit,EMPU);
2.嵌入式微控制器;(EmbeddedMicrocontrolIerUnit,EMCU)
3.嵌入式DSP處理器(EmbeddedDigitalSignaIProcessor,EDSP);
4.嵌入式片上系統(tǒng)(EmbeddedSystemonChip,EsoC);
從硬件系統(tǒng)來看,嵌入式系統(tǒng)由哪幾個部分組成畫出簡圖。
電源模塊
Flash
微處埋器
MPU
時鐘
RAM
復(fù)位
ROM
外設(shè)
USB
LCD
keyboard
other
.嵌入式系統(tǒng)中,非數(shù)值數(shù)據(jù)編碼主要包括哪幾種
答:1.字符表示;
2.漢字編碼;
3.語音編碼;
若在嵌入式系統(tǒng)采用CRC碼進行信息傳輸,接收端接收到的碼字為131011,已知生成多項
式g(x)=1011,問收到的碼字是否正確出錯的是哪一位
解:收到的碼字不正確;出錯的是第4位。
方法:(將收到的碼字與生成多項式相除,所得結(jié)果為0011。對“CRC出錯模式(G(x)=1011)n
可查找出出錯位為第四位)。
第三章
編寫1+2+3+***+100的匯編程序c
AREAEXAMPLE1,CODE,READONLY;定義一個代碼段,名稱為
;EXAMPLE1
ENTRY;入口
MOVRO,#0;給R0賦值為0
MOVR1,#0;用R1來存放「100的總和,初
;始化為0
STARTADDRO,RO,#1;用來判斷終止的,每次加1
ADDR1,R1.R0;從1加到100
CMPRO,#100;執(zhí)行R0-100的操作,但不保存,
;只影響CPSR的值
BLTSTART;帶符號數(shù)小于時跳轉(zhuǎn)到START處
;執(zhí)行
STOP
BSTOP;死循環(huán)
END
如何實現(xiàn)128位數(shù)的減法,請舉例說明。
AREAEXAMPLE2,CODE,READONLY
ENTRY
START
SUBSR5,R5,R9
SBCSR4,R4,R8
SBCSR3,R3,R7
SBCSR2,R2,R6
STOP
BSTOP
END
將存儲器中起始地址M1處的4個字?jǐn)?shù)據(jù)移動到M2處。
AREAEXAMPLE2,CODE,READONLY
ENTRY
LDRRO,=0X10;把地址0X10賦給RO
LDRR5,-0X20;把地址0X20賦給R5
START
STMIARO,{R1-R4);把2到R2的值依次賦給RO為首地址
;的內(nèi)存單元中,每次賦完一次值,R0自
;動加1
LDMIAR5,(R1-R4J;把國到R4的值依次賦給以R5為首地
;址的內(nèi)存單元中,R5每次自動加1
STOP
BSTOP;死循環(huán)
END
參考CPSR寄存器中各標(biāo)志位的含義,使處理器處于系統(tǒng)模式。
AREAEXAMPLE2,CODE,READONLY
ENTRY
START
MOVRO,#0X1F;給川賦值,2蝌為11111
MSRCPSR_c,RO;把CPSR的條件位置1
STOP
BSTOP:死循環(huán)
END
用跳轉(zhuǎn)指令實現(xiàn)兩段程序間的來回切換。
AREAEXAMPLES,CODE,READONLY
ENTRY
BLa;跳到a對RO,R1,賦值
START
CMPRO,R1;比較RO,R1的值
BNEb;不等是跳轉(zhuǎn)到b
BEQSTOP;相等時跳轉(zhuǎn)到STOP
a
MOVRO,#3;對RO,R1賦值
MOVR1,#2
MOVR15,R14:返回
b
ADDR1,R1,#1;R1自加1
BSTART;跳轉(zhuǎn)到START
STOP
BSTOP;死循環(huán)
END
第四章
什么是偽指令和偽操作在ARM匯編中有哪幾種偽指令
答:在ARM匯編語言程序中有些特殊助記符,這些助記符與一般指令的助記符的不同之
處在于沒有相對應(yīng)的操作碼或者機器碼,通常稱這些特殊指令助記符衛(wèi)偽指令,他們多完成的
操作成為偽操作;
在ARM匯編中,有如下幾種偽指令:
(1)符號定義偽指令;
(2)數(shù)據(jù)定義偽指令;
(3)匯編控制偽指令;
(4)信息報告?zhèn)沃噶睿?/p>
(5)宏指令及其他偽指令。
如何定義寄存器列表,試舉一個使用寄存器列表的例子,要求實現(xiàn)4個字的內(nèi)存復(fù)制。
答:AREAEXAMPLE1,CODE.READONLY
ENTRY
LDRRO,=OXFF:把地址OXFF賦給RO
LDRR5,=OXOF;把地址OXOF賦給R5
START
PBLOCKRLIST{R1-R4}:把R1-R4定義為PBLOCK
STMIARO,PBLOCK;把R1到R2的值依次賦給
;R0為首地址
;的內(nèi)存單元中,每次賦完一次
;值自動加1
LDMIAR5,PBLOCK;把2到R4的值依次賦給以R5
;為首地址的內(nèi)存單元中,R5每
;次自動加1
STOP
BSTOP;死循環(huán)
END
參考CPSR寄存器中各標(biāo)志位的含義,使處理器處于系統(tǒng)模式。
AREAEXAMPLE2,CODE,READONLY
ENTRY
START
MOVRO,#0x1F
MSRCPSR_o,RO
STOP
BSTOP
END
如何定義一個宏,宏與子程序的區(qū)別是什么
答:宏的格式為:
MARCO和MEND
[$標(biāo)號]宏名〔$參數(shù)1,$參數(shù)2…一]
指令序列
MEND
MARCO表示一個宏定義的開始,MEND表示一個宏的結(jié)束,MARCO和MEND前呼后應(yīng)可以
將一段代碼定義為一個整體,又稱宏,然后在程序中就可以在程序中通過宏的名稱及參數(shù)調(diào)用該
段代碼。
宏指令可以重復(fù)使用,這一點的使用方式與子程序有些相似,子程序可以節(jié)省存儲空間,提
供模塊化的程序設(shè)計。但使用子程序機構(gòu)時需要保存/恢復(fù)現(xiàn)場,從而增加了系統(tǒng)的開銷,因此,
在代碼傳遞的參數(shù)較多并且比較短時,可以使用宏代替子程序,宏在被調(diào)用的地方展開。
匯編中如何定義一個段,段有幾種屬性
答:AREA用于定義一個代碼段,數(shù)據(jù)段,或者特定屬性的段。
段的幾種屬性如下:
READONLY表示只讀屬性;
READWRITE表示本段可讀寫:
CODE定義代碼段;
DATA定義數(shù)據(jù)段;
ALIGN二表達式的對齊方式為2的表達式次方;;
COMMON:定義一個通用段,這個段不包含用戶代碼和數(shù)據(jù)。
在一個匯編源文件中如何包含另一個文件中的內(nèi)容
答:通??梢允褂肎ET/INCLUDE指令,在某源文件中定義一些宏指令,用MAP和FIELD
定義結(jié)構(gòu)化數(shù)據(jù)結(jié)構(gòu)類型,用EQU定義常量的符號名稱,然后用GET/INCLUDE將這個源文件
包含到其他源文件中。
分別編寫一個函數(shù)和一個宏,實現(xiàn)字符串的復(fù)制.
MACRO
COPY$P1,$P2;定義一個宏
$P1DCB"HELLO";分配一個字節(jié)的空間,并初始化為一個
;字符串
$P2B"WORLD!";同上
LDRRO,=$P1的首地址加載到RO
LDRR6,=$P2;把P2的首地址加載到R1
LDRIARO,[R1-R5];把R0每載一次,自加一次
;實現(xiàn)把P1加載到RO
STRIAR6,[R1-R5];同理(上)
MEND
AREACOPY,CODE,READONLY
ENTRY
START
MACROSTR1,STR2;調(diào)用宏
BSTART;死循環(huán)
END
解釋歸納變量,同族的歸納變量及基本的歸納變量。
4.8試將下面這段C代碼翻譯為等效的匯編代碼:
intFactorial(int)要有以下幾個特點:具
有大量的指令和尋址方式;
大多數(shù)程序只使用少量的指令就能夠運行。
絕大多數(shù)嵌入式處理器:精簡指令系統(tǒng)計算機(RISC)有一個精簡的指令系統(tǒng)。從而提高了微
理器的效率,但需要更復(fù)雜的外部程序,也就是把在處理器層沒有完成的工作放到了上層進行,
而處理器層少的這些成本可以用對物理器件速度的提高上去。RISC有下特點:
8/2原則:80%的程序只使用20$的指令;
采用Load/store指令模式,凡數(shù)據(jù)由外存到內(nèi)存、內(nèi)存到寄存器方向的流動統(tǒng)一用Load
指令,而對于反方向的操作,都用store;
用小指令集、多寄存器、指令執(zhí)行簡單快速;
統(tǒng)一用單周期指令,從根本上克服了CISC指令周期數(shù)有長有短、偶發(fā)性不確定、運行失常
的缺點。
(4)ARM7、ARM9內(nèi)核處理器各采用幾級流水線,分別是哪幾級流水線結(jié)構(gòu)
答:
ARM7TDMI采用三級流水線,分另為取指令、解碼指令和執(zhí)行操作。
ARM9TDMI采用5級流水線結(jié)構(gòu),分別為取指令、譯碼、執(zhí)行、存儲、寫操作五級。
(5)從內(nèi)部結(jié)構(gòu)及功能來看,ARN7、ARM9、Xscal內(nèi)核處理器各自有哪些不同,主要應(yīng)用
在哪些領(lǐng)域
答:
ARM7內(nèi)部結(jié)構(gòu)框圖,包括AddressRegister(地址寄存器)、AddressIncrementer(地址
累加器)、ResisterBank(寄存器塊)、Booth5sMultiplier(乘法器)、32位ALU單元、
Write/ReadDataRegister(讀/寫數(shù)據(jù)寄存器)、邏輯控制單元等部分。沒有內(nèi)存管理單片。
ARM9TDMI處理器內(nèi)核采用ARMV4T架構(gòu),增加了可用的存儲器寬度、指令存儲器接口以及
數(shù)據(jù)存儲器接口,可以支持16bitThumb指令集和32btiARM指令,ARN9作為高性能的32位
RISC處理器內(nèi)核,可以實現(xiàn)對指令和數(shù)據(jù)存儲器的同時訪問。如圖2~9所示為ARM9功能結(jié)
構(gòu)圖。主要包含以下結(jié)構(gòu):
16KB指令和16KB數(shù)據(jù)緩存;
存儲管理單元MMU,這有別于ARM7TDMI;
一個AMBA(AdvancedMicroprocessorBusArchitecture)總線接口;
一個EmbeddedTraceMacrocelI(ETM)接口。
有內(nèi)存管理單元,便于移植操作系統(tǒng)。
第3章
(1)試列舉ARM處理器工作模式,各工作模式主要完成怎么樣的功能
答:
User:用戶模式。絕大部分的任務(wù)執(zhí)行都在這種操作模式下,此為正常的程序執(zhí)行模式。
FIQ:快速中斷模式。當(dāng)一個高優(yōu)先級中斷產(chǎn)生時,系統(tǒng)將會進入這種操作模式,用于高速
數(shù)據(jù)傳輸和通道處理,由FIQ請求位發(fā)出請求信號。IRQ:
普通中斷模式。當(dāng)一個低優(yōu)先級中斷產(chǎn)生時將會進入這種操作模式,本模式用于通常的中斷
處理,由IRQ請求位發(fā)出請求信號。
Supervisor:管理模式。當(dāng)復(fù)位或軟中斷指令執(zhí)行時將會進入這種操作模式,是一種可以供操
作系統(tǒng)使用的保護模式。Abort:中止模
式。當(dāng)存取異常時將會進入這種操作模式,此模式可以被用作虛擬存儲及存儲保護,可
由ABORT請求位發(fā)出請求信號。Undef:未定義模式。當(dāng)執(zhí)
行未定義指令時會進入這種操作模式,多被用于軟件仿真硬件協(xié)處理器時。
(2)試列舉ARM處理器各寄存器功能,在不同的模式下可以訪問哪些寄存器
答:
1個寄存器用作PC(ProgramCounter),即程序寄存器,指向程序執(zhí)行位置。
1個寄存器用作CPSR(CurrentProgramStatusRegister),即當(dāng)前狀態(tài)寄存器,保存當(dāng)前
CPU狀態(tài)。
5個寄存器用作SPSR(SavedProgramStatusRegisters),備份不同模式下CPSR的值。
30個寄存器作為通用寄存器,存儲數(shù)據(jù)使用。
(3)試說明CPSR寄存器各位功能。
答:
標(biāo)志位含義
NN=1表示運算的結(jié)果為負數(shù);N=0表示運算的結(jié)果為正數(shù)或零
zZ=1表示運算的結(jié)果為零;z=o表示運算的結(jié)果為非零
C0=1表示有進位,c=o表示沒有進位
VV=1表示符號位溢出,v=o表示結(jié)果沒有溢出
0在ARMvTE/J架構(gòu)支持,指示DSP指令是否溢出
J僅ARM5TE/J架構(gòu)支持,J=1表示處理器處于Jazelle狀態(tài)
I1=1表示禁止IRQ
FF=1表示禁止FlQ
T僅ARMxT架構(gòu)支持,T=0表示處理器處于ARM狀態(tài),T=1表示處理器處于Thumb狀態(tài)
(4)試列出ARM處理器常見中斷方式,并說明ARM處理器在響應(yīng)這些中斷時要經(jīng)歷哪些主
要步驟
答:
異常類型具體含義
FIQ當(dāng)處理器的快速中斷請求引腳有效,且CPSR中的F位為0時,產(chǎn)生FIQ異常
IRQ當(dāng)處理器的外部中斷請求引腳有效,且CPSR中的I位為0時,產(chǎn)生IRQ異常
異常中斷當(dāng)外部的ABORT輸入產(chǎn)生時,發(fā)生異常斷
軟件中斷該異常由執(zhí)行SWI指令產(chǎn)生,可用于用戶模式下的程序調(diào)用特權(quán)操作指令,可使
用該異常機制實現(xiàn)系統(tǒng)功能調(diào)用
復(fù)位當(dāng)處理器的復(fù)位電平有效時,產(chǎn)生復(fù)位異常,程序跳轉(zhuǎn)到復(fù)位異常處理程序處執(zhí)行未
定義指令當(dāng)ARM處理器或協(xié)處理器遇到不能處理的指令時,產(chǎn)生未定義指令異常??墒褂?/p>
該異常機制進行軟件仿真
ARM處理異常時,將立即通過備份寄存器保存當(dāng)前CPU的狀態(tài)。PC和CPSR寄存器中的內(nèi)容
被分別拷貝到R14和SPSR中,PC和CPSR中的模式位M[0:4]根據(jù)異常類型被強制改變。
在異常中斷處理中,如果要禁止其它難以管理異常的嵌套,可以置位中斷標(biāo)志位禁止再次中斷請
求。在需要重復(fù)進入中斷處理程序的情況下,R14和SPSR應(yīng)該在中斷被使能之前保存到主存
儲的堆棧中;當(dāng)傳送SPSR寄存器到堆?;蛘邚亩褩魉蜁r,需要注意的是必須傳送整個字
(32位)。當(dāng)多個異常同時產(chǎn)生時,優(yōu)先級決定異常響應(yīng)的順序。
異常處理完畢之后,ARM微處理器將連接寄存器LR的值減去相應(yīng)的偏移量后送到PC中,同
時將SPSR復(fù)制回CPSR中,若在進入異常處理時設(shè)置了中斷禁止位,要在此清除。
(5)為什么說ARM處理器是32位處理器,主要體現(xiàn)在哪些方面,其匯編采用怎樣的指令編
碼格式
答:數(shù)據(jù)線32位,寄存器32位,編碼32位。
(6)試列出16類指令條件域所對應(yīng)的CPSR寄存器相應(yīng)位狀態(tài)。
答:
條件碼助記符后綴標(biāo)志含義
0000EQZ置位相等
0001NEZ清零不相等
0010CSC置位無符號數(shù)大于或等于
0011CCC清零無符號數(shù)小于
0100MlN置位負數(shù)
0101PLN清零正數(shù)或零
0110VSV置位溢出
0111VCV清零未溢出
1000HIC置位Z清零無符號數(shù)大于
1001LSC清零Z置位無符號數(shù)小于或等于
1010GEN等于V帶符號數(shù)大于或等于
1011LTN不等于V帶符號數(shù)小于
1100GTZ清零且(N等于V)帶符號數(shù)大于
1101LEZ置位或(N不等于V)帶符號數(shù)小于或等于
1110AL忽略無條件執(zhí)行
(7)ARM處理器主要有哪些類型的尋址方式,各有什么特點
答:
立即尋址
寄存器尋址
基地址變址尋址
寄存器偏移尋址
寄存器間接尋址
多寄存器尋址
(8)ARM指令和偽指令主要功能是什么在ARM處理器中,有哪些類型的ARM指令,試舉例
說明相應(yīng)指令編碼格式,在ARM匯編程序設(shè)計時,有哪些主要類型的偽指令,試舉例說明各
類偽指令功能。
答:
ARM指令:指示處理器如何工作。
偽指令:協(xié)助編譯器。
指令略。
(9)試用匯編程序?qū)崿F(xiàn)求兩個數(shù)中最大數(shù)。
答:
(10)試用匯編程序?qū)崿F(xiàn)1~100的加法運算。
答:
(11)試用匯編程序?qū)崿F(xiàn)10的階乘運算。
答:
(12)完成本章中所有源代碼編號及調(diào)試。
答:
第4章
(1)試列舉在進行嵌入式軟件開發(fā)時,ARM匯編語言多用來開發(fā)哪些類型的程序。
答:
Bootloader程序中多采用匯編程序和C語言匯合編程。操作系統(tǒng)中有少部分是匯編程序,
絕大部分采用C語言編寫,例如Linux內(nèi)核。
(2)在使用ADS平臺進行嵌入式應(yīng)用程序開發(fā)時,armasmxarmcc、armcppxarmlink主要
功能是什么,如果要編譯Thumb指令集程序,需要使用哪些命令。
答:armasm:
此命令用來編譯匯編程序。armcc:用
來編譯C程序。armcpp:用來編譯
C++程序。armlink:此命令用來鏈接
目標(biāo)文件。
(3)試編寫一段匯編程序,實現(xiàn)64位加法運算,并使用(2)中所列工具進行編譯鏈接,
生成可執(zhí)行二進制代碼。
答:
(4)在ARM應(yīng)用程序中,在存儲時可執(zhí)行文件主要分為哪幾個部分,在運行時又分成哪幾
個主要部分,各部分主要存儲形式和存儲內(nèi)容是什么
答:
圖4-3存儲態(tài)和運行態(tài)代碼分布
(5)使用平臺創(chuàng)建工程項目文件過程是什么,試安裝平臺創(chuàng)建一個工程項目,然后添加相
應(yīng)源代碼,使用AXD調(diào)試,寫出詳細操作步驟。
答:
(6)試編寫一段C語言與匯編程序的混合程序,在此匯編程序中,實現(xiàn)輸入的任意兩個數(shù)
的整數(shù)除法運算,在C文件中實現(xiàn)測試。
答:
(7)試編寫一段C語言與匯編程序的混合程序,在此匯編程序中,實現(xiàn)兩個64
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度生物輔導(dǎo)班協(xié)議書退費及生命科學(xué)啟蒙合同
- 百部的鑒定(中藥鑒定技術(shù))
- 2025年度無子女離婚協(xié)議書及子女未來婚嫁資金保障協(xié)議
- 2025年度國際金融業(yè)務(wù)境外勞務(wù)派遣與風(fēng)險控制協(xié)議
- 2025年度學(xué)生托管安全協(xié)議書及校園安全管理規(guī)范
- 2025年度房屋繼承權(quán)爭議調(diào)解與財產(chǎn)分割合同
- 《大學(xué)之道》教學(xué)設(shè)計 2024-2025學(xué)年統(tǒng)編版高中語文選擇性必修上冊
- 2 百分?jǐn)?shù)(二)成數(shù) 教學(xué)設(shè)計-2023-2024學(xué)年六年級下冊數(shù)學(xué)人教版
- 第15課《 白楊禮贊》教學(xué)設(shè)計 2024-2025學(xué)年統(tǒng)編版語文八年級上冊
- 2025年仿石材漆項目合作計劃書
- 火電廠各指標(biāo)指標(biāo)解析(最新版)
- 病毒性腦炎患者的護理查房ppt課件
- TPU材料項目可行性研究報告寫作參考范文
- 第二編 債權(quán)總論
- 試用期考核合格證明表
- 常見八種疾病
- 膠粘劑基礎(chǔ)知識及產(chǎn)品詳解(課堂PPT)
- 鐵路總公司近期處理的七起突出質(zhì)量問題的通報
- 常用洪水預(yù)報模型介紹
- 援外項目鋼結(jié)構(gòu)運輸包裝作業(yè)指導(dǎo)書(共13頁)
- 髖關(guān)節(jié)置換術(shù)男性患者留置尿管最佳時機探析和對策
評論
0/150
提交評論