嵌入式操作系統(tǒng)復(fù)習(xí)提綱(共3頁)_第1頁
嵌入式操作系統(tǒng)復(fù)習(xí)提綱(共3頁)_第2頁
嵌入式操作系統(tǒng)復(fù)習(xí)提綱(共3頁)_第3頁
全文預(yù)覽已結(jié)束

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、精選優(yōu)質(zhì)文檔-傾情為你奉上嵌入式操作系統(tǒng)復(fù)習(xí)提綱1. 嵌入式系統(tǒng)的特點?專用性強、實時性好、可裁剪性好、可靠性高和功耗低等2. ARM的運行模式和工作狀態(tài)?特權(quán)模式和非特權(quán)模式?工作狀態(tài): 第1種:ARM狀態(tài)。處理器執(zhí)行32位的字對齊的ARM指令。 第2種:Thumb狀態(tài)。處理器執(zhí)行16位的半字對齊的Thumb指令。 運行模式: 用戶模式(usr)  快速中斷模式(fiq)  外部中斷模式(irq) 管理模式(svc)  數(shù)據(jù)訪問中止模式(abt)  系統(tǒng)模式(sy

2、s) 未定義指令中止模式(und) 在這7種運行模式,除了用戶模式外,其他6種處理器模式都為特權(quán)模式。 在這6種特權(quán)模式中,除了系統(tǒng)模式外的其他5種特權(quán)模式又稱為異常模式。 3. ARM和S3C2410的關(guān)系?S3C2410的內(nèi)核?S3C2410是韓國三星公司生產(chǎn)的嵌入式處理器,它采用了ARM公司的ARM920T(即ARM9)內(nèi)核4. Make和Makefile的關(guān)系?make是一種命令,是根據(jù)Makefile文件的規(guī)則決定如何編譯和連接程序或其他的動作。Makefile的普通變量與預(yù)定義變量有什么不同?預(yù)定義變量有哪些?它們分別表示什么意思? 

3、;答:普通變量:引用變量時,只需在變量前面加上$符;預(yù)定義變量:已經(jīng)定義好,直接引用即可。 預(yù)定義變量有:$、$、$<。 $:表示完整的目標文件名;$:表示所有的依賴文件;$<:表示依賴文件列表中的第一個文件5. BootLoader的作用和意義?常用的BootLoader?BootLoader的結(jié)構(gòu)分為兩部分, Stage1:用匯編語言編寫,主要進行設(shè)備的初始化;Stage2:用C語言編寫,增強程序的移植性和可讀性。BootLoader是系統(tǒng)加電后運行的第一段代碼,通過這段小程序,可以初始化硬件設(shè)備、建立內(nèi)存空間的映射圖,從而使系統(tǒng)的軟硬件環(huán)境達到合適的狀態(tài)。

4、ARM常用的Bootloader程序有U-Boot,Blob,RedBoot,vivi,ARMboot6. Linux內(nèi)核文件映像?根文件系統(tǒng)映像文件?內(nèi)核映像文件zImage。 根文件系統(tǒng):root.cramfs7.設(shè)備驅(qū)動程序和設(shè)備文件的關(guān)系?驅(qū)動程序加載到內(nèi)核后有一個主設(shè)備號。在Linux內(nèi)核中,主設(shè)備號標識設(shè)備對應(yīng)的驅(qū)動程序,告訴Linux內(nèi)核使用哪一個驅(qū)動程序為該設(shè)備(也就是/dev下的設(shè)備文件)服務(wù),而次設(shè)備號則用來標識具體且唯一的某個設(shè)備8.GCC編譯器常用的選項?gcc編譯器的常用參數(shù):-o,-I,-L,-E,-S,-c 功能:-o表示編譯成一個可執(zhí)行程序;

