- 相關(guān)推薦
2016年嵌入式系統(tǒng)復(fù)習(xí)試題及答案
一、填空題:
1、試列舉三種主流的嵌入式處理器:( ARM )、( MIPS )、(PowerPC)。
2、ARM處理器共有(37)個(gè)寄存器,其中包括(31個(gè)通用寄存器)和(6個(gè)狀態(tài)寄存器)。
3、寄存器R13在ARM指令中(堆棧指針SP )。R14也稱(chēng)(程序連接寄存器LR)在程序里的作用是(程序計(jì)數(shù)器PC的備份)。當(dāng)發(fā)生中斷或異常時(shí),對(duì)應(yīng)分組寄存器分別是(R14_svc、R14_irq、R14_fiq、R14_abt和R14_und用來(lái)保存R15的返回值)。
4、ARM微處理器支持兩種指令集:(ARM)和(Thumb)。
5、寄存器R15用作(程序計(jì)數(shù)器PC)。該寄存器在ARM狀態(tài)下,(位[1:0]為00),位[31:2]用于保存PC;在Thumb狀態(tài)下,(位[0]為0),位[31:1]用于保存PC。
6、CPSR用作( 狀態(tài)寄存器 ),CPSR可在任何運(yùn)行模式下被訪問(wèn)。每一種運(yùn)行模式下又都有一個(gè)專(zhuān)用的物理狀態(tài)寄存器,稱(chēng)為(程序狀態(tài)保存寄存器SPSR)。
7、Thumb狀態(tài)下的寄存器集是ARM狀態(tài)下寄存器集的一個(gè)子集,程序可以直接訪問(wèn)的通用寄存器是(R0—R7,PC,SP,LR,CPSR)。
8、ARM指令中條件執(zhí)行功能是通過(guò)( 指令中添加條件碼)來(lái)實(shí)現(xiàn)的,包含的條件碼位于指令的最高(四)位。
9、試列舉五種以上常見(jiàn)的嵌入式操作系統(tǒng):(μC/OS-II)、(Vxworks)、(WinCE)、(Linux/μCLinux)、(PalmOS)。
10、計(jì)算機(jī)結(jié)構(gòu)中,哈佛結(jié)構(gòu)和馮?諾依曼結(jié)構(gòu)的主要區(qū)別是(指令與數(shù)據(jù)分開(kāi)),ARM7采用(馮?諾依曼結(jié)構(gòu)),ARM9采用(哈佛結(jié)構(gòu))。
11、ARM處理器采用(Thumb指令)操作來(lái)訪問(wèn)SFR。
12、在ARM匯編語(yǔ)言程序設(shè)計(jì)中,語(yǔ)句一般是由(指令操作碼)、(指令的條件碼)、(目標(biāo)寄存器編碼)和(包含第一個(gè)操作數(shù)的寄存器編碼)組成。
二、名詞解釋?zhuān)?/strong>
ARM處理器:Advanced RISC Machine。先進(jìn)的RISC指令集處理器。
交叉編譯:在一種計(jì)算機(jī)環(huán)境中運(yùn)行的編譯程序,能編譯出在另外一種環(huán)境下運(yùn)行的代碼,這個(gè)編譯過(guò)程就叫交叉編譯。
異常:是指CPU在執(zhí)行指令時(shí)出現(xiàn)的錯(cuò)誤,即不正常的情況。異常是與當(dāng)前所執(zhí)行的程序有關(guān)的。如存取數(shù)據(jù)或指令錯(cuò)誤、計(jì)算結(jié)果溢出等。
大端格式:字?jǐn)?shù)據(jù)的高字節(jié)存儲(chǔ)在低地址中,而字?jǐn)?shù)據(jù)的低字節(jié)則存放在高地址中。
小端格式:低地址中存放的是字?jǐn)?shù)據(jù)的低字節(jié),高地址存放的是字?jǐn)?shù)據(jù)的高字節(jié)。
尋址方式:處理器根據(jù)指令中給出的(地址)信息,尋找操作數(shù)(物理地址)的方式。
嵌入式系統(tǒng):廣義上:凡是不用于通用目的的可編程計(jì)算機(jī)設(shè)備,就可以算是嵌入式計(jì)算機(jī)系統(tǒng)。狹義上而言,嵌入式系統(tǒng)是指以應(yīng)用為核心,以計(jì)算機(jī)技術(shù)為基礎(chǔ),軟硬件可裁剪,對(duì)功能、可靠性、成本、體積和功耗嚴(yán)格要求的專(zhuān)用計(jì)算機(jī)系統(tǒng)。
GNU:GNU(GNU’s Not Unix),它的目標(biāo)是建立可自由發(fā)布和可移植的類(lèi)Unix操作系統(tǒng)。
偽指令:是匯編語(yǔ)言程序里的特殊指令助記符,在匯編時(shí)被合適的機(jī)器指令替代。
偽操作:為匯編程序所用,在源程序進(jìn)行匯編時(shí)由匯編程序處理,只在匯編過(guò)程起作用,不參與程序運(yùn)行。
RTOS :實(shí)時(shí)系統(tǒng),能夠?qū)ν獠渴录龀黾皶r(shí)響應(yīng)的系統(tǒng)。
三、簡(jiǎn)答題:
1、 簡(jiǎn)述采用RISC架構(gòu)的ARM微處理器的特點(diǎn)。
a.采用固定長(zhǎng)度的指令格式,指令規(guī)整,簡(jiǎn)單,基本尋址2~3種
b.使用單周期指令,便于流水線操作
c.大量使用寄存器,提高指令的執(zhí)行效率
d.所有的指令都可以根據(jù)前面的執(zhí)行后,決定是否執(zhí)行從而提高指令的執(zhí)行效率
e.可以加載/存儲(chǔ)指令,批量傳輸數(shù)據(jù),以提高數(shù)據(jù)的傳輸效率
2、 選擇嵌入式微處理器時(shí),應(yīng)考慮那些因素?
調(diào)查市場(chǎng)上已有的CPU供應(yīng)商。
CPU的處理速度
技術(shù)指標(biāo)。
處理器的低功耗。
處理器的軟件支持工具。
處理器是否內(nèi)置調(diào)試工具。
處理器供應(yīng)商是否提供評(píng)估板
片內(nèi)存儲(chǔ)容量
3、 若允許FIQ、IRQ中斷,CPSR如何設(shè)置?
FIQ: CPSR[4:0]=0B10001 IRQ: CPSR[4:0]=0B10010
CPSR[5]=0
CPSR[6]=0
CPSR[7]=0
4、 舉例說(shuō)明ARM的各種尋址方式。
寄存器尋址:LDR R1,R2
寄存器間接尋址:LDR R1,[R2]
寄存器偏移尋址:LDR R1,[R2,-R4,LSL#3]
立即尋址:LDR,R3,#34
多寄存尋址:LDMIA R0,{R1,R3,R4,R5}
5、 對(duì)比說(shuō)明ADR、ADRL與LDR的區(qū)別與聯(lián)系。
ADR:小范圍的地址讀取偽指令。
ADRL:中等范圍的地址讀取偽指令。
LDR:大范圍的地址讀取偽指令。
ADR偽指令功能:將基于PC相對(duì)偏移的地址值或基于寄存器相對(duì)偏移的地址值讀取到寄存器中。
ADRL偽指令功能:將基于PC相對(duì)偏移的地址值或基于寄存器相對(duì)偏移的地址值讀取到寄存器中,比ADR偽指令可以讀取更大范圍的地址。
LDR偽指令功能:用于加載32位立即數(shù)或一個(gè)地址值到指定的寄存器。
6、 比較ARM920T和ARM720T的主要異同。
ARM9 5級(jí)流水線 獨(dú)立的指令總線哈佛結(jié)構(gòu)
ARM7 3級(jí)流水線 數(shù)據(jù)與指令一起 馮·諾依曼結(jié)構(gòu)
8、 簡(jiǎn)述S3C2410 Nand flash存儲(chǔ)器的啟動(dòng)過(guò)程。
(1)完成復(fù)位
(2)如果自動(dòng)啟動(dòng)模式使能,NAND Flash存儲(chǔ)器的前4KB自動(dòng)復(fù)制到Steppingstone內(nèi)部緩沖器中
(3)Steppingstone映射到nGCS0
(4)CPU在Steppingstone的4KB內(nèi)部緩沖器中開(kāi)始執(zhí)行啟動(dòng)代碼
9、 請(qǐng)從廣義和狹義兩個(gè)方面簡(jiǎn)述嵌入式系統(tǒng)的含義。
答案:嵌入式系統(tǒng):Embedded System
廣義上:凡是不用于通用目的的可編程計(jì)算機(jī)設(shè)備,就可以算是嵌入式計(jì)算機(jī)系統(tǒng)。
狹義上而言,嵌入式系統(tǒng)是指以應(yīng)用為核心,以計(jì)算機(jī)技術(shù)為基礎(chǔ),軟硬件可裁剪,對(duì)功能、可靠性、成本、體積和功耗嚴(yán)格要求的專(zhuān)用計(jì)算機(jī)系統(tǒng)。
10、簡(jiǎn)述Bootloader啟動(dòng)過(guò)程。
1、第一階段
(1)、基本的硬件設(shè)備初始化
(2)、為階段2代碼準(zhǔn)備RAM空間
(3)、拷貝階段2代碼到RAM空間
(4)、設(shè)置好堆棧
(5)、跳轉(zhuǎn)到階段2的C程序入口點(diǎn)
2、第二階段
(1)、初始化本階段要使用到的硬件
(2)、檢測(cè)系統(tǒng)內(nèi)存映射(memory map)
(3)、將kernel和根文件系統(tǒng)映像從flash讀到RAM空間
(4)、為kernel設(shè)置啟動(dòng)參數(shù)
(5)、調(diào)用內(nèi)核
12、ARM7指令是幾級(jí)流水線,各階級(jí)執(zhí)行什么操作?
ARM7的三級(jí)流水線
1取指:從程序存儲(chǔ)器中取指令,放入指令流水線。(占用存儲(chǔ)器訪問(wèn)操作)
2譯碼:指令譯碼。(占用譯碼邏輯)
3執(zhí)行:執(zhí)行指令/讀寫(xiě)REG。(占用ALU及數(shù)據(jù)路徑)
13、請(qǐng)簡(jiǎn)述嵌入式軟件Bootloader的兩種工作模式。
啟動(dòng)加載模式:?jiǎn)?dòng)加載模式稱(chēng)為“自舉”(Autonomous)模式。即Bootloader從目標(biāo)機(jī)上的某個(gè)固態(tài)存儲(chǔ)設(shè)備上將操作系統(tǒng)加載到 RAM 中運(yùn)行,整個(gè)過(guò)程并沒(méi)有用戶的介入。啟動(dòng)加載模式是 Bootloader的正常工作模式,在嵌入式產(chǎn)品發(fā)布的時(shí)侯,Bootloader必須工作在這種模式下。
下載模式:在這種模式下,目標(biāo)機(jī)上的Bootloader將通過(guò)串口連接或網(wǎng)絡(luò)連接等通信手段從主機(jī)下載文件。下載內(nèi)容及存儲(chǔ):主要是下載內(nèi)核映像和根文件系統(tǒng)映像等。從主機(jī)下載的文件通常首先被Bootloader保存到目標(biāo)機(jī)的RAM中,然后再被 Bootloader寫(xiě)到目標(biāo)機(jī)上的FLASH 類(lèi)固態(tài)存儲(chǔ)設(shè)備中。
14、寫(xiě)出不少于12類(lèi)嵌入式產(chǎn)品中的常用接口。
UART接口、SPI接口、I2C接口、ADC和觸摸屏接口、USB接口、以太網(wǎng)接口、外存接口、LCD接口、時(shí)鐘接口、PWM接口、中斷接口、JTAG接口、VGA接口、音頻接口
15、簡(jiǎn)述ARM9處理器的7種運(yùn)行模式。
1、用戶模式(usr):非特權(quán)模式,大部分任務(wù)執(zhí)行在這種模式。——正常程序執(zhí)行的模式
2、快速中斷模式(fiq):當(dāng)一個(gè)高優(yōu)先級(jí)(fast)中斷產(chǎn)生時(shí)將會(huì)進(jìn)入這種模式。——高速數(shù)據(jù)傳輸或通道處理
3、外部中斷模式(irq):當(dāng)一個(gè)低優(yōu)先級(jí)(normal)中斷產(chǎn)生時(shí)將會(huì)進(jìn)入這種模式。——通常的中斷處理
4、管理模式(svc):當(dāng)復(fù)位或軟中斷指令執(zhí)行時(shí)將會(huì)進(jìn)入這種模式。——供操作系統(tǒng)使用的一種保護(hù)模式
5、中止模式(abt):當(dāng)存取異常時(shí)將會(huì)進(jìn)入這種模式。——虛擬存儲(chǔ)及存儲(chǔ)保護(hù)
6、未定義模式(und):當(dāng)執(zhí)行未定義指令時(shí)會(huì)進(jìn)入這種模式——軟件仿真硬件協(xié)處理器
7、系統(tǒng)模式(sys):供需要訪問(wèn)系統(tǒng)資源的操作系統(tǒng)任務(wù)使用——特權(quán)級(jí)的操作系統(tǒng)任務(wù)
16、ARM9處理器的尋址方式有那些?
立即尋址、寄存器尋址、寄存器間接尋址、基址尋址、堆棧尋址 、塊拷貝尋址、相對(duì)尋址
17、ARM9有哪些處理器模式?哪些是特權(quán)模式?哪些是異常模式?
異常模式:除用戶模式、系統(tǒng)模式之外的五種模式稱(chēng)為異常模式。特點(diǎn):以各自的中斷或異常方式進(jìn)入,并且處理各自的中斷或異常。
特權(quán)模式:除用戶模式之外的工作模式又稱(chēng)為特權(quán)模式 特點(diǎn):應(yīng)用程序可以訪問(wèn)所有的系統(tǒng)資源,可以任意地進(jìn)行處理器模式的切換
18、ARM7在ARM狀態(tài)下有多少個(gè)寄存器?通常堆棧指針使用哪個(gè)寄存器?連接寄存器LR有什么功能?
有37個(gè)32位的寄存器其中31個(gè)為通用寄存器;6個(gè)為狀態(tài)寄存器。
R13:寄存器R13在ARM指令中常用作堆棧指針SP。而在Thumb指令集中,某些指令強(qiáng)制性的要求使用R13作為堆棧指針。
R14:寄存器R14也稱(chēng)作子程序鏈接寄存器(Subroutine Link Register)或鏈接寄存器LR。當(dāng)執(zhí)行BL子程序調(diào)用指令時(shí),R14中得到R15(程序計(jì)數(shù)器PC)的備份。其他情況下,R14用作通用寄存器。
19、見(jiàn)28
20、Linux的主要特點(diǎn)有那些?
開(kāi)放性、多用戶、多任務(wù)、良好的用戶界面、設(shè)備獨(dú)立性、豐富的網(wǎng)絡(luò)功能、可靠的安全系統(tǒng)、良好的可移植性。
21、常用的Bootloader有那些?
1、vivi
2、RedBoot
3、U-Boot
22、Makefile和Make各實(shí)現(xiàn)什么功能?
Makefile文件內(nèi)容 按照規(guī)則,對(duì)系統(tǒng)中本目錄下的文件(.c、.s、.o、.h、.lib等)根據(jù)相互關(guān)系和要求進(jìn)行組織,設(shè)定各自的編譯方法,指定所生成的目標(biāo)。 Makefile是一種文本格式文件。
Make是Makefile文件的解釋器
Make對(duì)Makefile文件解釋后,生成Linux的shell命令和gcc編譯命令,接著對(duì)命令執(zhí)行,最終生成目標(biāo)文件。
Makefile是工程系統(tǒng)編譯批處理文件。
23、Linux文件系統(tǒng)目錄樹(shù)結(jié)構(gòu)是怎樣的?
Linux文件系統(tǒng)是一個(gè)目錄樹(shù)結(jié)構(gòu),最上層是根目錄,其他的所有目錄都是從根目錄出發(fā)而生成的。Linux下,任何一個(gè)目錄都可以是一個(gè)分區(qū)。因此,在分區(qū)時(shí),必須將一個(gè)分區(qū)安裝在樹(shù)根下面。Linux不僅將分區(qū)安裝為一個(gè)目錄,而且還將所有的硬件設(shè)備都安裝成一個(gè)個(gè)設(shè)備文件。對(duì)設(shè)備的操作是通過(guò)文件的操作完成的。
24、CPSR各位的含義及作用。
31 30 29 28 27 … 8 7 6 5 4 3 2 1 0
N Z C V (保留) I F T M4 M3 M2 M1 M0
1、條件碼標(biāo)志位(保存ALU中的當(dāng)前操作信息)
N:正負(fù)號(hào)/大小 標(biāo)志位
Z:零標(biāo)志位
C:進(jìn)位/借位/移出位
V:溢出標(biāo)志位
2、控制位
I、F中斷控制位——控制允許和禁止中斷
T控制(標(biāo)志)位——反映處理器的運(yùn)行狀態(tài)
M控制位——決定了處理器的運(yùn)行模式
25、S3C2410存儲(chǔ)器組織及地址分配。
S3C2410X的存儲(chǔ)器管理器提供訪問(wèn)外部存儲(chǔ)器的所有控制信號(hào):26位地址信號(hào)、32位數(shù)據(jù)信號(hào)、8個(gè)片選信號(hào)、以及讀/寫(xiě)控制信號(hào)等。
S3C2410X的存儲(chǔ)空間分成8組,最大容量是1GB,bank0---bank5為固定128MB,bank6和bank7的容量可編程改變,可以是2、4、8、16、32、64、128MB,并且bank7的開(kāi)始地址與bank6的結(jié)束地址相連接,但是二者的容量必須相等。
bank0可以作為引導(dǎo)ROM,其數(shù)據(jù)線寬只能是16位和32位,復(fù)位時(shí)由OM0、OM1引腳確定;其它存儲(chǔ)器的數(shù)據(jù)線寬可以是8位、16位和32位。
S3C2410X的存儲(chǔ)器格式,可以編程設(shè)置為大端格式,也可以設(shè)置為小端格式。
26、ARM有哪兩種工作狀態(tài),怎樣有指令進(jìn)行切換?
從ARM狀態(tài)切換到Thumb狀態(tài)
有兩種情況ARM處理器自動(dòng)切換到Thumb狀態(tài)。
(1)執(zhí)行BX指令,當(dāng)操作數(shù)寄存器的位[0]為1時(shí),則微處理器從ARM狀態(tài)切換到Thumb狀態(tài)。此為主動(dòng)切換。
(2)當(dāng)處理器處于Thumb狀態(tài)時(shí)發(fā)生異常(如IRQ、FIQ等),處理完異常后,在異常處理返回時(shí),自動(dòng)切換到Thumb狀態(tài)。此為自動(dòng)切換。
從Thumb狀態(tài)切換到ARM狀態(tài)
有兩種情況ARM處理器自動(dòng)切換到Thumb狀態(tài)。
(1)執(zhí)行BX指令,當(dāng)操作數(shù)寄存器的位[0]為0時(shí),則微處理器從Thumb狀態(tài)切換到ARM狀態(tài)。
(2)當(dāng)處理器在Thumb狀態(tài)時(shí)發(fā)生異常(如IRQ、FIQ等),則處理器從Thumb狀態(tài)自動(dòng)切換到ARM狀態(tài)進(jìn)行異常處理
27、Linux常用命令。
ls---文件及子目錄名列表
cat---連續(xù)顯示
cd---改變工作目錄(目錄切換)
cp---復(fù)制文件和目錄
28、嵌入式處理器ARM7/9TDMI中TDMI的基本含義是什么?
ARM7TMDI是目前使用最廣泛的32位嵌入式RISC處理器,屬低端ARM處理器核。TDMI的基本含義為(對(duì)其它系列也適用):
T: 支持16位壓縮指令集Thumb,稱(chēng)為T(mén)變種
D: 支持片上Debug,稱(chēng)為D變種
M:內(nèi)嵌硬件乘法器 Multiplier,稱(chēng)為M變種
I: 嵌入式ICE,支持片上斷點(diǎn)和調(diào)試,稱(chēng)為I變種
29、S3C2410有那些數(shù)據(jù)通信接口?
UART接口 、SPI接口、IIC接口、JTAG接口、以太網(wǎng)接口、USB接口
四、編程題:
1、編寫(xiě)一個(gè)匯編程序,在ARM程序代碼中調(diào)用Thumb子程序,并返回ARM程序完成其功能。
CODE32
--------
BLX TSUB1
-------
CODE16
TSUB1
-------
BX R14
2、將存儲(chǔ)器中0x30000000開(kāi)始的200字節(jié)的數(shù)據(jù),傳送到地址從0x10000000開(kāi)始的某接口電路的存儲(chǔ)區(qū)域。
START
LDR R0,=0X30000000
LDR R1,=0X10000000
MOV R4,#0
LKM
LDRB R2,[R0],#1
STRB R2,[R1],#1
ADD R4,R4,#1
CMP R4,#200
BLNE LKM
END
3、編寫(xiě)一簡(jiǎn)單ARM匯編程序段,實(shí)現(xiàn)1+2+…+1000的累加運(yùn)算。
MOV R0,#0
MOV R1,#0
LKM
ADD R0,R0,#1
ADD R1,R1,R0
CMP R0,#1000
BLNE LKM
END
4、將內(nèi)存中從0x30000FFF開(kāi)始的100個(gè)字?jǐn)?shù)據(jù)相加,其結(jié)果存于R3、R2中。
LDR R0,=0X30000000
MOV R4,#0
MOV R2,#0
MOV R3,#0
LKM
LDR R5 , [R0],#4
ADDS R3, R3,R5
ADDC R2, R2,#0
ADD R4,R4,#1
CMP R4,#100
BLNE LKM
END
5、編寫(xiě)一程序,查找存儲(chǔ)器從0x30000000開(kāi)始的100個(gè)字中為0的數(shù)目,將其結(jié)果存到0x30000012中。
START
LDR R0,=0X30000000
LDR R1,=0X30000012
MOV R3,#0
MOV R4,#0
LKM
LDR R2,[R0],#4
ADD R3,R3,#1
CMP R2,#0
ADDEQ R4,R4,#1
CMP R3,#100
BLNE LKM
STR R4,[R1]
END
6、R0和R1中有兩個(gè)32位無(wú)符號(hào)數(shù),若R0>R1,則R0=R0-R1;若R0
CMP R0,R1
SUBHS R0,R0,R1
SUBCC R1,R1,R0
7、試編寫(xiě)程序,實(shí)現(xiàn)計(jì)算2+4+6+8+…+2N的值。
MOV R5,#0
MOV R3,#0
MOV R4,#0
LABLE EQU #0X2300000
MOV LABLE,#300
LKM
ADD R3,R3,#2
ADD R4,R4,R3
ADD R5,R5,#1
CMP R5,#LABLE
BLNE LKM
END
9、編程實(shí)現(xiàn)S3C2410工作模式的切換。
MRS R0,CPRS
BIC R0,R0,#&1F
ORR R0,R0,#&12
MSR CPSR_C R0
10、UART初始化編程。
START
LDR R0,=UFCON0
LDR R1,=0X0
STR R1,[R0]
LDR R0,=ULCON0
LDR R1,=0X3
STR R1,[R0]
LDR R0,=UCON0
LDR R1,=0X245
STR R1,[R0]
LDR R0,=PCLK
MOV R1,[R0]
考試題型
填空20分;單項(xiàng)選擇20分;名詞解釋12分;簡(jiǎn)答題20分;編程題28分。
跳轉(zhuǎn)指令:
B BL BLX BX
B/BL{cond} label
BLX{cond} Rm/lable
數(shù)據(jù)指令:
MOV MVN 移位指令 2
ADD ADC 加法指令 3
SUB SBC 減法指令 3
RSB RSC 逆向減法 3
ORR EOR AND 邏輯 3
CMP CMN TST TEQ 測(cè)試 2
BIC 位測(cè)試 3
注意:
{cond} {s} Rd ,Rm
{cond} {s} Rd ,Rm Rn LSL #3
{cond} {s} Rd ,Rm,# LABLE
TEQ (NE,EQ)
乘法:
MUL 32 {cond} {S} Rd, Rm ,Rs
MLA 32 {cond} {S} Rd, Rm ,Rs
SMULL/ SMLAL
UMULL/UMLAL
【嵌入式系統(tǒng)復(fù)習(xí)試題及答案】相關(guān)文章:
2016年嵌入式系統(tǒng)認(rèn)證復(fù)習(xí)題及答案06-18
2016最新嵌入式筆試題及答案06-21
中考物理復(fù)習(xí)試題及答案06-25
吉安中考語(yǔ)文復(fù)習(xí)試題及答案06-25
在職藝術(shù)碩士復(fù)習(xí)試題及答案06-02