資源描述:
《嵌入式期末考試復習資料》由會員上傳分享,免費在線閱讀,更多相關內容在應用文檔-天天文庫。
1、1、ARM微處理器有7種工作模式,它們分為兩類非特權模式、特權模式。其中用戶模式屬于非特權模式2、ARM支持兩個指令集,ARM核因運行的指令集不同,分別有兩個狀態(tài)ARM、Thumb,狀態(tài)寄存器CPSR的T位反映了處理器運行不同指令的當前狀態(tài)3、ARM核有多個寄存器,其中大部分用于通用寄存器,有小部分作為專用寄存器,R15寄存器用于存儲PC,R13通常用來存儲SPARM處理器有兩種總線架構,數(shù)據(jù)和指令使用同一接口的是馮諾依曼,數(shù)據(jù)和指令分開使用不同接口的是哈佛結4、ARM微處理器復位后,PC的地址通常是0x0,初始的
2、工作模式是Supervisor。5、ARM微處理器支持虛擬內存,它是通過系統(tǒng)控制協(xié)處理器CP15和MMU(存儲管理部件)來進行虛擬內存的存儲和管理。當系統(tǒng)發(fā)生數(shù)據(jù)異常和指令領取異常時,異常處理程序透過嵌入式操作系統(tǒng)的內存管理機制,通過MMU交換物理內存和虛擬內存的頁面,以保證程序正常執(zhí)行。6、編譯鏈接代碼時,有兩種存儲代碼和數(shù)據(jù)的字節(jié)順序,一種是小端對齊,另一種是打斷對齊7、構建嵌入式系統(tǒng)開發(fā)環(huán)境的工具鏈有多種,其中開放源碼的工具鏈是GNU工具鏈,ARM公司提供的工具鏈是ADS工具鏈計算機有CISC和RISC兩種類
3、型,以ARM微處理器為核心的計算機屬于RISC類型,其指令長度是定長的1、目前使用的嵌入式操作系統(tǒng)主要有哪些?請舉出六種較常用的。WindowsCE/WindowsMobile、VxWork、Linux、uCos、Symbian、QNX任選六2、ARM系統(tǒng)中的堆棧有四種,如下圖。請按圖標出四種堆棧的類型。ATPCS編程規(guī)范約定使用的堆棧是哪一種?答:FD、FA、ED、EA。ATPCS編程規(guī)范約定使用的堆棧是FD3、BootLoader在嵌入式系統(tǒng)中主要起什么作用?完成哪些主要的工作?答:BootLoader是在嵌入
4、式系統(tǒng)復位啟動時,操作系統(tǒng)內核運行前,執(zhí)行的一段程序。通過BootLoader,初始化硬件設備,建立內存和I/O空間映射圖,為最終加載操作系統(tǒng)內核調整好適當?shù)南到y(tǒng)軟硬件環(huán)境。32第頁共32頁4、搭建嵌入式開發(fā)環(huán)境,連接目標板,一般使用什么通信接口連接?在Windows主機上使用什么軟件建立連接?在Linux主機上使用什么軟件建立連接?1、答:RS-232,以太網(wǎng)口、并口在Windows主機上使用超級終端軟件在Linux主機上使用Minicom軟件5嵌入式開發(fā)環(huán)境主要包括哪些組件?嵌入式系統(tǒng)開發(fā)需要交叉編譯和在線調試
5、的開發(fā)環(huán)境,主要包括l宿主機l目標機(評估電路板)l基于JTAG的ICD仿真器、或調試監(jiān)控軟件、或在線仿真器ICEl運行于宿主機的交叉編譯器和鏈接器、以及開發(fā)工具鏈或軟件開發(fā)環(huán)境l嵌入式操作系統(tǒng)6在進行基于ARM核的嵌入式系統(tǒng)軟件開發(fā)時,調用如下函數(shù):intdo_something(intarg1,void*arg2,chararg3,int*arg4)這四個參數(shù)通過什么方式從調用程序傳入被調函數(shù)?根據(jù)ATPCS編程規(guī)范,調用函數(shù)和子程序通過R0——R3四個寄存器傳遞參數(shù),超過四個參數(shù)使用堆棧傳遞。因此arg1通過
6、R0傳入,arg2,通過R1傳入,arg3通過R2傳入,arg4通過R3傳入7目前使用的嵌入式操作系統(tǒng)主要有哪些?請舉出六種較常用的。WindowsCE/WindowsMobile、VxWork、Linux、uCos、Symbian、QNX任選六1、寫一條ARM指令,完成操作r1=r2*3(4分)ADDR1,R2,R2,LSL#12、初始值R1=23H,R2=0FH執(zhí)行指令BICR0,R1,R2,LSL#1后,寄存器R0,R1的值分別是多少?(4分)R0=21H,R1=23H3、說明指令STMIAr12!,{r0-
7、r11}的操作功能。(4分)將R0-R11十二個寄存器中的32位數(shù)據(jù),存儲到R12地址指針為起始地址的內存中,地址的操作方式是先操作、后增加,并更新地址。4、寫一段ARM匯編程序:循環(huán)累加隊列myarray中的所有元素,直到碰上零值元素,結果放在r4中。程序框架如下,補充代碼完成上述功能。(8分)AREAtotal,CODEREADONLYENTRYstartMOVr4,#0ADRr0,myarray;在此補充代碼loopLDRr1,[r0],#4ADDr4,r4,r1CMPr1,#0BNEloop32第頁共32頁
8、5、這是一個由源程序strtest.c和scopy.s組成的混合程序項目,通過調用strcopy完成字符串復制,程序代碼如下。要求閱讀程序,在程序中的注釋符“//”后,說明該句程序的作用,并說明extern和EXPORT偽指令的在程序中的作用。(8分)strtest.c#includeexternvoidstrcopy(char*d,con