5、-I表示指定頭文件目錄;-L表示指定庫文件目錄選項;-E表示對源代碼進行預(yù)編譯;-S表示編譯成匯編代碼;-c表示把.c文件轉(zhuǎn)換為以.o為擴展名的目標文件。9.Vivi程序的2個階段?兩種工作模式:啟動加載模式,下載模式Vivi結(jié)構(gòu)分為兩個階段:Stage1:1. 關(guān)閉WatchDog;2. 禁止所有中斷3. 初始化系統(tǒng)時鐘4. 初始化內(nèi)存控制寄存器5. 檢查是否從掉電模式喚醒,如果是,則調(diào)用wakeupStart函數(shù)進行處理6. 點亮所有LED7. 初始化UART08. 將vivi的代碼從NAND Flash復(fù)制到SDRAM中Stage2完成如下任務(wù):1. 打印vivi的信息2. 調(diào)用初始化函

6、數(shù)3. boot_or_vivi():判斷是夠按下Enter鍵,若按下則進入vivi shell;若沒有執(zhí)行boot命令啟動內(nèi)核4. boot命令執(zhí)行后找到kernel分區(qū),并找他的偏移量和大小,執(zhí)行boot_kernel()函數(shù),復(fù)制內(nèi)核映像5. 調(diào)用Linux啟動參數(shù),打印Now Booting Linux6. 調(diào)用call_linux函數(shù)啟動內(nèi)核 10.信號和槽的連接機制?信號:當(dāng)某個信號對其客戶或所有者發(fā)生的內(nèi)部狀態(tài)發(fā)生改變,信號被一個對象發(fā)射。只有定義過這個信號的類及其派生類能夠發(fā)射這個信號,當(dāng)一個信號被發(fā)射時,與其相關(guān)聯(lián)的槽將會被立刻執(zhí)行。 槽:槽是普通的C+成員函數(shù),可

7、以被正常調(diào)用,它們唯一的特殊性就是很多信號可以與其相關(guān)聯(lián)。當(dāng)與其相關(guān)聯(lián)的信號被發(fā)射時,這個槽就會被調(diào)用。槽可以有參數(shù),但槽的參數(shù)不能有缺省值1. 一個信號可以連接到多個槽2. 多個信號可以連接到同一個槽3. 一個信號可以和另一個吸納好項鏈4. 連接可以被刪除12.(1)嵌入式交叉開發(fā)環(huán)境搭建的意義和步驟?(2)內(nèi)核映像文件的生成步驟?(1).在嵌入式軟件開發(fā)時, 由于嵌入式系統(tǒng)的硬件資源有限,不能安裝編譯所需要的資源調(diào)試器和被調(diào)試的程序分別運行在不同的平臺,增加了程序調(diào)試的難度,交叉環(huán)境搭建就解決了這樣的難題1交叉編譯工具鏈的安裝;2、安裝配置TFTP服務(wù);3、安裝配置NFS服務(wù);4、C-Ke

8、rmit的安裝配置;5、minicom的安裝配置;6、windows下超級終端的配置(2). 生成內(nèi)核映像文件zImage的步驟。 1、make config   進入命令行; 2、make menuconfig 內(nèi)核裁剪; 3、make clean 清理以前已生成的目標文件;4、make dep 編譯變量的依賴關(guān)系;5、 make zImage 生成內(nèi)核鏡像文件zImage。13.驅(qū)動程序和應(yīng)用程序的區(qū)別和聯(lián)系?第一:主動與被動的區(qū)別。應(yīng)用程序

9、有一個main函數(shù),總是從些函數(shù)開始主動執(zhí)行一個任務(wù),而驅(qū)動程序安裝之后,便停止工作,并等待被應(yīng)用程序調(diào)用。第二:使用的庫函數(shù)不同第三:程序運行的區(qū)域不同。驅(qū)動程序工作在內(nèi)核態(tài);應(yīng)用程序工作在用戶態(tài)。14.常用的一些ARM指令?(第2章課后習(xí)題程序題部分)(1) 分析下列每條語句,并說明程序?qū)崿F(xiàn)的功能。 CMP  R0, #0  /判斷R0是否等于0 MOVEQ  R1, #0  /當(dāng)R0等于0,則R1等于0OVGT  R1,#1  /

