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