裸機(jī)開發(fā)環(huán)境及l(fā)inux操作系統(tǒng)下開發(fā)環(huán)境搭建 及Linux常用命令及vi, gdb的使用 實(shí)驗(yàn)?zāi)康模?/font> (1)掌握嵌入式開發(fā)環(huán)境搭建的基本流程 (2)掌握linux系統(tǒng)安裝過程,熟悉基本的Linux指令操作 (3)理解交叉編譯的意義 實(shí)驗(yàn)原理: 嵌入式軟件開發(fā)不同于PC機(jī)的軟件開發(fā),由于不同硬件平臺(tái)的指令系統(tǒng)不同,要想在個(gè)人計(jì)算機(jī)上編寫嵌入式軟件和程序就需要使用對應(yīng)的嵌入式平臺(tái)的開發(fā)環(huán)境,比如大家學(xué)過的51單片機(jī),用的KEIL(keil-C51)軟件就是針對51內(nèi)核平臺(tái)下的集成開發(fā)環(huán)境,keil-C51軟件中集成了代碼編寫、交叉編譯、鏈接、程序燒寫、仿真等最主要功能,從而使51單片機(jī)軟件開發(fā)者在一個(gè)軟件中實(shí)現(xiàn)了整個(gè)的程序開發(fā)流程,方便快捷。 同理,ARM內(nèi)核平臺(tái)也有其相應(yīng)的開發(fā)平臺(tái),包括IAR,KEIL FOR ARM這兩個(gè)著名軟件,這兩個(gè)軟件在開發(fā)不帶操作系統(tǒng)以及帶有小型嵌入式操作系統(tǒng)(如u\Cos,RT-thread,Vx-works等)的產(chǎn)品時(shí)非常方便,但在開發(fā)如linux、安卓系統(tǒng)的產(chǎn)品時(shí)力不能及。因此需要用到更通用些的開發(fā)環(huán)境,如eclipse、PC-linux系統(tǒng)。 Eclipse是一個(gè)開源的軟件工程文件管理界面,當(dāng)它的底層安裝了不同的編譯、仿真等工具后,就可以用來開發(fā)不同平臺(tái)的軟件,如安卓APP,F(xiàn)PGA軟核代碼,當(dāng)然也包括ARM軟件。 當(dāng)需要開發(fā)帶有l(wèi)inux內(nèi)核的大型嵌入式系統(tǒng)時(shí),通常要在linux操作系統(tǒng)下進(jìn)行,因此安裝linux操作系統(tǒng)是開發(fā)嵌入式高端產(chǎn)品的必由之路,linux的使用流程能夠幫助你更好理解嵌入式開發(fā)的每個(gè)環(huán)節(jié)。 實(shí)驗(yàn)儀器及資料: 1個(gè)人電腦(建議安裝winXP或win7-32b,更高版本系統(tǒng)可能導(dǎo)致驅(qū)動(dòng)安裝失敗) 2 FS210試驗(yàn)箱 3 FS210試驗(yàn)箱配套資料(12G) 實(shí)驗(yàn)內(nèi)容及步驟: 一、裸機(jī)開發(fā)環(huán)境搭建(這一大步驟需要在實(shí)驗(yàn)課上完成,第二步可以回去自己做) 下面為win7-32b系統(tǒng)下軟件安裝流程,以后的實(shí)驗(yàn)都使用win7-32位系統(tǒng)進(jìn)行,使用其他系統(tǒng)的同學(xué)請參照實(shí)驗(yàn)箱配套書籍進(jìn)行操作。此實(shí)驗(yàn)手冊不做介紹。 把下載的實(shí)驗(yàn)箱資料解壓(假設(shè)解壓在桌面上)后: (1)安裝GCC編譯器和Yagarto工具包(圈住的兩個(gè)都裝,安裝位置隨意):(已經(jīng)安裝) file:///C:/Users/鐘港/AppData/Local/Temp/msohtmlclip1/01/clip_image002.gif (2)安裝FS-JTAG調(diào)試軟件(安裝位置隨意):(已經(jīng)安裝) file:///C:/Users/鐘港/AppData/Local/Temp/msohtmlclip1/01/clip_image004.gif (3)安裝FS-JTAG驅(qū)動(dòng): 如圖所示用USB線連接JTAG仿真器和電腦 file:///C:/Users/鐘港/AppData/Local/Temp/msohtmlclip1/01/clip_image006.jpg <我的電腦>--右鍵--管理--設(shè)備管理器,如圖 會(huì)出現(xiàn)兩個(gè)帶黃色嘆號的設(shè)備(下圖中的兩個(gè)未知設(shè)備不必管它,只關(guān)心那兩個(gè)“USB<=>JTAG&RS232”即可) file:///C:/Users/鐘港/AppData/Local/Temp/msohtmlclip1/01/clip_image008.jpg 鼠標(biāo)放在“USB<=>JTAG&RS232”上--右鍵--更新驅(qū)動(dòng)程序軟件,如圖 選擇第二項(xiàng): file:///C:/Users/鐘港/AppData/Local/Temp/msohtmlclip1/01/clip_image010.gif ④瀏覽選擇驅(qū)動(dòng)位置并點(diǎn)擊下一步,安裝完成 file:///C:/Users/鐘港/AppData/Local/Temp/msohtmlclip1/01/clip_image012.gif 注意:在win764位以及更高版本系統(tǒng)中會(huì)出現(xiàn)提示“驅(qū)動(dòng)數(shù)字簽名不可用”或者“哈希值不可用“的問題,而且有的電腦可以解決,有的不能解決,同學(xué)們自行百度。 ⑤重復(fù)第三步和第四步,直到使設(shè)備管理器里面沒有帶嘆號的設(shè)備(一共三次) (4)安裝JRE file:///C:/Users/鐘港/AppData/Local/Temp/msohtmlclip1/01/clip_image014.gif (5)安裝串口線驅(qū)動(dòng) ①如圖所示鏈接串口線 file:///C:/Users/鐘港/AppData/Local/Temp/msohtmlclip1/01/clip_image016.jpg ②打開設(shè)備管理器按照“(3)安裝JTAG驅(qū)動(dòng)”方法安裝串口驅(qū)動(dòng) file:///C:/Users/鐘港/AppData/Local/Temp/msohtmlclip1/01/clip_image018.gif (6)解壓Eclipse,并打開 ① file:///C:/Users/鐘港/AppData/Local/Temp/msohtmlclip1/01/clip_image020.gif ②自行在D盤新建一個(gè)Eclipse文件夾,并把上圖壓縮包解壓至Eclipse文件夾中 ③下圖是D盤下解壓的eclipse,將其發(fā)送到桌面,留待以后使用 file:///C:/Users/鐘港/AppData/Local/Temp/msohtmlclip1/01/clip_image022.gif ④雙擊打開eclipse,設(shè)定工作路徑(即以后你用eclipse新建的軟件工程的默認(rèn)保存位置),點(diǎn)擊Workbench。如下圖: file:///C:/Users/鐘港/AppData/Local/Temp/msohtmlclip1/01/clip_image024.gif 至此,可用于開發(fā)ARM裸機(jī)程序的開發(fā)環(huán)境搭建完成。 二、操作系統(tǒng)開發(fā)環(huán)境搭建(這一步可以回宿舍自己做,實(shí)驗(yàn)室電腦已經(jīng)安裝好,只需要在做第四個(gè)實(shí)驗(yàn)之前完成這一步驟就可以了,建議做完第二個(gè)實(shí)驗(yàn)之后做這一步) (1)環(huán)境搭建前的準(zhǔn)備 ①檢查主機(jī)配置 file:///C:/Users/鐘港/AppData/Local/Temp/msohtmlclip1/01/clip_image026.gif ②檢查自己的電腦是否支持虛擬化技術(shù)(只有支持虛擬化技術(shù)的CPU才能運(yùn)行虛擬機(jī)軟件) 如果顯示有下圖紅圈中的VT-x,則表示支持虛擬化技術(shù) file:///C:/Users/鐘港/AppData/Local/Temp/msohtmlclip1/01/clip_image028.gif file:///C:/Users/鐘港/AppData/Local/Temp/msohtmlclip1/01/clip_image030.gif 如果支持就繼續(xù)實(shí)驗(yàn),不支持的話,實(shí)驗(yàn)一下面的步驟和實(shí)驗(yàn)四沒法做 ③繼續(xù),打開計(jì)算機(jī)的虛擬化功能:關(guān)機(jī)重啟計(jì)算機(jī),重啟時(shí)按下F2按鍵進(jìn)入下圖狀態(tài),按照下圖操作 file:///C:/Users/鐘港/AppData/Local/Temp/msohtmlclip1/01/clip_image032.gif 準(zhǔn)備工作完成,下面進(jìn)入環(huán)境搭建流程 (2)環(huán)境搭建與初級設(shè)置 ①安裝VMware Player,雙擊下圖程序安裝 file:///C:/Users/鐘港/AppData/Local/Temp/msohtmlclip1/01/clip_image034.gif ②解壓Ubuntu系統(tǒng)鏡像到D盤新建文件夾中(其他磁盤也可以) file:///C:/Users/鐘港/AppData/Local/Temp/msohtmlclip1/01/clip_image036.gif 解壓后在D盤中: file:///C:/Users/鐘港/AppData/Local/Temp/msohtmlclip1/01/clip_image038.gif ③打開虛擬機(jī),進(jìn)行初級配置 file:///C:/Users/鐘港/AppData/Local/Temp/msohtmlclip1/01/clip_image040.gif file:///C:/Users/鐘港/AppData/Local/Temp/msohtmlclip1/01/clip_image042.gif ④編輯虛擬機(jī)設(shè)置 file:///C:/Users/鐘港/AppData/Local/Temp/msohtmlclip1/01/clip_image044.gif ⑤分別修改各項(xiàng)配置參數(shù)1、內(nèi)存。2、處理器。3、網(wǎng)絡(luò)適配器。4、共享目錄 虛擬機(jī)內(nèi)存分配大小根據(jù)自己的電腦配置修改,如果是2G內(nèi)存,則分配約1G即可,如果大于等于4G內(nèi)存,則分配大于1G即可。本機(jī)內(nèi)存4G,如下圖分配1.5G給虛擬機(jī)。 file:///C:/Users/鐘港/AppData/Local/Temp/msohtmlclip1/01/clip_image046.gif 查看處理器的配置:計(jì)算機(jī)--右鍵--屬性 可以看到,我的計(jì)算機(jī)為雙核四線程(看不懂的可以用魯大師查看) 我的計(jì)算機(jī)為雙核,每個(gè)核心為雙線程。 file:///C:/Users/鐘港/AppData/Local/Temp/msohtmlclip1/01/clip_image048.jpg 因此設(shè)置如下(下圖中所謂核心數(shù)量=內(nèi)核數(shù)x每個(gè)內(nèi)核的線程數(shù)) file:///C:/Users/鐘港/AppData/Local/Temp/msohtmlclip1/01/clip_image050.gif 網(wǎng)絡(luò)適配器為橋接模式: file:///C:/Users/鐘港/AppData/Local/Temp/msohtmlclip1/01/clip_image052.jpg file:///C:/Users/鐘港/AppData/Local/Temp/msohtmlclip1/01/clip_image054.gif file:///C:/Users/鐘港/AppData/Local/Temp/msohtmlclip1/01/clip_image056.gif 上圖橋接到了有線網(wǎng)卡上,因?yàn)槲覀兒竺嬉糜芯網(wǎng)卡往開發(fā)板燒寫程序 至于無線網(wǎng)卡,需要取消掉對它的橋接 共享目錄添加:添加--下一步--瀏覽--下一步--完成 file:///C:/Users/鐘港/AppData/Local/Temp/msohtmlclip1/01/clip_image058.jpg file:///C:/Users/鐘港/AppData/Local/Temp/msohtmlclip1/01/clip_image060.gif file:///C:/Users/鐘港/AppData/Local/Temp/msohtmlclip1/01/clip_image062.gif 初級配置完成 ⑥打開虛擬機(jī) file:///C:/Users/鐘港/AppData/Local/Temp/msohtmlclip1/01/clip_image064.gif ⑦ file:///C:/Users/鐘港/AppData/Local/Temp/msohtmlclip1/01/clip_image066.gif 密碼為1,回車 file:///C:/Users/鐘港/AppData/Local/Temp/msohtmlclip1/01/clip_image068.gif 打開了!!! file:///C:/Users/鐘港/AppData/Local/Temp/msohtmlclip1/01/clip_image070.gif 如何關(guān)閉!!! file:///C:/Users/鐘港/AppData/Local/Temp/msohtmlclip1/01/clip_image072.gif 到現(xiàn)在為止,linux開發(fā)環(huán)境的配置還沒有結(jié)束,但是第二個(gè)和第三個(gè)實(shí)驗(yàn)的開發(fā)環(huán)境早已經(jīng)可以使用了。 至于linux下的開發(fā)環(huán)境搭建還差一點(diǎn)點(diǎn),留在第四個(gè)實(shí)驗(yàn)時(shí)接著介紹! (三)Linux常用命令及vi, gdb的使用 一、常用命令使用介紹 1.ls 命令 ---------------------------------------------------------------------- ls 以默認(rèn)方式顯示當(dāng)前目錄文件列表 ls –a 顯示所有文件包括隱藏文件 ls –l 顯示文件屬性,包括大小,日期,符號連接,是否可讀寫及是否可執(zhí)行 ---------------------------------------------------------------------- 2.cd 命令 cd dir 切換到當(dāng)前目錄下的 dir 目錄 cd .. 切換到到上一級目錄 cd ~ 切換到用戶目錄,比如是 root 用戶,則切換到/root 下 ---------------------------------------------------------------------- 3.rm 命令 rm file 刪除某一個(gè)文件 rm -rf dir 刪除當(dāng)前目錄下叫 dir 的整個(gè)目錄 ---------------------------------------------------------------------- 4.cp 命令 cp source target 將文件 source 復(fù)制為 target cp –av soure_dir target_dir 將整個(gè)目錄復(fù)制,兩目錄完全一樣 cp –fr source_dir target_dir 將整個(gè)目錄復(fù)制,并且是以非鏈接方式復(fù)制,當(dāng) source 目錄帶有符號鏈接時(shí),兩個(gè)目錄不相同 ---------------------------------------------------------------------- 5.mv 命令 mv source target 將文件或者目錄 source 更名為 target ---------------------------------------------------------------------- 6.diff 命令 diff -ruN dir1 dir2 > <patch_file> 比較目錄 1 與目錄 2 中的文件 ---------------------------------------------------------------------- 7.echo 命令 echo message 顯示一串字符 ---------------------------------------------------------------------- 8.cat 命令 cat file 顯示文件的內(nèi)容,和 DOS 的 type 相同 cat file| more 顯示文件的內(nèi)容并傳輸?shù)?/font> more 程序?qū)崿F(xiàn)分頁顯示,使用命令 less file可實(shí)現(xiàn)相同的功能more 分頁命令,一般通過管道將內(nèi)容傳給它,如 ls | more ---------------------------------------------------------------------- 9.du 命令 du 計(jì)算當(dāng)前目錄的容量 du -sm /root 計(jì)算/root 目錄的容量并以 M 為單位 ---------------------------------------------------------------------- 10.find 命令 find -name <path> file 在/path 目錄下查找看是否有文件 file ---------------------------------------------------------------------- 11.grep 命令 grep -r “chars” ./ 在當(dāng)前目錄的所有文件查找字串 chars -r 表示遞歸查找子目錄 ---------------------------------------------------------------------- 12.vi 的使用 vi file 編輯文件 file vi 原基本使用及命令: vi 分為編輯狀態(tài)和命令狀態(tài)。輸入命令要先按 ESC,退出編輯狀態(tài),然后輸入命令。 常用命令有: :x(退出) :x!(退出不保存) :w(保存文件) :w!(不詢問方式寫入文件) :r file(讀文件 file) :%s/oldchars/newchars/g(將所有字串 oldchars 換成 newchars) i 進(jìn)入編輯插入狀態(tài) ESC 退出編輯狀態(tài) ---------------------------------------------------------------------- 13.man 命令 man ls 讀取關(guān)于 ls 命令的幫助 ---------------------------------------------------------------------- 14.啟動(dòng)關(guān)閉計(jì)算機(jī)命令 reboot 重新啟動(dòng)計(jì)算機(jī) halt 關(guān)閉計(jì)算機(jī) init 0 關(guān)閉所有應(yīng)用程序和服務(wù),進(jìn)入純凈的操作環(huán)境 init 1 重新啟動(dòng)應(yīng)用及服務(wù) init 6 重新啟動(dòng)計(jì)算機(jī) ---------------------------------------------------------------------- 15.tar 命令 tar -xfzv file.tgz 將文件 file.tgz 解壓 tar -zcvf file.tgz <source> 將文件或目錄<source>壓縮為 file.tgz gzip directory.tar 將覆蓋原文件生成壓縮的 directory.tar.gz gunzip directory.tar.gz 覆蓋原文件解壓生成不壓縮的 directory.tar。 ---------------------------------------------------------------------- 16.dmesg,uname 命令 dmesg 顯示 kernle 啟動(dòng)及驅(qū)動(dòng)裝載信息 uname -a 顯示操作系統(tǒng)的類型 ---------------------------------------------------------------------- 17.string 命令 string file 顯示 file 文件中的 ASCII 字符內(nèi)容 --------------------------------------------------------------------- 18.rpm 命令 rpm -ihv program.rpm 安裝程序 program 并顯示安裝進(jìn)程 ---------------------------------------------------------------------- 19.文件目錄管理命令 su root 切換到超級用戶 chmod a+x file 將 file 文件設(shè)置為可執(zhí)行,腳本類文件一定要這樣設(shè)置一個(gè),否則得用 bash file才能執(zhí)行 chmod 666 file 將文件 file 設(shè)置為可讀寫 chown user /dir 將/dir 目錄設(shè)置為 user 所有 ---------------------------------------------------------------------- 20.mknod 命令 mknod /dev/hda1 b 3 1 創(chuàng)建塊設(shè)備 hda1,主設(shè)備號為 3,從設(shè)備號為 1,即 master 硬盤的第一個(gè)分區(qū) Mknod /dev/tty1 c 4 1 創(chuàng)建字符設(shè)備 tty1,主設(shè)備號為 4,眾設(shè)備號為 1,即第一個(gè) tty 終端 ---------------------------------------------------------------------- Touch /tmp/running在/tmp 下創(chuàng)建一個(gè)臨時(shí)文件 running,重新啟動(dòng)后消失 ---------------------------------------------------------------------- 21.磁盤管理的命令 fdisk /dev/hda 就像執(zhí)行了 dos 的 fdisk 一樣 mount -t ext2 /dev/hda1 /mnt 把/dev/hda1 裝載到 /mnt 目錄 df 顯示文件系統(tǒng)裝載的相關(guān)信息 mount -t nfs 192.168.1.1:/sharedir/mnt 將 nfs 服務(wù)的共享目錄 sharedir 加載到/mnt/nfs 目錄 umount /mnt 將/mnt 目錄卸載,/mnt 目錄必須處于空閑狀態(tài) sync 刷新緩沖區(qū),使內(nèi)容與磁盤同步, mkfs.ext2 /dev/hda1 格式化/dev/hda1 為 ext2 格式 dd if=/dev/zero of=root.ram bs=1024,count=1024 生成一個(gè)大小為 1M 的塊設(shè)備,可以把它當(dāng)作硬盤的一個(gè)分區(qū)來用 22.程序開發(fā)有關(guān)命令 gcc hello.c-o hello 將 hello.c 編譯成名為 hello 的二進(jìn)制執(zhí)行文件 ldd program 顯示程序所使用了哪些庫 23.系統(tǒng)有關(guān)命令 ps 顯示當(dāng)前系統(tǒng)進(jìn)程信息 ps –ef 顯示系統(tǒng)所有進(jìn)程信息 kill -9 500 將進(jìn)程編號為 500 的程序殺死 top 顯示系統(tǒng)進(jìn)程的活動(dòng)情況,按占 CPU 資源百分比來分 free 顯示系統(tǒng)內(nèi)存及 swap 使用情況 time program 在 program 程序結(jié)束后,將計(jì)算出 program 運(yùn)行所使用的時(shí)間 網(wǎng)絡(luò)命令 ifconfig eth0 192.168.1.2 捆綁網(wǎng)卡 1 的 IP 地址為 192.168.1.2 ---------------------------------------------------------------------- 24、登錄網(wǎng)絡(luò)服務(wù)器 telnet 192.168.1.1 登陸 IP 為 192.168.1.1 的 telnet 服務(wù)器 ftp 192.168.1.1 登陸到 ftp 服務(wù)器 實(shí)驗(yàn)思考 Linux 下命令有哪幾種可使用的通配符?分別代表什么含義?
|