版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
《嵌入式linux開發(fā)基礎(chǔ)》復(fù)習(xí)大綱一、期末考試題型1、 選擇題,每個2分,共計30分2、 判斷題或者填空題,每個1分,共計10分3、 問答題,每個10分,共計30分4、 閱讀程序填空,每空2分,共計15分(驅(qū)動程序設(shè)計)5、 編程題目,每個10分,共計15分(編寫makefile和shell編程各一個)。成績比例20%+20%+60%=100%復(fù)習(xí)提綱第一章嵌入式系統(tǒng)概述1、掌握嵌入式系統(tǒng)的定義及其嵌入式系統(tǒng)的特點(diǎn)。2、掌握嵌入式系統(tǒng)的構(gòu)成,軟件構(gòu)成和硬件構(gòu)成;以及RTOS,EMPU,EDSP,SOC的概念。3、理解嵌入式實(shí)時操作系統(tǒng)具備的特點(diǎn)4、了解常見的嵌入式操作系統(tǒng)第二章ARM處理器概述1、了解ARM體系結(jié)構(gòu)的分類和擴(kuò)展技術(shù)2、掌握ARM處理器的工作狀態(tài)(選擇題)3、掌握ARM處理器的存儲格式(選擇題)4、掌握ARM處理器的工作模式(問答題)5、了解S3C2410的處理器的特點(diǎn)第三章linux系統(tǒng)概述1、掌握linux的分區(qū)2、 掌握linux文件及文件系統(tǒng)3、 了解linux的啟動過程第四章linux命令1、熟悉掌握常見的linux命令,包括實(shí)驗中使用的命令。第五章linux編程基礎(chǔ)1、 熟悉使用vi命令,并能使用vi中自帶的命令。2、 熟悉理解gcc的編譯過程3、 掌握GDB調(diào)試器的使用方法和調(diào)試步驟。4、 熟悉掌握編寫makefile,要求根據(jù)要求編寫簡單的makefile文件,類似實(shí)驗中的makefile文件的編寫5、 能編寫簡單的shell程序,比如實(shí)驗要求的shell程序的編寫。第六章構(gòu)建嵌入式linux平臺開發(fā)1、 熟悉掌握交叉編譯環(huán)境的建立。2、 掌握bootloader的作用和移植步驟3、 掌握內(nèi)核剪切和編譯的步驟4、 理解根文件系統(tǒng)建立的步驟第七章驅(qū)動程序設(shè)計1、 理解驅(qū)動程序的特點(diǎn)2、 理解設(shè)備的分類3、理解驅(qū)動層次結(jié)構(gòu)4、能夠閱讀簡單的字符設(shè)備驅(qū)動程序,完成填空,主要掌握字符驅(qū)動程序中的相關(guān)函數(shù)的使用。常見題型一,選擇題下列文件中,包含了主機(jī)名到IP地址的映射關(guān)系的文件是:B。A/etc/HOSTNAMEB/etc/hostsC/etc/resolv.confD/etc/networks不需要編譯內(nèi)核的情況是D。A刪除系統(tǒng)不用的設(shè)備驅(qū)動程序時B升級內(nèi)核時C添加新硬件時D將網(wǎng)卡激活在shell中變量的賦值有四種方法,其中,采用name=12的方法稱A。A直接賦值B使用read命令C使用命令行參數(shù)D使用命令的輸出D命令可以從文本文件的每一行中截取指定內(nèi)容的數(shù)據(jù)。AcpBddCfmtDcut內(nèi)核不包括的子系統(tǒng)是D。A進(jìn)程管理系統(tǒng)B內(nèi)存管理系統(tǒng)CI/O管理系統(tǒng)D硬件管理系統(tǒng)6、 下列屬于常見的嵌入式GUI的有(A)WindowsB.QTC.GNOME D.MiniGUI7、 存儲一個32位數(shù)0x876165到2000H~2003H四個字節(jié)單元中,若以小端模式存儲,則2000H單元的內(nèi)容為(C)A、 0x00B、0x87 C、0x65D、0x618、關(guān)于Linux2.4內(nèi)核,說法錯誤的是(A )Linux為單內(nèi)核,效率高,緊湊B.按進(jìn)程優(yōu)先級調(diào)度C.具有虛擬文件系統(tǒng),可以支持多種文件系統(tǒng)D.設(shè)備驅(qū)動模塊化9、 關(guān)于交叉編譯描述正確的是:(D)編譯器運(yùn)行在目標(biāo)機(jī),生成的可執(zhí)行文件在宿主機(jī)上運(yùn)行編譯器運(yùn)行在宿主機(jī),生成的可執(zhí)行文件在宿主機(jī)上運(yùn)行編譯器運(yùn)行在目標(biāo)機(jī),生成的可執(zhí)行文件在目標(biāo)機(jī)上運(yùn)行編譯器運(yùn)行在宿主機(jī),生成的可執(zhí)行文件在目標(biāo)機(jī)上運(yùn)行10、 Linux文件系統(tǒng)的文件都按其作用分門別類地放在相關(guān)的目錄中,對于外部設(shè)備文件,一般應(yīng)將其放在(C)目錄中。A、 /binB、/etc C、/devD、/lib11、 若要把動態(tài)加載模塊的驅(qū)動加載進(jìn)內(nèi)核,可以使用以下命令實(shí)現(xiàn)(B)A、 makemodules B、insmodmodulesC、rmmodmodules D、lsmodmodules12、 關(guān)于make工具的使用,下面錯誤的是:(B)不指定目標(biāo)時,make缺省處理makefile文件的第一個目標(biāo)。makefile文件中對宏名的引用為#(宏名)。makefile文件中$@參數(shù)表示一條規(guī)則中目標(biāo)的名字。makeCC=arm-linux-gcc命令表示使用arm-linux-gcc代替makefile文件中CC的宏定義執(zhí)行make命令。13、 嵌入式Linux開發(fā)中使用GDB調(diào)試,說法錯誤的是:(A)A.GDB程序在宿主機(jī)上運(yùn)行 B.需要使用遠(yuǎn)程調(diào)試模式C.需要交叉編譯GDBServerD.被調(diào)試程序在宿主機(jī)上運(yùn)行14、下列提法中,不屬于ifconfig命令的作用范圍的是(D )A、配置本地回環(huán)地址 B、配置網(wǎng)卡的IP地址C、激活網(wǎng)卡適配器 D、加載網(wǎng)卡到內(nèi)核中15、 init啟動進(jìn)程需要讀?。ˋ)配置文件:A、 /etc/inittab B、/sbin/init C、/etc/sysvinitD、/bin/sh16、 QT/Embedded的底層圖形引擎基于下列哪種接口技術(shù)(A)A、 framebuffer B、GAL D、IALD、GFX17、 在用ls-l命令查看文件屬性時,字符設(shè)備文件類型的標(biāo)志是(A)A、cB、b C、— D、l18、 (B)命令可以從文本文件的每一行中截取指定內(nèi)容的數(shù)據(jù)。A、cpB、dd C、fmt D、cut191、為了得到所有的命令行輸入的參數(shù),我們可以使用變量(B)A、$#B、$@ C、$0 D、$!20、 Linux將設(shè)備分成三類,不是這三類的是:(D)A.網(wǎng)絡(luò)設(shè)備B.字符設(shè)備C.塊設(shè)備D.雜項設(shè)備21、 關(guān)于二階段BootLoader說法錯誤的是:(B)BootLoader的第一階段代碼全部由匯編語言構(gòu)成;BootLoader的第一階段代碼在Flash中運(yùn)行;BootLoader中可以使用glib庫中的函數(shù);BootLoader第二階段代碼大部分由C語言寫成,所以需要使用棧。22、 下列不是嵌入式系統(tǒng)特點(diǎn)的是(D)A.系統(tǒng)內(nèi)核小B.專用性強(qiáng)C.系統(tǒng)精簡D.實(shí)時性要求不高23、 嵌入式系統(tǒng)一般由嵌入式微處理器,系統(tǒng)外部電路,(A)和特定應(yīng)用程序4個部分組成。A.嵌入式操作系統(tǒng) B.硬件驅(qū)動程序C.BootLoader D.文件系統(tǒng)24、 關(guān)于ARM7系列微處理器的操作模式,不對的是:(D)A.一共有7種操作模式 B.除了用戶模式,其他都為特權(quán)模式不同模式下使用的寄存器可能會不相同通過改變SPSR中的低5位來切換模式25、 若一臺計算機(jī)的內(nèi)存為128MB,則交換分區(qū)的大小通常是C。A64MBB128MBC256MBD512MB26、 Linux有三個查看文件的命令,若希望在查看文件內(nèi)容過程中可以用光標(biāo)上下移動來查看文件內(nèi)容,應(yīng)使用C命令。AcatBmoreClessDmenu下列信息是某系統(tǒng)用ps-ef命令列出的正在運(yùn)行的進(jìn)程,D進(jìn)程是運(yùn)行Internet超級服務(wù)器,它負(fù)責(zé)監(jiān)聽Internetsockets上的連接,并調(diào)用合適的服務(wù)器來處理接收的信息。Aroot14.00.0344204?S17:090:00initBroot20.00.129161520?S17:090:00/sbin/gettyCroot30.00.21364632?S17:090:00/usr/sbin/syslogdDroot40.013441204?S17:090:10/usr/sbin/inetd用ls-al命令列出下面的文件列表,D文件是符號連接文件。A-rw-rw-rw- 2 hel-susers56 Sep 09 11:05 helloB-rwxrwxrwx 2 hel-susers56 Sep 09 11:05 goodbeyCdrwxr--r-- 1 helusers1024 Sep 10 08:10 zhang<FONT<BR>Dlrwxr--r-- 1 helusers2024 Sep 12 08:12 chengNFS是C系統(tǒng)。A文件B磁盤C網(wǎng)絡(luò)文件D操作Linux文件系統(tǒng)的文件都按其作用分門別類地放在相關(guān)的目錄中,對于外部設(shè)備文件,一般應(yīng)將其放在C目錄中。A/binB/etcC/devD/lib311.關(guān)閉linux系統(tǒng)(不重新啟動)可使用命令B。ACtrl+Alt+DelBhaltCshutdown-rnowDreboot在vi編輯器中的命令模式下,鍵入B可在光標(biāo)當(dāng)前所在行下添加一新行。A;B;C;DA在vi編輯器中的命令模式下,刪除當(dāng)前光標(biāo)處的字符使用A命令。A;B;;C;D;;在vi編輯器中的命令模式下,重復(fù)上一次對編輯的文本進(jìn)行的操作,可使用C命令。A上箭頭B下箭頭C<.>;D<*>;從安全角度考慮不適合作為嵌入式系統(tǒng)文件的文件格式是(D)A、jffs2B、cramfs C、yaffs D、ext2用命令ls-al顯示出文件ff的描述如下所示,由此可知文件ff的類型為A。-rwxr-xr--1rootroot599Cec1017:12ffA普通文件B硬鏈接C目錄D符號鏈接文件系統(tǒng)的主要功能是(A)A、實(shí)現(xiàn)對文件的按名存取 B、實(shí)現(xiàn)虛擬存儲D、提高外存的讀寫速度D、用于保存系統(tǒng)文檔init啟動進(jìn)程需要讀?。ˋ)配置文件:A、/etc/inittab B、/sbin/init C、/etc/sysvinit D、/bin/sh刪除文件命令為:D。AmkdirBrmdirCmvDrm對文件進(jìn)行歸檔的命令為D。AddBcpioCgzipDtar改變文件所有者的命令為C。AchmodBtouchCchownDcat43.在給定文件中查找與設(shè)定條件相符字符串的命令為:A。AgrepBgzipCfindDsort44.建立一個新文件可以使用的命令為D。AchmodBmoreCcpDtouch45、在下列命令中,不能顯示文本文件內(nèi)容的命令是:D。AmoreBlessCtailDjoin文件權(quán)限讀、寫、執(zhí)行的三種標(biāo)志符號依次是A。ArwxBxrwCrdxDsrw47、從后臺啟動進(jìn)程,應(yīng)在命令的結(jié)尾加上符號A。A&B@C#D$48、某文件的組外成員的權(quán)限為只讀;所有者有全部權(quán)限;組內(nèi)的權(quán)限為讀與寫,則該文件的權(quán)限為D。A467B674C476D764退出交互模式的shell,應(yīng)鍵入C。A;B"qCexitDquit50、 設(shè)超級用戶root當(dāng)前所在目錄為:/usr/local,鍵入cd命令后,用戶當(dāng)前所在目錄為B。A/homeB/rootC/home/rootD/usr/local如果bootloader,內(nèi)核,啟動參數(shù)以及其他的系統(tǒng)映像四部分在固態(tài)存儲設(shè)備上分別獨(dú)立存放,則其存儲結(jié)構(gòu)分配順序應(yīng)當(dāng)是(D)A、 文件系統(tǒng)、內(nèi)核、啟動參數(shù)、bootloaderB、 啟動參數(shù)、bootloader、內(nèi)核、文件系統(tǒng)C、 bootloader、內(nèi)核、啟動參數(shù)、文件系統(tǒng)D、 bootloader、啟動參數(shù)、內(nèi)核、文件系統(tǒng)init啟動進(jìn)程需要讀?。ˋ)配置文件:A、/etc/inittabB、/sbin/init C、/etc/sysvinit D、/bin/sh字符設(shè)備文件類型的標(biāo)志是B。ApBcCsDl將光盤CD-ROM(hdc)安裝到文件系統(tǒng)的/mnt/cdrom目錄下的命令是C。Amount/mnt/cdromBmount/mnt/cdrom/dev/hdcCmount/dev/hdc/mnt/cdromDmount/dev/hdc將光盤/dev/hdc卸載的命令是A。Aumount/dev/hdcBunmount/dev/hdc在進(jìn)行嵌入式系統(tǒng)調(diào)試時,一下敘述中正確的是( )A、 宿主機(jī)和目標(biāo)機(jī)之間需奧建立邏輯連接即可B、 在嵌入式系統(tǒng)中,調(diào)試器與被調(diào)試程序一般位于同一臺機(jī)器上C、 在嵌入式系統(tǒng)開發(fā)中,通常采用的是交叉編譯器D、 宿主機(jī)和目標(biāo)機(jī)之間的通信方式只有串口和并口兩種在/home/studl/wang目錄下有一文件file,使用D可實(shí)現(xiàn)在后臺執(zhí)行命令,此命令將file文件中的內(nèi)容輸出到file.copy文件中。Acatfile>;file.copyBcat>;file.copyCcatfilefile.copy&Dcatfile>;file.copy&下列變量名中有效的shell變量名是:C。A-2-timeB_2$3Ctrust_no_lD2004file已知某用戶stud1,其用戶目錄為/home/stud1。如果當(dāng)前目錄為/home,進(jìn)入目錄/home/studl/test的命令是C。AcdtestBcd/stud1/testCcdstud1/testDcdhome已知某用戶studl,其用戶目錄為/home/studl。分頁顯示當(dāng)前目錄下的所有文件的文件或目錄名、用戶組、用戶、文件大小、文件或目錄權(quán)限、文件創(chuàng)建時間等信息的命令是D。Amorels-alBmore-allsCmore<ls-alDls-al|more以下命令對中,正確的是:B。Als和slBcat和tacCmore和eromDexit和tixeB命令是在vi編輯器中執(zhí)行存盤退出。A:qBZZC:q!D:WQbootloader的stage2通常使用C語言實(shí)現(xiàn),以完成復(fù)雜的功能,并增加可讀行和移植性,以下哪一步屬于stage2的內(nèi)容(D)A、 為加載bootloader的stage2準(zhǔn)備RAM空間B、 設(shè)置好堆棧C、 硬件設(shè)備初始化D、 將kernel映像和跟文件系統(tǒng)映像從flash上讀到RAM空間中下列關(guān)于/etc/fstab文件描述,正確的是D。Afstab文件只能描述屬于linux的文件系統(tǒng)BCD_R0M和軟盤必須是自動加載的Cfstab文件中描述的文件系統(tǒng)不能被卸載D啟動時按fstab文件描述內(nèi)容加載文件系統(tǒng)D設(shè)備是字符設(shè)備。AhdcBfd0Chda1Dtty1B目錄存放著Linux的源代碼。A/etcB/usr/srcC/usrD/home關(guān)于BusyBox,下列說法錯誤的是(C )A、 它常用來構(gòu)建嵌入式Linux的根文件系統(tǒng)B、 支持的shell命令可以進(jìn)行配置C、 支持的命令完全和Linux命令相同D、 作為嵌入式Linux根文件系統(tǒng)時需要交叉編譯關(guān)于文件系統(tǒng)的安裝和卸載,下面描述正確的是A。A如果光盤未經(jīng)卸載,光驅(qū)是打不開的B安裝文件系統(tǒng)的安裝點(diǎn)只能是/mnt下C不管光驅(qū)中是否有光盤,系統(tǒng)都可以安裝CD-ROM設(shè)備Dmount/dev/fdO/floppy此命令中目錄/floppy是自動生成的文件exer1的訪問權(quán)限為rw-r—r―,現(xiàn)要增加所有用戶的執(zhí)行權(quán)限和同組用戶的寫權(quán)限,下列命令正確的是A。Achmoda+xg+wexer1Bchmod765exer1Cchmodo+xexer1Dchmodg+wexer1向無任何程序的目標(biāo)機(jī)中寫入BootLoader程序,一般使用下面那種接口(B)A.串口B.JTAGC.EthernetD.USB有關(guān)歸檔和壓縮命令,下面描述正確的是C。A用uncompress命令解壓縮由compress命令生成的后綴為.zip的壓縮文件Bunzip命令和gzip命令可以解壓縮相同類型的文件Ctar歸檔且壓縮的文件可以由gzip命令解壓縮Dtar命令歸檔后的文件也是一種壓縮文件不是shell具有的功能和特點(diǎn)的是C。A管道B輸入輸出重定向C執(zhí)行后臺進(jìn)程D處理程序命令有關(guān)Linux內(nèi)核裁剪下列說法錯誤的是(B)可以使用makemenuconfig命令進(jìn)行內(nèi)核的配置所有的配置項都可以按以編譯入內(nèi)核,編譯成模塊,不編譯三種方式配置使用makezlmage命令會編譯生成內(nèi)核鏡像文件zlmage嵌入式Linux內(nèi)核編譯時應(yīng)該采用交叉編譯器76、關(guān)于Linux2.4內(nèi)核,說法錯誤的是(A )A.Linux為單內(nèi)核,效率高,緊湊B.按進(jìn)程優(yōu)先級調(diào)度具有虛擬文件系統(tǒng),可以支持多種文件系統(tǒng)D.設(shè)備驅(qū)動模塊化77、 QT/Embedded的底層圖形引擎基于下列哪種接口技術(shù)(A)A、framebuffer B、GAL D、IAL D、GFX78、為了得到所有的命令行輸入的參數(shù),我們可以使用變量()A、$#B、$@C、$0D、$!79、 如果bootloader,內(nèi)核,啟動參數(shù)以及其他的系統(tǒng)映像四部分在固態(tài)存儲設(shè)備上分別獨(dú)立存放,則其存儲結(jié)構(gòu)分配順序應(yīng)當(dāng)是()A、 文件系統(tǒng)、內(nèi)核、啟動參數(shù)、bootloaderB、 啟動參數(shù)、bootloader、內(nèi)核、文件系統(tǒng)C、 bootloader、內(nèi)核、啟動參數(shù)、文件系統(tǒng)D、 bootloader、啟動參數(shù)、內(nèi)核、文件系統(tǒng)80、 下面不屬于嵌入式操作系統(tǒng)的是(C)A.VxWorksB.QNXC.MacOSD.WinCE81、 Linux文件權(quán)限一共10位長度,分成四段,第三段表示的內(nèi)容是C。A文件類型B文件所有者的權(quán)限C文件所有者所在組的權(quán)限D(zhuǎn)其他用戶的權(quán)限82、 終止一個前臺進(jìn)程可能用到的命令和操作B。AkillB;+CCshutdownDhalt83?在使用mkdir命令創(chuàng)建新的目錄時,在其父目錄不存在時先創(chuàng)建父目錄的選項是D。A-mB-dC-fD-p一個文件名字為rr.Z,可以用來解壓縮的命令是:D。AtarBgzipCcompressDuncompress85、 下列關(guān)于鏈接描述,錯誤的是B。A硬鏈接就是讓鏈接文件的i節(jié)點(diǎn)號指向被鏈接文件的i節(jié)點(diǎn)B硬鏈接和符號連接都是產(chǎn)生一個新的i節(jié)點(diǎn)C鏈接分為硬鏈接和符號鏈接D硬連接不能鏈接目錄文件二、填空題1、編寫shell程序運(yùn)行前必須賦予該腳本文件 執(zhí)行權(quán)限。2、 在linux系統(tǒng)中,用來存放系統(tǒng)所需要的配置文件和子目錄的目錄是 /etc 。3、 使用gcc編譯c程序生成可執(zhí)行文件有時似乎是一步完成的,但實(shí)際要經(jīng)歷如下四步:預(yù)處理、編譯、匯編和鏈接。4、使用gdb進(jìn)行調(diào)試時,可通過step 和next命令進(jìn)行單步執(zhí)行。4、 鏈接分為:硬鏈接和符號鏈接。5、 前臺起動的進(jìn)程使用kill終止。6、 安裝Linux系統(tǒng)對硬盤分區(qū)時,必須有兩種分區(qū)類型:文件系統(tǒng)分區(qū)和交換分區(qū)。7、 在Linux系統(tǒng)中,以文件方式訪問設(shè)備。&Linux內(nèi)核引導(dǎo)時,從文件/etc/fstab中讀取要加載的文件系統(tǒng)。7.某文件的權(quán)限為:drw-r—r-—用數(shù)值形式表示該權(quán)限,則該八進(jìn)制數(shù)為:6449,該文件屬性是_目錄。前臺起動的進(jìn)程使用Ctrl+c終止安裝Linux系統(tǒng)對硬盤分區(qū)時,必須有兩種分區(qū)類型:文件系統(tǒng)分區(qū)和交換分區(qū)。編寫的Shell程序運(yùn)行前必須賦予該腳本文件執(zhí)行權(quán)限。在Linux系統(tǒng)中所有內(nèi)容都被表示為文件,組織文件的各種方法稱為文件系統(tǒng)。當(dāng)想刪除本系統(tǒng)用不上的設(shè)備驅(qū)動程序時必須編譯內(nèi)核,當(dāng)內(nèi)核不支持系統(tǒng)上的衛(wèi)備驅(qū)動程序時,必須對內(nèi)核升級。vi編輯器具有兩種工作模式:命令模式和輸入模式??梢杂胠s-al命令來觀察文件的權(quán)限,每個文件的權(quán)限都用10位表示,并分為四段,其中第一段占1位,表示文件類型,第二段占3位,表示文件所有者對該文件的權(quán)限。CD-ROM標(biāo)準(zhǔn)的文件系統(tǒng)類型是iso9660。在使用ls命令時,用八進(jìn)制形式顯示非打印字符應(yīng)使用參數(shù)丄。Linux使用支持Windows9.x/2000長文件名的文件系統(tǒng)的類型是vfat。在Linux系統(tǒng)中,用來存放系統(tǒng)所需要的配置文件和子目錄的目錄是/etc。硬連接只能建立對文件鏈接。符號鏈接可以跨不同文件系統(tǒng)創(chuàng)建。套接字文件的屬性位是旦亠結(jié)束后臺進(jìn)程的命令是kill為腳本程序指定執(zhí)行權(quán)的命令及參數(shù)是chmoda+xfilename。進(jìn)行遠(yuǎn)程登錄的命令是telnet。在Linux系統(tǒng)中,壓縮文件后生成后綴為.gz文件的命令是gzip。53.在用vi編輯文件時,將文件內(nèi)容存入test.txt文件中,應(yīng)在命令模式下鍵入:wtest.txt在Linux系統(tǒng)下,第二個IDE通道的硬盤(從盤)被標(biāo)識為hdb。當(dāng)系統(tǒng)管理員需升級內(nèi)核版本和改變系統(tǒng)硬件配置時,應(yīng)重新編譯內(nèi)核。在vi編輯環(huán)境下,使用Esc鍵進(jìn)行模式轉(zhuǎn)換將/home/stud1/wang目錄做歸檔壓縮,壓縮后生成wang.tar.gz文件,并將此文件保存至U/home目錄下,實(shí)現(xiàn)此任務(wù)的tar命令格式tarzcvf/home/wang.tar.gz/home/stud1/wang。管道就是將前一個命令的標(biāo)準(zhǔn)輸出作為后一個命令的標(biāo)準(zhǔn)輸入。衛(wèi)命令可刪除文件或目錄,其主要差別就是是否使用遞歸開關(guān)-r或-R。mv命令可以移動文件和目錄,還可以為文件和目錄重新命名。nfs協(xié)議用于實(shí)現(xiàn)Unix(/linux)主機(jī)之間的文件系統(tǒng)共享。在Linux操作系統(tǒng)中,設(shè)備都是通過特殊的文件來訪問。shell不僅是用戶命令的解釋器,它同時也是一種功能強(qiáng)大的編程語言。bash是Linux的缺省shell。用丄;>;符號將輸出重定向內(nèi)容附加在原文的后面。增加一個用戶的命令是:adduser或useradd。39進(jìn)行字符串查找,使用grep命令。40.使用埜每次匹配若干個字符。三、問答題1、 簡述嵌入式系統(tǒng)的概念、組成及特點(diǎn)。2、 嵌入式開發(fā)環(huán)境主要包括哪些組件?3、 簡述BootLoader的作用。4、請描述建立一個嵌入式開發(fā)平臺的步驟。5、嵌入式系統(tǒng)的設(shè)計過程6、設(shè)備驅(qū)動程序有哪些特點(diǎn)7、 Linux內(nèi)核移植的操作過程8、ARM處理器有幾種工作模式,分別叫什么?四、閱讀程序1、#include<linux/module.h>#include<linux/types.h>#include<linux/fs.h>#include<linux/errno.h>#include<linux/mm.h>#include<linux/sched.h>#include<linux/init.h>#include<linux/cdev.h>#include<asm/io.h>#include<asm/system.h>#include<asm/uaccess.h>#include"memdev.h"staticmem_major=MEMDEV_MAJOR;module_param(mem_major,int,S_IRUGO);structmem_dev*mem_devp;/*設(shè)備結(jié)構(gòu)體指針*/structcdevcdev;/*文件打開函數(shù)*/intmem_open(structinode*inode,structfile*filp){structmem_dev*dev;/*獲取次設(shè)備號*/intnum=MINOR(inode->i_rdev);if(num>=MEMDEV_NR_DEVS)return-ENODEV;dev=&mem_devp[num];/*將設(shè)備描述結(jié)構(gòu)指針賦值給文件私有數(shù)據(jù)指針*/filp->private_data=dev;return0;/*文件釋放函數(shù)*/intmem_release(structinode*inode,structfile*filp){return0;}/*讀函數(shù)*/staticssize_tmem_read(structfile*filp,char__user*buf,size_tsize,loff_t*ppos){unsignedlongp=*ppos;unsignedintcount=size;intret=0;structmem_dev*dev=filp->private_data;/*獲得設(shè)備結(jié)構(gòu)體指針*//*判斷讀位置是否有效*/if(p>=MEMDEV_SIZE)return0;if(count>MEMDEV_SIZE-p)count=MEMDEV_SIZE-p;/*讀數(shù)據(jù)到用戶空間*/if(copy_to_user(buf,(void*)(dev->data+p),count)){ret=-EFAULT;}else{*ppos+=count;ret=count;printk(KERN_INFO"read%dbytes(s)from%d\n",count,p);}returnret;}/*寫函數(shù)*/staticssize_tmem_write(structfile*filp,constchar__user*buf,size_tsize,loff_t*ppos){unsignedlongp=*ppos;unsignedintcount=size;intret=0;structmem_dev*dev=filp->private_data;/*獲得設(shè)備結(jié)構(gòu)體指針*//*分析和獲取有效的寫長度*/if(p>=MEMDEV_SIZE)return0;if(count>MEMDEV_SIZE-p)count=MEMDEV_SIZE-p;/*從用戶空間寫入數(shù)據(jù)*/if(copy_from_user(dev->data+p,buf,count))ret=-EFAULT;else{*ppos+=count;ret=count;printk(KERN_INFO"written%dbytes(s)from%d\n",count,p);}returnret;}/*seek文件定位函數(shù)*/staticloff_tmem_llseek(structfile*filp,loff_toffset,intwhence){loff_tnewpos;switch(whence){case0:/*SEEK_SET*/newpos=offset;break;case1:/*SEEK_CUR*/newpos=filp->f_pos+offset;break;case2:/*SEEK_END*/newpos=MEMDEV_SIZE-1+offset;break;default:/*can'thappen*/return-EINVAL;
}if((newpos<0)||(newpos>MEMDEV_SIZE))return-EINVAL;filp->f_pos=newpos;returnnewpos;}/*文件操作結(jié)構(gòu)體*/staticconststructfile_operationsmem_fops{.owner=THIS_MODULE,.llseek=mem_llseek,.read=mem_read,.write=mem_write,.open=mem_open,.release=mem_release,};/*設(shè)備驅(qū)動模塊加載函數(shù)*/staticintmemdev_init(void){intresult;inti;dev_tdevno=MKDEV(mem_major,0);/*靜態(tài)申請設(shè)備號*/if(mem_major)"memdev");"memdev");result=register_chrdev_region(devno,2,else/*動態(tài)分配設(shè)備號*/"memdev");"memdev");{result=alloc_chrdev_region(&devno,0,2mem_major=MAJOR(devno);}if(result<0)returnresult;/*初始化cdev結(jié)構(gòu)*/cdev_init(&cdev,&mem_fops);cdev.owner=THIS_MODULE;cdev.ops=&mem_fops;/*注冊字符設(shè)備*/cdev_add(&cdev,MKDEV(mem_major,0),MEMDEV_NR_DEVS);/*為設(shè)備描述結(jié)構(gòu)分配內(nèi)存*/mem_devp=kmalloc(MEMDEV_NR_DEVS*sizeof(structmem_dev),GFP_KERNEL);if(!mem_devp) /*申請失敗*/{result=-ENOMEM;gotofail_malloc;}memset(mem_devp,0,sizeof(structmem_dev));/*為設(shè)備分配內(nèi)存*/for(i=0;i<MEMDEV_NR_DEVS;i++){mem_devp[i].size=MEMDEV_SIZE;mem_devp[i].data=kmalloc(MEMDEV_SIZE,GFP_KERNEL);memset(mem_devp[i].data,0,MEMDEV_SIZE);}return0;fail_malloc:unregister_chrdev_region(devno,1);returnresult;}/*模塊卸載函數(shù)*/staticvoidmemdev_exit(void){cdev_del(&cdev); /*注銷設(shè)備*/kfree(mem_devp); /*釋放設(shè)備結(jié)構(gòu)體內(nèi)存*/unregister_chrdev_region(MKDEV(mem_major,0),2);/*釋放設(shè)備號*/}MODULE_AUTHOR("ctbu");MODULE_LICENSE("GPL");module_init(memdev_init);module_exit(memdev_exit);2、//devicedriverprogram#include〈linux/config.h〉/*內(nèi)核編譯時的配置文件,文件里面指向一個makemenuconfig自動生成的文件autoconf.h*/#include〈linux/kernel.h〉//模塊驅(qū)動程序的頭文件#include<linux/module.h>#include〈linux/sched.h〉//中斷相關(guān)的頭文件#include〈linux/interrupt.h〉#include〈linux/timer.h〉//定時器相關(guān)的頭文件#include〈linux/init.h〉#include〈linux/delay.h〉#include〈linux/modversions.h〉#include〈linux/version.h〉//文件中定義了LINUX內(nèi)核的所有的版本,用于版本檢查#include〈asm/io.h〉//訪問系統(tǒng)硬件用的頭文件#include〈asm/irq.h〉#include〈asm/hardware.h〉#include〈linux/devfs_fs_kernel.h〉#defineSimpleD_MAJOR96//定義主設(shè)備號devfs_handle_tdev_handle;//系統(tǒng)DEVFS所用到的handleintSimpleD_temp_count=0;//定義系統(tǒng)變量,防止文件被多重打開/* SimpledRead */ssize_tSimpleD_read(structfile*file,char*buf,size_tcount,loff_t*f_ops){printk("S3c2410:devicefile-Readoperation!\n");returncount;}
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 蜜蜂養(yǎng)殖場生產(chǎn)制度
- 消毒生產(chǎn)設(shè)備采購制度
- 生產(chǎn)指揮車輛管理制度
- 車站安全生產(chǎn)告誡制度
- 農(nóng)業(yè)生產(chǎn)廢棄物制度
- 林業(yè)生產(chǎn)用工管理制度
- 2026浙江南方水泥有限公司校園招聘參考考試試題附答案解析
- 直接生產(chǎn)費(fèi)用報銷制度
- 廚房生產(chǎn)內(nèi)控制度
- 車間設(shè)備生產(chǎn)安全制度
- 醫(yī)院危險品管理培訓(xùn)制度
- 2026年江西科技學(xué)院單招職業(yè)技能筆試備考試題含答案解析
- 深度解析(2026)《MZT 238-2025 監(jiān)測和定位輔助器具 毫米波雷達(dá)監(jiān)測報警器》
- 2025-2026學(xué)年小學(xué)美術(shù)湘美版(2024)四年級上冊期末練習(xí)卷及答案
- 遼寧省大連市2026屆高三上學(xué)期1月雙基模擬考試語文試題(含答案)
- 2025年腫瘤科年度工作總結(jié)匯報
- 浙江省寧波市2025-2026學(xué)年八年級上數(shù)學(xué)期末自編模擬卷
- 2025版《煤礦安全規(guī)程》學(xué)習(xí)與解讀課件(監(jiān)控與通信)
- 口譯課件05教學(xué)課件
- 2024年河南農(nóng)業(yè)大學(xué)輔導(dǎo)員考試真題
- 1比較思想政治教育
評論
0/150
提交評論