




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、嵌入式系統(tǒng)概論實 驗 指 導(dǎo) 書計算機系2013年12月目 錄目 錄2實驗一 Linux的安裝4實驗二 VMware tools的安裝5實驗三 Linux基本命令的使用(一)6實驗四 Linux基本命令的使用(二)7實驗五 Linux基本命令的使用(三)8實驗六 文本編輯器vi的使用9實驗七 使用GCC編譯C語言程序10實驗八 使用GDB調(diào)試程序11實驗九 makefile的編寫12實驗十 嵌入式Linux開發(fā)環(huán)境建立及內(nèi)核編譯14實驗十一 嵌入式Linux根文件系統(tǒng)制作18實驗十二 嵌入式Linux內(nèi)核和根文件系統(tǒng)的下載和燒寫19實驗十三 嵌入式Linux驅(qū)動程序添加24實驗十四 嵌入式Li
2、nux下的音頻實驗26實驗十五 嵌入式Linux下的視頻實驗27實驗十六 RVDS 2.2集成開發(fā)環(huán)境練習(xí)30實驗十七 :GPIO輸出控制實驗30實驗一 Linux的安裝【實驗?zāi)康摹恳?、掌握虛擬機軟件VMware的安裝方法二、掌握Fedora Core 4 Linux發(fā)行版的安裝【實驗內(nèi)容】一、準備如下安裝文件:1. VMware.Workstation.5.5中文版(虛擬機)帶注冊機2. FC4-i386-disc1.iso3. FC4-i386-disc2.iso4. FC4-i386-disc3.iso5. FC4-i386-disc4.iso6. FC4-i386-rescuecd.i
3、so二、VMware軟件的安裝1. 雙擊安裝文件,按照提示進行下一步2. 需要輸入注冊碼時,運行注冊機目錄下的keygen.exe,點擊generate,serial框中的即為注冊碼。3. 安裝完成后,運行漢化補丁目錄下的HF_Vmware5.5進行漢化三、Fedora Core 4 Linux發(fā)行版的安裝1. 在VMware軟件中,新建虛擬機->下一步,選擇典型->下一步,選擇linux->下一步,選擇linux安裝的位置->下一步,使用橋接網(wǎng)絡(luò)->下一步,完成2. 編輯虛擬機->設(shè)置,選擇cdrom1,使用iso映像,選中FC4-i386-disc1.i
4、so,確定3. 啟動此虛擬機,進入linux安裝界面4. 選擇skip,跳過光盤檢測5. 按next,選擇簡體中文,按next,下一步6. 安裝類型選擇定制,下一步7. 選擇手工分區(qū),下一步,彈出警告框,選擇是8. 新建,選擇文件類型為swap,大小為1000MB,確定。9. 新建,選擇文件類型為ext3,掛載點為/,大小為“使用全部可用空間”,確定,分區(qū)結(jié)果如下圖所示:10. 下一步,下一步,選擇無防火墻,彈出警告框,點擊繼續(xù)11. 下一步,設(shè)置用戶口令,輸入兩次,必須相同,至少為6個字符12. 下一步,選擇軟件包組界面,選擇全部(7G左右,保證硬盤空間充足,避免今后使用時出現(xiàn)一些問題)13
5、. 按照提示,點擊下一步,開始安裝14. 第一張盤FC4-i386-disc1.iso安裝完后,有提示音15. 編輯虛擬機->設(shè)置,選擇cdrom1,使用iso映像,選中FC4-i386-disc2.iso,確定,繼續(xù)第二張盤的安裝16. 完成四張盤的安裝后,自動重啟,進入系統(tǒng)17. 按提示點擊下一步,設(shè)置自己的用戶名,系統(tǒng)默認有個超級用戶root18. 在提示輸入用戶名時,可以輸入自己設(shè)置的用戶名和密碼(進入系統(tǒng)后,使用用戶權(quán)限,安全),也可以輸入root用戶,密碼為在第11步里設(shè)置的(進入系統(tǒng)后,使用超級用戶權(quán)限)實驗二 VMware tools的安裝【實驗?zāi)康摹恳?、了解VMware
6、 tools的用途二、掌握VMware tools的安裝方法三、初步了解部分Linux命令的使用【實驗內(nèi)容】一、VMvare tools的用途:1. 在Linux中方便地訪問Windows系統(tǒng)下的文件(通過目錄/mnt/hgfs)2. 增強桌面圖形性能,屏幕分辨率3. 鼠標可以在Windows系統(tǒng)和虛擬機之間方便切換二、VMware tools的安裝1. 打開VMware軟件,啟動已安裝的Linux系統(tǒng),通過菜單虛擬機->安裝vmware工具,點擊install2. 在Linux桌面上,點鼠標右鍵,打開終端3. 輸入以下命令:mount t iso9660 /dev/cdrom /mnt
7、4. cd /mnt5. cp VMwareTools-5.5.0-18463.tar.gz /tmp 6. cd /tmp7. umount /dev/cdrom8. tar zxvf VmwareTools-5.5.0-18463.tar.gz9. cd vmware-tools-distrib10. ./vmware-install.pl11. 一路回車12. 虛擬機->虛擬機設(shè)置->選項->共享文件夾->添加(名稱d,主機文件夾D:,名稱e,主機文件夾E:),確定13. reboot三、驗證是否安裝成功 1、鼠標是否能方便地在Windows和虛擬機之間切換 2、
8、在Linux中能否通過目錄/mnt/hgfs訪問Windows下的文件實驗三 Linux基本命令的使用(一)【實驗?zāi)康摹恳?、了解Linux系統(tǒng)中的用戶管理二、掌握Linux系統(tǒng)中用戶管理相關(guān)的常用命令【實驗內(nèi)容】一、Linux是一個支持多用戶的操作系統(tǒng),其中root用戶必不可少,root用戶具有超級管理權(quán)限。其他用戶具有一般權(quán)限,Linux還支持用戶組管理。二、最常使用的一些命令:1、who命令:顯示系統(tǒng)中當前有哪些用戶在線,顯示的了用戶ID,終端,登錄IP,上線時間,停留時間,CPU使用量,動作等等。2、passwd命令:用來更改用戶的密碼3、su命令:從一般用戶切換到root用戶,需要輸入
9、密碼4、useradd命令:添加新用戶5、userdel命令:刪除用戶6、usermod命令:修改用戶賬號7、groupadd命令:增加新的用戶組8、groupdel命令:刪除用戶組9、groupmod命令:修改用戶組10、gpasswd命令:管理組成員11、last命令:顯示系統(tǒng)開機以來或是從每月初登錄用戶的信息三、練習(xí) 1、在Linux下將root用戶的密碼修改為Linux#1 2、創(chuàng)建用戶user01,user02,user03,創(chuàng)建用戶組group1,group23、將用戶user01、user02劃歸group1組,將用戶user03劃歸group2組實驗四 Linux基本命令的使用
10、(二)【實驗?zāi)康摹恳?、了解Linux系統(tǒng)中的文件和目錄管理二、掌握Linux系統(tǒng)中文件和目錄管理相關(guān)的常用命令【實驗內(nèi)容】一、Linux系統(tǒng)中的目錄及各個目錄的大致作用: / :根目錄 /bin: 存放必要的命令 /boot :存放內(nèi)核以及啟動所需的文件等 /dev: 存放設(shè)備文件 /etc :存放系統(tǒng)的配置文件 /home :用戶文件的主目錄,用戶數(shù)據(jù)存放在其主目錄中 /lib: 存放必要的運行庫 /mnt: 存放臨時的映射文件系統(tǒng),我們常把軟驅(qū)和光驅(qū)掛裝在這里的floppy和cdrom子目錄下。 /proc: 存放存儲進程和系統(tǒng)信息 /root: 超級用戶的主目錄 /sbin: 存放系統(tǒng)管
11、理程序 /tmp: 存放臨時文件的目錄 /usr: 包含了一般不需要修改的應(yīng)用程序,命令程序文件、程序庫、手冊和其它文檔。 /var: 包含系統(tǒng)產(chǎn)生的經(jīng)常變化的文件,例如打印機、郵件、新聞等假脫機目錄、日志文件、格式化后的手冊頁以及一些應(yīng)用程序的數(shù)據(jù)文件等等。 二、Linux系統(tǒng)中的文件類型: 1、普通文件,如文本文件、C語言源文件、二進制的可執(zhí)行文件、shell文件。 2、目錄文件3、設(shè)備文件,如軟驅(qū)A為/dev/fd0三、常用命令 1、cat命令:將文件輸出或重定向到其它文件 2、cd命令:切換工作目錄 3、cp命令:復(fù)制文件或目錄 4、mv命令:將一個文件移至另一文件,或?qū)?shù)個文件移至另
12、一目錄 5、rm命令:刪除文件或目錄 6、ls命令:顯示指定目錄下的內(nèi)容 7、mkdir命令:建立目錄 8、rmdir命令:刪除空的目錄 9、touch命令:創(chuàng)建空文件 10、wc命令:該命令統(tǒng)計給定文件中的字節(jié)數(shù)、字數(shù)、行數(shù)11、pwd命令:顯示當前所在目錄的絕對路徑名稱12、more命令:類似cat,不過會一頁一頁地顯示13、find命令:在指定的目錄及子目錄中查找匹配條件的文件14、grep命令:文本搜索命令,支持正則表達式15、ln命令:創(chuàng)建軟鏈接或硬鏈接16、chgrp命令:更改文件或目錄的所屬群組17、chmod命令:更改文件或目錄的權(quán)限18、chown命令:改變文件或目錄的所有者
13、實驗五 Linux基本命令的使用(三)【實驗?zāi)康摹恳弧⒄莆誏inux系統(tǒng)中其它的一些常用命令【實驗內(nèi)容】一、網(wǎng)絡(luò)管理: 1、ifconfig命令:配置或查看網(wǎng)絡(luò)接口參數(shù) 2、ping命令:測試本地到目的主機是否連通 3、netstat命令:顯示與IP、TCP、UDP和ICMP協(xié)議相關(guān)的統(tǒng)計數(shù)據(jù),一般用于檢驗本機各端口的網(wǎng)絡(luò)連接情況 4、traceroute命令:顯示數(shù)據(jù)包到主機間的路徑 5、route命令:查看并編輯IP路由表 6、mesg命令:打開或關(guān)閉其他用戶對自己登錄終端的廣播功能 7、write命令:向指定的用戶發(fā)送信息二、進程管理 1、ps命令:顯示當前運行進程的狀態(tài) 2、kill命
14、令:發(fā)送特定信號給id為pid的進程 3、top命令:實時顯示進程的動態(tài)三、文件系統(tǒng) 1、fdisk命令:查看或創(chuàng)建磁盤分區(qū) 2、df命令:顯示文件系統(tǒng)的狀況 3、dd命令:把指定的輸入文件拷貝到指定的輸出文件中,并且在拷貝過程中可以進行格式轉(zhuǎn)換。 4、fsck命令:檢查與修復(fù)文件系統(tǒng) 5、mkfs命令:在特定的分區(qū)上建立文件系統(tǒng) 6、mount命令:將文件系統(tǒng)掛在目錄的某個位置之上。這個命令可以被用來掛上任何的文件系統(tǒng),甚至可以用-o loop選項將某個一般的文件當成硬盤分區(qū)掛載。這對于ramdisk或是ISO9660的鏡像文件之解讀非常實用。四、系統(tǒng)管理 1、clear命令:清除屏幕 2、
15、export命令:用于設(shè)置或顯示環(huán)境變量 3、halt命令:關(guān)閉系統(tǒng) 4、init命令:所有進程的父進程,改變運行層級 5、shutdown命令:關(guān)機程序 6、reboot命令:重新啟動五、備份壓縮 1、tar命令:對文件或目錄進行打包或解包 2、gzip/gunzip命令:壓縮和解壓縮 3、bzip2/bunzip2命令:比gzip壓縮效率更高的壓縮和解壓縮六、其它 1、cal命令:顯示日歷 2、at命令:可以讓用戶指定在特定時刻執(zhí)行某個程序或命令注:以上所涉及到的僅僅是Linux系統(tǒng)中的一部分常用命令,其它未涉及到的命令可在今后需要使用時再通過網(wǎng)絡(luò)查詢掌握其使用方法。另外,不同的Linux
16、發(fā)行版可能還有自己特定的一些命令集合。實驗六 文本編輯器vi的使用【實驗?zāi)康摹恳?、掌握文本編輯器vi的使用方法【實驗內(nèi)容】一、vi的三種工作模式:1、命令模式:執(zhí)行相關(guān)文本編輯命令2、輸入模式:輸入文本3、末行模式:實現(xiàn)查找、替換、保存、多文件操作等等功能二、進入vi,直接在Shell提示符下鍵入vi 文件名稱,如果該文件在當前目錄不存在,則vi創(chuàng)建之。三、退出vi1、在命令模式下輸入“:wq”,保存文件并退出vi2、若不需要保存文件,輸入“:q”3、若文件已修改,但不保存,輸入“:q!”強制退出vi4、其它一些不常用的方法在此省略。四、命令模式下的常用編輯命令1、啟動vi后,進入的是vi的命
17、令模式2、按i鍵,進入輸入模式,可以進行文本的編輯,在輸入模式下,按esc鍵,可切換回命令模式 i:光標位置不變,可在光標左側(cè)插入正文 a:光標位置向后退一格,可在光標左側(cè)插入正文 o:在光標所在行的下一行增添新行 O:在光標所在行的上一行增添新行 I:光標跳到當前行的開頭 A:光標跳到當前行的末尾 3、光標的移動 k、j、h、l分別等同于上、下、左、右箭頭鍵 Ctrl+b,向上翻一頁 Ctrl+f,向下翻一頁 nH,將光標移到屏幕的第n行 nL,將光標移到屏幕的倒數(shù)第n行 4、刪除文本 nX,刪除光標所指向的后n個字符 D,刪除光標右側(cè)的所有字符(包括光標所指向的字符) db,刪除光標左側(cè)的
18、全部字符 ndd,刪除當前行和當前行以后的n行內(nèi)容 5、粘貼和復(fù)制 p,將緩沖區(qū)的內(nèi)容粘貼到當前字符的右側(cè) P,將緩沖區(qū)的內(nèi)容粘貼到當前字符的左側(cè) yy,復(fù)制當前行到內(nèi)存緩沖區(qū) nyy,復(fù)制n行內(nèi)容到內(nèi)存緩沖區(qū) 6、搜索字符串 /str1,正向搜索字符串str1 n,繼續(xù)搜索 ?str2,反向搜索字符串str2 7、撤銷和重復(fù) u,撤銷前一條命令的執(zhí)行結(jié)果 .,重復(fù)最后一條命令 五、末行模式下的命令 :n,將光標移動到第n行 :nw file,將第n行寫入file文件 :n,mw file,將第n行至第m行寫入file文件 :w,將編輯的內(nèi)容寫入原始文件 :wq,將編輯的內(nèi)容寫入原始文件并退出
19、編輯程序 :w file,將編輯的內(nèi)容寫入file文件,保持原有文件的內(nèi)容不變 :f file,將當前文件重命名為file :e file,編輯新文件file代替原有內(nèi)容 :f,打印當前文件的狀態(tài),如文件的行數(shù),光標所在的行號等 :!<命令>,執(zhí)行相應(yīng)shell命令 六、三種工作模式的切換 1、在Linux shell下,鍵入vi或vi <文件名>進入命令模式 2、在命令模式下,鍵入:進入末行模式 3、在命令模式下,鍵入文本編輯命令如i,a,o等進入文本輸入模式 4、在文本輸入模式下,按esc鍵進入命令模式 5、在末行模式下,按backspace鍵或del鍵進入命令模式
20、 6、在末行模式下,鍵入q或wq,退出vi,飯后到Linux shell下實驗七 使用GCC編譯C語言程序【實驗?zāi)康摹恳弧⒘私釭NU gcc編譯器二、掌握使用GCC編譯C語言程序的方法【實驗內(nèi)容】一、使用vi或其它文本編輯器,輸入C語言程序,并保存為test.c二、在Linux shell下,輸入命令gcc o test test.c三、編譯正確后,輸入命令./test運行程序,觀察程序運行結(jié)果四、若編譯錯誤,根據(jù)提示信息,進入程序查錯,再回到第二步,直至程序語法無誤。附:GCC使用方法和常用選項 使用GCC編譯C程序生成可執(zhí)行文件需要經(jīng)歷4個步驟:1、 預(yù)處理,這一步需要分析各種命令,如#d
21、efine、#include、#ifdef等。Gcc調(diào)用cpp程序來進行預(yù)處理2、 編譯,這一步將根據(jù)輸入文件產(chǎn)生匯編語言,gcc調(diào)用ccl進行編譯工作3、 匯編,這一步中將匯編語言作為輸入,產(chǎn)生具有.o擴展名的目標文件,gcc調(diào)用as進行匯編工作4、 連接,這一步中各目標文件.o被放在可執(zhí)行文件的適當位置上,該程序引用的函數(shù)也放在可執(zhí)行文件中,gcc調(diào)用ld來完成 Gcc命令的基本用法為:gcc option filename,命令行選項指定的操作將在命令行上每個給出的文件上執(zhí)行。例如: Gcc o prog main.c test1.c test2.c 其中,“-o prog”指定輸出的可
22、執(zhí)行文件名為prog,如果沒有指定-o參數(shù),gcc將使用默認的可執(zhí)行文件名a.out Gcc的命令選項有許多項,但經(jīng)常使用的幾個選項是: 1、-c:只預(yù)處理,編譯和匯編源程序,不進行連接 2、-o exefile,確定輸出文件為exefile,如果沒有該選項,默認輸出為可執(zhí)行文件a.out 3、-Dmacro或-Dmacro=defn,其作用類似于源程序代碼中的#define 4、-O,對程序編譯進行優(yōu)化,編譯后可執(zhí)行文件的長度和執(zhí)行時間縮短,但編譯過程耗時變長,對主機性能要求較高。 5、-O2,比-O更好地優(yōu)化 6、-g,告訴gcc產(chǎn)生能被GNU調(diào)試器使用的調(diào)試信息以便調(diào)試程序 7、-Idi
23、r,將dir目錄加到搜尋頭文件的目錄列表中。并優(yōu)先于在gcc中默認的搜尋目錄 更多的選項說明請查閱gcc使用手冊。 實驗八 使用GDB調(diào)試程序【實驗?zāi)康摹恳?、掌握使用GDB調(diào)試程序的方法【實驗內(nèi)容】一、按照實驗七的內(nèi)容,編寫程序并編譯生成可執(zhí)行文件二、運行可執(zhí)行文件,觀察程序運行結(jié)果三、若運行結(jié)果不對,表明程序邏輯有誤,可通過GNU的一大工具GDB來調(diào)試程序。附:GDB的使用方法和常用命令 GDB能夠觀察一個程序在執(zhí)行時的內(nèi)部活動,或程序出錯時發(fā)生了什么,GDB的主要功能有以下幾點:1、設(shè)置運行環(huán)境和參數(shù),運行指定程序2、讓程序在指定條件下停止和運行3、在程序運行停止后,檢查變量、內(nèi)存或寄存器
24、的值,查看程序運行情況4、修改正在調(diào)試的程序的源代碼,這樣可以在線修正某個bug引起的問題,然后繼續(xù)查找下一個bugGDB的使用可以直接在shell命令行下輸入gdb并回車,再在gdb命令行下指定要調(diào)試的程序。也可以用gdb filename在啟動時指定要調(diào)試的程序名。為了使GDB能夠正常工作,必須使程序在編譯時包含調(diào)試信息,即在使用gcc時加-g選項即可。 在GDB啟動后,就進入GDB命令方式,下面是一些常用的GDB命令:1、file,載入程序命令,如要加載hello程序用file hello 2、quit,退出gdb命令,也可以用ctrl+d來退出 3、run,運行程序命令,如果程序需要參
25、數(shù),可在run指令后接著輸入?yún)?shù)。 4、info,查看程序信息 5、list,列出源程序命令,如list FUNCTION,list LINENUM,list FILENAME:FUNCTION6、break,設(shè)置斷點,在程序被載入并且當前沒有正在運行時,就能設(shè)置、修改、刪除斷點。如break FUNCTION,break LINENUM,break *ADDRESS,breakif COND7、watch,設(shè)置監(jiān)視點命令,監(jiān)視某個表達式或變量,當它被讀或被寫時讓程序停下來,如watch EXPRESSION8、print,顯示表達式的值,如print exp9、step或next,單步執(zhí)行指
26、令,step可以跟蹤進入一個函數(shù),而next指令不會10、continue,繼續(xù)執(zhí)行命令11、make,產(chǎn)生可執(zhí)行文件,通過make不用退出gdb就可以重新產(chǎn)生可執(zhí)行文件12、shell命令,不離開gdb就可以執(zhí)行shell命令更多的gdb命令請查閱gdb使用手冊實驗九 makefile的編寫【實驗?zāi)康摹恳?、了解makefile的編寫規(guī)則二、通過make命令和makefile文件實現(xiàn)自動化編譯【實驗內(nèi)容】一、假設(shè)一個程序由test1.c,test2.c兩個源文件組成,test1.c文件需要包含頭文件test1.h,test2.c需要包含test2.h二、編寫一個簡單的makefile文件如下:
27、 Test:test1.o test2.o Gcc o test test1.o test2.o Test1.o:test1.c test1.h Gcc c o test1.o test1.c Test2.o:test2.c test2.h Gcc c o test2.o test2.c Clean: Rm f *.o三、在shell環(huán)境下,運行make,則自動編譯程序,生成可執(zhí)行程序test四、根據(jù)以上實例和makefile的編寫規(guī)則,編寫多個c語言程序,并使用make來實現(xiàn)自動編譯。 附:make和makefile相關(guān)介紹 在UNIX/Linux系統(tǒng)上,通常一個軟件包里包含多個程序文件,如
28、果用gcc一條條地編譯,效率太低,而且當修改了某個程序文件時,需要重新編譯軟件包中的所有文件。使用make程序的目的就是自動確定一個軟件包中哪些部分需要重新編譯,并用特定的命令去編譯它。 要使用make命令,必須編寫makefile文件,makefile文件描述了軟件包中各個文件之間的依賴關(guān)系,提供了更新每個文件的命令。 當編寫完makefile文件后,只要在shell下使用make命令就可以完成所有必需的重新編譯。Make程序利用makefile文件中的數(shù)據(jù)和每個文件最近一次更改的時間來確定哪些文件需要更新。 Makefile的編寫規(guī)則:Makefile文件中包含著一些目標,對于每一個目標,
29、都提供了與這個目標具有相關(guān)性的其他目標或文件的名字,以及實現(xiàn)這個目標的一組命令。其中,目標就是make程序要完成的一項任務(wù),通常是一個文件的文件名。相關(guān)性即一個目標的完成依賴于其他一些目標或文件。在本實驗內(nèi)容中的示例makefile中,定義了四個目標:test、test1.o、test2.o、clean,每個目標都是從最左邊開始寫,后面跟一個冒號(:),如果這個目標的實現(xiàn)依賴于其他的目標或文件,把他們列在冒號的后面,并以空格隔開。然后另起一行開始寫實現(xiàn)這個目標的一組shell命令,shell命令可以有若干行。一般情況下,調(diào)用make可以輸入make target,target是makefile
30、文件中定義的目標,如果省略target,make就將更新makefile文件的第一個目標。Make在檢查一個目標是否已經(jīng)過時并需要更新時,采用的是按相關(guān)性遞歸的辦法,make在構(gòu)建一個目標之前要生成該目標所依賴的所有文件,并遞歸地前進,從而確保這些文件都是新的。目標clean是makefile中常用的一種專用目標,即刪除所有的目標模塊。一般不作它用。Makefile中還可以使用預(yù)先定好的所寫和宏,還支持一些隱含規(guī)則,makefile的高級使用請查閱相關(guān)文檔。當然,自己編寫makefile比較繁瑣,一般來說,可以找到一些參考的makefile文件模板,再根據(jù)自己的實際情況稍作修改即可。同時還有一
31、些專門的工具軟件比如automake、autoconf來生成makefile文件。實驗十 嵌入式Linux開發(fā)環(huán)境建立及內(nèi)核編譯【實驗?zāi)康摹恳弧⒘私馇度胧介_發(fā)環(huán)境及交叉編譯器二、了解嵌入式Linux的相關(guān)特性三、掌握如何建立一個嵌入式Linux開發(fā)環(huán)境四、如何利用交叉編譯器來編譯內(nèi)核【實驗設(shè)備】硬件:THUGA-1型實驗箱,PC機軟件:PC機操作系統(tǒng):Linux【實驗內(nèi)容】一、建立交叉編譯環(huán)境該交叉編譯工具在光盤的Linuxtoolchains文件夾下的cross-3.3.2.tar.bz2 。具體步驟如下:1)解壓編譯工具包首先進入/usr/local 目錄,建立一個arm的子目錄(如果/u
32、sr/local/arm 目錄不存在),再進入該目錄。命令如下:# cd /usr/local# mkdir arm# cd arm然后將光盤Linux目錄下的 “toolchain”文件夾下的cross-3.3.2.tar.bz2拷貝到剛剛進入的arm目錄下,并執(zhí)行以下命令:# tar jxf cross-3.3.2.tar.bz2解壓后會出現(xiàn)一個3.3.2的目錄,該目錄下有g(shù)cc,g+,bin等各種實用工具。就這樣,交叉編譯工具就安裝好了。2)將該交叉編譯工具的路徑添加到環(huán)境變量解壓后,交叉編譯工具中的可執(zhí)行文件在3.3.2/bin 目錄下,此目錄不在Linux系統(tǒng)的可執(zhí)行程序搜索目錄中,
33、因此需要在啟動設(shè)置里手動添加進去,具體做法是修改/etc/bashrc或用戶主目錄下的.bashrc文件,在文件的最后一行增加路徑,增加的文本如下:export PATH=$PATH:/usr/local/arm/3.3.2/bin這樣就將交叉編譯工具的路徑添加進去了。為了使修改的文件立即生效,可執(zhí)行:# source /etc/bashrc (假設(shè)修改的文件是/etc/bashrc)或者重起Linux操作系統(tǒng)。然后在終端上輸入arm,然后按tab鍵,會自動顯示arm- linux-,表示交叉編譯環(huán)境安裝成功。二、編譯內(nèi)核 首先將光盤Linuxkernel目錄下的pxa270_kernel2.
34、6.9.tar.gz 拷貝到/home 目錄,然后進入這個目錄,解壓命令如下:# cd /home# tar -xzvf pxa270_kernel2.6.9.tar.gz解壓完成后,將會看到在/home目錄下生成一個pxa270_linux-2.6.9 的文件目錄。接著進入pxa270_linux-2.6.9 此目錄,該目錄下顯示的是嵌入式Linux的內(nèi)核代碼的組織結(jié)構(gòu):/arch 子目錄包含了所有硬件結(jié)構(gòu)特定的內(nèi)核代碼。如 i386,alpha 和 arm.。/drivers 子目錄包含了內(nèi)核中所有的設(shè)備驅(qū)動程序,如 usb 和 sound。/fs 子目錄包含了所有的文件系統(tǒng)的代碼。如 n
35、fs,ext3 和 jffs2 等。/include 子目錄包含了建立內(nèi)核代碼時所需的大部分庫文件,這個模塊利用其它模塊重建內(nèi)核。該目錄也包括了不同平臺需要的庫文件。比如,asm-arm 是 arm 平臺需要的庫文件。 /init 子目錄包含了內(nèi)核的初始化代碼,內(nèi)核從此處工作。/ipc 子目錄包含了進程間通信代碼/kernel 子目錄包含了主內(nèi)核代碼/mm 子目錄包含了所有內(nèi)核管理代碼/net 子目錄包含了和網(wǎng)絡(luò)相關(guān)的代碼,如 atm,ipv6 等。一般在每個目錄下都有一個 depend 文件和一個 Makefile 文件。這兩個文件都是編譯時使用的輔助文件。其中 Makefile 文件中指出
36、了編譯時需要用到的編譯器,也是移植內(nèi)核過程中不可缺少的。執(zhí)行 make menuconfig 命令。# cd pxa270_linux_2.6.9# make menuconfig下圖為執(zhí)行 make menuconfig 后顯示的配置菜單:用鍵盤的上下鍵可以移動藍色選擇條到如下圖所示的位置并按回車,選擇“Load an Alternate Configuration File”欄目來裝載一個已經(jīng)存在的配置文件,如下圖:修改要 load 的配置文件名,這里裝載的配置文件為:kernel_pxa27x.cfg,如下圖:配置文件輸入后,這時可以按“OK”鍵(鍵盤的 ENTER 鍵)返回到主菜單欄中
37、。接著按“ESC”鍵,退出內(nèi)核配置菜單,這時將出現(xiàn)一個詢問是否保存配置的對話框,這時選擇“yes”回車退出,如下圖。到此為止,內(nèi)核的配置結(jié)束。接著執(zhí)行命令 make zImage 就可以進行內(nèi)核的編譯了,如圖:# make zImage結(jié)束后可以在 arch/arm/boot 目錄下找到壓縮內(nèi)核文件 zImage。此文件可以通過 BOOTLOADER 下載運行和燒寫到 FLASH 里去。實驗十一 嵌入式Linux根文件系統(tǒng)制作【實驗?zāi)康摹恳弧⒘私馇度胧较嚓P(guān)文件系統(tǒng)二、了解Cramfs文件系統(tǒng)的相關(guān)特性三、學(xué)習(xí)如何去制作一個cramfs根文件系統(tǒng)【實驗內(nèi)容】一、制作cramfs格式根文件系統(tǒng)步驟
38、首先展開原有的 cramfs 格式的根文件系統(tǒng)到一個指定的目錄,然后從這個目錄復(fù)制所有的內(nèi)容到另外一個目錄,為了便于復(fù)制,我們先用 tar -cvf 命令將展開的根文件的所有的內(nèi)容歸檔為一個文件,接著再用 tar -xvf 命令展開這個歸檔文件到新的文件夾,從而完成這個復(fù)制過程。以下就是具體的步驟:(1) 將 th_pax270_qtopia.cramfs 拷貝到任意目錄下(2) 在該目錄下建立兩個子文件夾:mkdir changmkdir guo(3) 將 th_pax270_qtopia.cramfs 掛接到 chang 目錄mount t cramfs th_pax270_qtopia.
39、cramfs chang o loop(4)將 chang 目錄下的內(nèi)容壓縮cd chang tar cvf ./1.tar ./這樣將在 chang 的上一級目錄產(chǎn)生一個 1.tar 的包(5)將包解壓到 guo 目錄下。umount chang ;卸載掛接cd . ;進入上一級目錄mv 1.tar guo ; cd guo ;tar xvf 1.tar;將打包的根文件系統(tǒng)的里的內(nèi)容解壓rm 1.tar(6)將自己的驅(qū)動 gpiodrv.o 和應(yīng)用程序 gpio_test 拷貝到相應(yīng)的目錄下。將 gpiodrv.o 拷貝到 guo/usr/目錄下將 gpio_test 拷貝到 gpio_te
40、st 下(7)經(jīng)過上面的步驟就可以將自己的驅(qū)動和應(yīng)用程序添加到 cramfs 根文件系統(tǒng)中了現(xiàn)在將開始制作 cramfs 根文件系統(tǒng)先將 mkcramfs 可執(zhí)行文件拷貝到 guo 所在的目錄在這個目錄下運行命令:./mkcramfs guo th_pax270_qtopia.cramfs運行成功后,會在該目錄下生成 th_pax270_qtopia.cramfs根文件系統(tǒng)二、根文件系統(tǒng)制作成功后,可將剛才生成的th_pax270_qtopia.cramfs文件燒錄到NorFlash中。實驗十二 嵌入式Linux內(nèi)核和根文件系統(tǒng)的下載和燒寫【實驗?zāi)康摹恳弧⒄莆赵趯嶒炏渖线M行嵌入式Linux內(nèi)核
41、的下載和燒寫二、掌握在實驗箱上進行嵌入式Linux根文件系統(tǒng)的下載和燒寫【實驗內(nèi)容】一、下載和燒寫嵌入式Linux內(nèi)核用 BOOTLOADER 的串口連接或網(wǎng)絡(luò)連接方式都可以在 DNW 里下載文件,用網(wǎng)絡(luò)方式速度會比較快一點。下面主要介紹通過網(wǎng)絡(luò)連接方式下載 Linux 內(nèi)核,并進行燒寫的過程。首先使用實驗箱附帶的 RJ45 網(wǎng)絡(luò)交叉線將 PC 機的網(wǎng)卡與教學(xué)平臺底板的 10M 網(wǎng)口(CON4 口)相連接,然后運行 DNW 程序并設(shè)置 DNW 的串口通訊參數(shù),然后按住小鍵盤上的 E 鍵不放同時按下板子的復(fù)位鍵,這時可看到 BOOTLOADER的功能選擇界面!在 BOOTLOADER 的選擇菜單
42、里按下“5”鍵,然后回車,目的是設(shè)置 BOOTLOADER 和 PC通訊時所使用的 IP 地址,注意這個 IP 地址不是 LINUX 操作系統(tǒng)啟動后的 IP 地址,兩者并無關(guān)聯(lián),按下“5”鍵后,出現(xiàn)如下圖所示:這時請輸入一個 IP 地址,這個 IP 地址應(yīng)該與 PC 機的網(wǎng)卡的 IP 地址處在同一子網(wǎng),然后回車退出。另外如果要保存這個 IP 地址,使得下次系統(tǒng)重啟后仍然設(shè)為這個 IP 地址值,那么應(yīng)該輸入“11”,選擇 BOOTLOADER 的“11 : Save Boot Parameters”功能選項保存這個設(shè)置值。開始下載內(nèi)核映像文件到板子的 RAM 了,在 BOOTLOADER 的選擇
43、菜單里按下“3”鍵,然后回車,目的是進入網(wǎng)絡(luò)下載功能,在提示下載內(nèi)存的地址時輸入 2,即進入初始化網(wǎng)口并進入網(wǎng)絡(luò)下載功能,如下圖所示:從提示信息可以看到一個 tftp 文件傳輸服務(wù)程序已經(jīng)運行起來了,這時需要在 PC 機上運行 tftp 的客戶端程序,并通過客戶程序上傳 linux 內(nèi)核映像文件。方法是在存放zImage的文件夾生成一個批處理文件,并在批處理文件中輸入以下內(nèi)容,如下圖: 這個批處理文件只有一行語句:tftp -i 01 put zImage或者把光盤下目標代碼文件夾拷貝到PC機,用記事本打開zImage.bat這個批處理文件,并在批處理文件中修改IP地址并保
44、存即可。這個批處理文件的作用是將 zImage 這個 linux 內(nèi)核映像文件上傳到 01 這個主機上,這個 IP 地址是BOOTLOADER 中設(shè)置的 IP 地址。雙擊運行這個批處理,然后將目光轉(zhuǎn)移到 DNW 上,正常的話,應(yīng)該看到文件被下載到板子的過程,如下圖:下載結(jié)束后輸入 n 不運行它,會回到 BOOTLOADER 主菜單,然后按下“1”鍵,選擇把下載的文件燒寫到 Nor Flash,這時出現(xiàn)的界面如下圖:這個界面出現(xiàn)了 04 四個選項,要用戶選擇將下載的文件燒寫到 Nor Flash的哪個分區(qū),0 是引導(dǎo)區(qū)(bootloader 分區(qū)),1是內(nèi)核分區(qū),2是根文件系
45、統(tǒng)分區(qū),3是未定義分區(qū),4是漢字庫,由于燒寫的是內(nèi)核,所以應(yīng)該選擇“1”。按下“1”鍵后,出現(xiàn)了下面的界面,如下圖,直接按“Y”,就可以開始燒寫了!二、下載和燒寫嵌入式Linux根文件系統(tǒng)下載過程和下載內(nèi)核一樣,在上傳根文件系統(tǒng)時需在存放根文件系統(tǒng)的文件夾生成一個批處理文件,并在批處理文件中輸入以下內(nèi)容,如下圖:或者直接編輯批處理文件th_pax270_qtopia.cramfs.BAT的IP地址并保存,然后雙擊該文件即可。下載結(jié)束后選擇 1 將文件燒寫到 NOR FLASH 里去,再選擇分區(qū) 2rootfs 后按 y 確認燒寫,文件較大時燒寫時間也會變長,請耐心等待,如下圖:三、啟動運行Li
46、nux用交叉串口線連接開發(fā)板的全功能串口(P2 口)和 PC 的串口,關(guān)閉 DNW 程序(若先前在使用),打開超級終端,選擇 PC 和實驗箱連接所用的串口,設(shè)置串口通訊參數(shù)如下圖:按確定保存設(shè)置后啟動連接。然后按住 4X4 鍵盤上的 D 鍵,再打開底板電源或在已開電源情況下按一下底板的復(fù)位鍵,BOOTLOADER 會自動啟動 Linux,啟動后再松開 D 按鍵,出現(xiàn)如下圖:則Linux在實驗箱上啟動成功!實驗十三 嵌入式Linux驅(qū)動程序添加【實驗?zāi)康摹恳?、了解嵌入式Linux系統(tǒng)中驅(qū)動程序的開發(fā)過程二、掌握如何來運行和加載驅(qū)動程序【實驗內(nèi)容】一、Linux中字符設(shè)備驅(qū)動的添加在一個字符設(shè)備驅(qū)
47、動里面實現(xiàn)對 GPIO 端口的操作。在模塊加載的時候跑馬燈運行起來,模塊卸載的時候,跑馬燈停止。THUGA-1型實驗箱的4個LED指示燈LED1LED4由4個I/O口控制,它們分別是:GPIO89,GPIO107,GPIO108 以及 GOIO96。當 GPIO89,GPIO107,GPIO108 以及 GOIO96 輸出低電平的時候,相應(yīng)的 LED 指示燈亮。二、字符設(shè)備的驅(qū)動源程序 gpiodrv.c該文件在目錄:Linux實驗源碼exp3-adddriverdriver下,該驅(qū)動程序的 Makefile 是按照 Linux2.6 內(nèi)核的要求來編寫的。其中PXA270X_KERNEL_DI
48、R的值要修改設(shè)置為用戶本機上的PXA270的內(nèi)核源碼包的位置。接下來將gpiodrv.c和這個Makefile放置在同一個新建目錄下,進入這個目錄,輸入make命令后,編譯成功后將在這個目錄下生成一個gpiodrv.ko的文件。三、測試程序 gpio_test.c將 gpio_test.c 放置在一個新建目錄下,進入該目錄下,輸入命令:/usr/local/arm/3.3.2/bin/arm-linux-gcc o gpio_test gpio_test.c編譯成功后,將在該目錄下生成 gpio_test 可執(zhí)行文件,要注意交叉編譯工具arm-linux-gcc 的路徑要設(shè)置正確,這里是/us
49、r/local/arm/3.3.2/bin。為了便于操作,提供了一個用于編譯 gpio_test.c 程序的 Makefile,用戶可以到Linux實驗源碼exp3-adddrivertest的目錄里面,直接輸入命令 make 就可以編譯該測試程序了。四、實驗操作步驟1用交叉串口線將PC機的COM口與實驗箱的UART(P2)相連,插上12V電源。2啟動實驗箱進入 Linux 環(huán)境,利用超級終端來顯示,進入Linux命令行模式。3輸入命令 cd /tmp,進入 tmp 目錄,因為/tmp 是在 SDRAM 中,可以放數(shù)據(jù)。4將 gpiodrv.ko 和 gpio_test 下載到 /tmp 目錄
50、下(這2個文件可以是自己編譯的,也可以直接采用Linux實驗源碼exp3-adddriver下的文件)。在這里采用 rz 命令來傳輸,rz 命令是通過 Zmodem協(xié)議來傳輸?shù)?。先在實驗箱的終端下輸入 rz 命令,接著點擊超級終端的“傳送”>“發(fā)送文件”,在彈出的對話框中設(shè)置如下:然后點擊發(fā)送。數(shù)據(jù)傳輸完后,再在超級終端中輸入回車,接著通過 ls 來查看/tmp 目錄下是否有 gpiodrv.ko 文件,gpio_test的下載過程是一樣的。5gpiodrv.ko 和 gpio_test 下載成功后,接下來要進行真正的加載和運行的工作了。首先改變 gpio_test 的屬性,命令如下:
51、chmod 755 gpio_test 6加載 gpiodrv.ko 模塊:insmod gpiodrv.ko7建立 gpio 設(shè)備節(jié)點:mknod /dev/gpio c 220 0/dev/gpio 為該設(shè)備驅(qū)動程序的設(shè)備名,c 表明該設(shè)備為字符設(shè)備,220 為該設(shè)備的主設(shè)備號,0 為從設(shè)備號。8執(zhí)行 gpio_test 程序:./gpio_testgpio_test 程序運行起來后,有相應(yīng)的功能選項說明。實驗十四 嵌入式Linux下的音頻實驗【實驗?zāi)康摹恳?、嵌入式Linux音頻播放和音頻錄音二、了解MP3編解碼的原理三、掌握Linux下實現(xiàn)對MP3的編解碼【實驗內(nèi)容】一、1用交叉串口線將
52、PC機的COM口與實驗箱的UART(P2)相連,插上12V電源。2啟動實驗箱進入 Linux 環(huán)境,利用超級終端來顯示,進入Linux命令行模式。3根文件系統(tǒng)內(nèi)帶有一個 mp3 的播放程序 madplay,MP3 文件可以是保存在 MMC/SD 卡、CF 存儲卡、U 盤上的,也可以通過前面說的網(wǎng)絡(luò)、USB 等方法下載。下面以播放放在CF卡中的mp3文件為例說明:首先將CF卡中拷入mp3文件,將CF卡插入實驗箱卡座。掛載CF卡,輸入命令:mount t vfat /dev/ide/host0/bus0/target0/lun0/part1 /tmp/udisk/cd /tmp/udisk/ls;看到音頻文件cd /Qtopia/demo/bin/./ madplay /tmp/udisk/qiufo.mp3即可聽到播放的音樂。二、完整的代碼請看光盤目錄的 Linux 源碼包。實驗十五 嵌入式Linux下的視頻實驗【實驗?zāi)康摹恳?、了解Mplayer播放器二、掌握如何在嵌入式Linux中編譯Mplayer【實驗內(nèi)容】一、Mplayer的編譯1、將光盤的“Linuxmplayer移植work”目錄下,有一個 madplay-0.15.2b.tar.gz 的壓縮包拷貝到 PC 機 Linux 系統(tǒng)的任意目錄下。2、解壓 Mplayer 源碼包tar xjvf madplay-0.
溫馨提示
- 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)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 修建贊助合同范本
- 勞務(wù)時間合同范本
- 內(nèi)外架合同范例
- 化肥合作合同范例
- 專項經(jīng)理聘用合同范本
- 農(nóng)業(yè)購貨合同范本
- 化工產(chǎn)品購銷服務(wù)合同范本
- 醫(yī)院購銷合同范本
- 出口布料銷售合同范例
- 養(yǎng)殖水車出租合同范例
- DB34∕T 3247-2018 井采煤礦綠色礦山建設(shè)要求
- 2024至2030年中國小模數(shù)齒輪市場調(diào)查與行業(yè)前景預(yù)測專題研究報告
- DB32T-公路橋梁水下結(jié)構(gòu)檢測評定標準
- 小學(xué)語文教師讀書筆記范文(5篇)
- 2023年部編人教版六年級道德與法治下冊全冊課件【全套】
- 《茉莉花》(課件)人音版音樂六年級上冊
- 肌肉注射的常見并發(fā)癥及預(yù)防處理措施
- 景觀模型設(shè)計與制作:第7章 建筑模型制作基本技法
- 關(guān)愛婦女防治兩癌講座課件
- DL∕T 584-2017 3kV~110kV電網(wǎng)繼電保護裝置運行整定規(guī)程
- (正式版)FZ∕T 80018-2024 服裝 防靜電性能要求及試驗方法
評論
0/150
提交評論