10、當(dāng)R0為正數(shù)時,則R1等于1  此功能碼段可以判別R0中的值為正數(shù)還是0。(2) 寫一條ARM指令,分別完成下列操作。 R0 = 16              MOV  RO, #16 R0 = R1 / 16          

11、;MOV RO,R1,LSR#4 R1 = R2 * 4          ADD R1,R2.R2.LSL#1R0 = - R0            RSB RO,RO,#0(3) 寫出實現(xiàn)下列操作的ARM指令。 當(dāng)Z=1時,將存儲器地址為R1的

12、字數(shù)據(jù)讀入寄存器R0。  MOVEQ  R0, R1 當(dāng)Z=1時,將存儲器地址為R1+R2的字數(shù)據(jù)讀入寄存器R0。   LDREQ  R0, R1,R2 將存儲器地址為R1-4的字數(shù)據(jù)讀入寄存器R0。 LDR   R0,R1,#-4  將存儲器地址為R1+R6的字數(shù)據(jù)讀入寄存器R0,并將新地址R1R6 寫入R1。 LDR   R0,R1,R6! (

13、4) 寫出下列指令所實現(xiàn)的操作。 LDR     R2 ,R3,-2! 將存儲器地址為R3-2的字數(shù)據(jù)讀入R2,并將地址R3-2寫入R3   LDR     R0 ,R0,R1 將存儲器地址為R0的字數(shù)據(jù)讀入R0,并將地址R0+R1寫入R0   LDR     R1 ,R0,R2,LSL #2! 將存儲器地址

14、為R0+R2*4的字數(shù)據(jù)讀入R1,并將地址R0+R2*4寫入R0   STRB   R1 ,R2,#0xB0   R0的低8位存入存儲器地址為 R2+0xB0字節(jié)中 LDMIA   R0 ,R1,R2,R8 將內(nèi)存單元R0所指向的地址單元以字為單位遞減方式讀取到R1,R2,R8 中,低地址編號的字數(shù)據(jù)內(nèi)存單元對應(yīng)低編號寄存器 STMDB   R0!, R1R5,R8,

15、R9 R1R5,R8,R9存儲到以R0為起始地址的遞減內(nèi)存中,最終R0 指向存放 R9的地址單元15.目錄下多個文件生成一個可執(zhí)行文件的Makefile文件編寫分析?(現(xiàn)有7個文件分別是m.c,m.h,study.c,listen.c,visit.c,play.c,watch.c。利用這7個程序生成一個名為m的可執(zhí)行程序,如何編寫Makefile文件)CC=gccTARGET=AllOBJECTS= m.o visit.o listen.o watch.o study.o play.o$(TARGET):$(OBJECTS)$(CC) $(OBJECTS) o m

16、m.o:m.c m.h$(CC) c m.c o m.ovisit.o:visit.c$(CC) c visit.c o visit.olisten.o:listen.c$(CC) c listen.c o listen.owatch.o:watch.c$(CC) c watch.c o watch.ostudy.o:study.c$(CC) c study.c o study.oplay.o:play.c$(CC) c play.c o play.oclean:rm *.o16.驅(qū)動程序的加載、系統(tǒng)調(diào)用和卸載過程?17.嵌入式開發(fā)調(diào)試時的串口工具?超級終端?Minicom?Minicom是l

17、inux操作系統(tǒng)下的串口通信軟件.超級終端是Windows操作系統(tǒng)下的串口通信軟件18.驅(qū)動程序加載、驅(qū)動模塊安裝和查看指令?加載,安裝指令是:#insmod file_name 查看指令是:lsmod卸載指令是:rmmod module_name19.嵌入式內(nèi)核裁剪和配置后,內(nèi)核編譯的步驟和指令?使用make menuconfig命令進行裁剪1、make menuconfig 內(nèi)核裁剪2、make clean 清理以前已生成的目標文件3、make dep 編譯變量依賴關(guān)系4. make zImage 生成內(nèi)核映像文件zImage20.驅(qū)動demo.c的驅(qū)動程序框架?在內(nèi)核空間開一個40個字節(jié)的緩存區(qū)drv_buf,要求設(shè)計2個

溫馨提示

  • 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論