版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、 2006 Embedded嵌入式嵌入式LINUXLINUX開發(fā)環(huán)境的建立開發(fā)環(huán)境的建立鄒 琪牛建偉嵌入式系統(tǒng)課程嵌入式系統(tǒng)課程實驗一實驗一 2006 Embedded 實驗?zāi)康?實驗內(nèi)容 開發(fā)環(huán)境配置 開發(fā)工具介紹 編寫程序和Makefile 編譯、下載調(diào)試 2006 Embedded實驗?zāi)康膶嶒災(zāi)康?介紹一般的嵌入式開發(fā)流程,并介紹開發(fā)流程中使用的軟件和硬件的安裝來建立開發(fā)環(huán)境,通過此實驗了解和熟悉嵌入式的軟硬件平臺。 熟悉Linux開發(fā)環(huán)境,學(xué)會基于S3C2410的Linux開發(fā)環(huán)境的配置和使用。使用Linux的arm4l-unknown-linux-gcc編譯,使用基于NFS方式的下載
2、調(diào)試,了解嵌入式開發(fā)的基本過程。 2006 Embedded實驗內(nèi)容實驗內(nèi)容 本次實驗硬件平臺使用UP-NetARM2410-S實驗箱,宿主PC機上使用REDHAT Linux 9.0操作系統(tǒng)環(huán)境。將硬件平臺和宿主PC機通過串口線和網(wǎng)線連接好后,在宿主PC機上安裝開發(fā)工具軟件,建立交叉編譯調(diào)試環(huán)境并進行配置。 利用已經(jīng)建立好的ARM-Linux的開發(fā)庫及編譯器,編寫hello.c和Makefile文件。學(xué)習(xí)在Linux下的編程和編譯過程,以及ARM開發(fā)板的使用和開發(fā)環(huán)境的設(shè)置。下載已經(jīng)編譯好的文件到目標(biāo)開發(fā)板上運行。 2006 Embedded開發(fā)環(huán)境配置(開發(fā)環(huán)境配置(1) 在宿主機Linu
3、x環(huán)境下配置網(wǎng)絡(luò),包括IP地址、NFS服務(wù)、防火墻。 設(shè)置宿主機IP地址時,需將其地址與開發(fā)平臺的IP地址設(shè)置在同一網(wǎng)段內(nèi)。這里,將PC的IP設(shè)為21。 2006 Embedded開發(fā)環(huán)境配置(開發(fā)環(huán)境配置(2) 雙擊設(shè)備eth0,進入以太網(wǎng)設(shè)置界面,可以設(shè)置地址、子網(wǎng)掩碼和網(wǎng)關(guān)。 對REDHAT9.0,它默認打開了防火墻,外來IP無法用NFS mount訪問它,此因要在安全級別設(shè)置中關(guān)閉它。 2006 Embedded開發(fā)環(huán)境配置(開發(fā)環(huán)境配置(3) 在系統(tǒng)設(shè)置菜單中選擇服務(wù)器設(shè)置菜單,再選中服務(wù)菜單,將iptables服務(wù)去掉,選中NFS。 點擊系統(tǒng)設(shè)置-服務(wù)器設(shè)置-
4、NFS服務(wù)器,出現(xiàn)如下界面,在目錄中填入共享目錄的路徑和主機地址。 2006 Embedded 一些常規(guī)選項設(shè)置,保留默認值。在用戶訪問中,設(shè)置將遠程用戶當(dāng)作根用戶時,對于操作比較方便,但安全性較差。 配置NFS完成后,可以測試是否成功。在宿主機下自己mount自己 mount 0:/arm2410s /mnt 其中0是主機IP,然后到/mnt/ 目錄下看是否可以列出對應(yīng)arm2410s目錄下的所有文件和目錄,如可以則說明mount成功,NFS配置成功。 2006 EmbeddedMINICOM的配置的配置 1.在Xwindows界面下新建終端,在終
5、端的命令提示符后輸入minicom,回車,就能看到minicom的啟動畫面。若是在字符界面下,直接輸入minicom即可。 2006 Embedded 2.minicom啟動后,先按Ctrl+A鍵,再按Z鍵(非連續(xù)按),進入主配置界面。按O進入配置界面。按上下選擇Serial port setup,進入端口設(shè)置界面。 2006 Embedded 3. 如上圖進行參數(shù)配置,選好后按ESC鍵退出,選擇Save setup as df1保存退出,以后只要啟動minicom就是該配置,無需再做改動。 2006 Embedded 4. 配置完成后,用串口線連接好PC機和2410-s實驗箱,打開電源,即可
6、在minicom上看到啟動信息,并可以執(zhí)行操作控制。 2006 Embedded開發(fā)工具軟件的安裝開發(fā)工具軟件的安裝 將開發(fā)板附帶光盤插入光驅(qū),在光驅(qū)所在目錄/mnt/cdrom中運行安裝腳本。 cd /mnt/cdrom ./install.sh 安裝腳本程序?qū)⒆詣咏?arm2410s目錄,并將所有開發(fā)軟件包安裝到/arm2410s目錄下,同時自動配置編譯環(huán)境,建立合適的符號連接。 注意:安裝完成后看一下主編譯器Armv4l-unknown-linux-gcc是否在/opt/host/armv4l/bin/,如果不是這個路徑,請使用vi修改/root/.bash_profile文件中PAT
7、H變量為PATH=$PATH:$HOME/bin:/opt/host/armv4l/bin/,存盤以后執(zhí)行:source/root/.bash_profile,則以后armv4l-unknown-linux-gcc會自動搜索到,可以在終端上輸入arm,然后按tab鍵,會自動顯示armv4l-unknown-linux- 2006 EmbeddedLinux開發(fā)套件開發(fā)套件 GCC 編譯器 Binutils 是一組開發(fā)工具,包括連接器,匯編器和其他用于目標(biāo)文件和檔案的工具。 Make 使用GNU 的make工具能夠比較容易的構(gòu)建一個工程,整個工程的編譯只需要一個命令就可以完成編譯、連接以至于最后
8、的執(zhí)行。不過這需要編寫Makefile文件。 GDB 負責(zé)程序調(diào)試 Glibc 標(biāo)準(zhǔn)C庫,數(shù)學(xué)庫,以及板級程序庫 集成開發(fā)環(huán)境 2006 EmbeddedGCC選項選項 g:在可執(zhí)行文件中輸出調(diào)試信息,通常是為調(diào)試器gdb所用 On:代碼優(yōu)化,n隨著系統(tǒng)的不同而不同 Idir:指定頭文件搜索目錄gcc foo.c I/home/zou/include o foo Ldir:指定在目錄中需要搜索的庫(動態(tài)庫.so 和靜態(tài)庫.a)gcc foo.c L/home/zou/lib lfoo o foo static:鏈接時使用靜態(tài)鏈接 elf2flt:將可執(zhí)行文件頭轉(zhuǎn)換為flt平板格式 c:只預(yù)處理
9、,編譯和匯編生產(chǎn)obj文件 2006 Embedded調(diào)試工具調(diào)試工具GDB 調(diào)試嵌入式Linux系統(tǒng)需要一個運行系統(tǒng)的環(huán)境,一個調(diào)試環(huán)境。這里采用GDB的遠程調(diào)試功能 遠程調(diào)試一般由主機和目標(biāo)機通過串口或網(wǎng)絡(luò)連接而成。 GDB里面嵌有串口通信協(xié)議。在目標(biāo)機上需要實現(xiàn)一個stub文件,這個文件里面需要提供串口連接的協(xié)議和傳送數(shù)據(jù)信息的方法。 調(diào)試的一般步驟將兩臺機器用串口連接起來將需要調(diào)試的程序下載到目標(biāo)機在主機啟動GDB,讀入需要調(diào)試的程序的符號表和程序代碼使用target remote命名建立和遠程主機的連接然后就象使用一般的GDB一樣進行程序的調(diào)試了 2006 EmbeddedGDB調(diào)試
10、程序調(diào)試程序 Host gdb myprogram Gdbtarget remote /dev/ttys0 Gdbload /程序運行至main Gdb display foo /目標(biāo)在main()處停止 gdb stepi /目標(biāo)執(zhí)行一個指令 Gdbquit /退出調(diào)試 2006 EmbeddedHelloWorld程序程序 在Linux下用文本編輯器(vi、gedit等) hello.c的源代碼如下: #include int main(void) printf (Hello world, Linux programming!n); return 0; 2006 Embedded編寫編寫M
11、akefile文件(文件(1) CC = armv4l-unknown-linux-gcc EXEC = hello OBJS = hello.o CFLAGS += LDFLAGS += -static all: $(EXEC) $(EXEC): $(OBJS)$(CC) $(LDFLAGS) -o $ $(OBJS) clean:-rm -f $(EXEC) *.elf *.gdb *.o 2006 Embedded編寫編寫Makefile文件(文件(2) 以上是本例用到的Makefile文件,它有幾個主要部分 CC 指明編譯器 EXEC 表示編譯后生成的執(zhí)行文件名稱 OBJS 目標(biāo)文件列
12、表 CFLAGS 編譯參數(shù) LDFLAGS 連接參數(shù) all: 編譯主入口 clean: 清除編譯結(jié)果 注意:“$(CC) $(LDFLAGS) -o $ $(OBJS)”和“-rm -f $(EXEC) *.elf *.gdb *.o”前空白由一個Tab制表符生成,不能單純由空格來代替。 2006 Embedded編譯應(yīng)用程序編譯應(yīng)用程序 在上面的步驟完成后,我們將hello.c和Makefile文件放在同一目錄下,運行make來編譯程序了。如程序進行了修改,重新編譯則運行make clean,然后再make。 若不用Makefile,直接用gcc編譯也行 armv4l-unknown-li
13、nux-gcc hello.c o hello 注意:編譯、修改程序都是在宿主機(本地PC機)上進行,不能在MINICOM下進行。 2006 Embedded編譯應(yīng)用程序編譯應(yīng)用程序l編寫數(shù)組排序程序在Linux下編寫匯編程序和C程序,然后編譯連接成ARM可運行的二進制文件,最后把該二進制文件下載到目標(biāo)機(教學(xué)試驗平臺)上運行,查看運行結(jié)果是否正確。在C程序main函數(shù)中,接收用戶輸入(用戶任意輸入9個整數(shù)),然后在main中調(diào)用使用ARM匯編編寫的函數(shù)(單獨存儲成一個文件,在該函數(shù)中完成對這9個整數(shù)的排序功能),然后再在C程序main函數(shù)中輸出這9個排好順序的整數(shù)。 2006 Embedde
14、d編譯應(yīng)用程序編譯應(yīng)用程序l編寫數(shù)組排序程序#include int main()int i=0;int num=0;int *array=NULL;while(num 0)break;if(NULL = (array = (int *)malloc(num*sizeof(int) printf(malloc failed!n);exit(-1);printf(please enter the elements:n);for(i = 0; inum; i+) printf(n%d:t, i);scanf(%d, array+i);select(array, num);printf(=nthe
15、result is:n);for(i = 0; inum; i+) printf(%d:t%dn, i, *(array+i);return 0; 2006 Embedded通過通過NFS調(diào)試程序調(diào)試程序 前面配置開發(fā)環(huán)境時已在宿主PC上啟動了NFS服務(wù),并設(shè)置好了共享目錄,可以在終端中輸入minicom,建立開發(fā)板與宿主PC機之間的通訊了。 /mnt/yaffs mount t nfs o nolock 6:/arm2410s /host 注意:IP地址需要根據(jù)宿主PC的實際情況修改 成功掛接宿主PC的arm2410s目錄(假定編寫了hello.c和Makefile都在
16、此目錄下)后,在開發(fā)板上進入/host目錄便相應(yīng)進入宿主PC的/arm2410s目錄。在/host目錄下運行編譯好的hello程序 /host./hello 可以看到結(jié)果 Hello world, Linux programming! 注意:開發(fā)板掛接宿主機目錄只需掛接一次,只要開發(fā)板沒有重啟,就能一直保持連接。這樣可以反復(fù) 修改、編譯、調(diào)試,不需要下載到開發(fā)板 2006 Embedded通過通過FTP上傳應(yīng)用程序上傳應(yīng)用程序 用交叉網(wǎng)線連接好開發(fā)板的NIC-1網(wǎng)口和PC機的網(wǎng)口,在宿主機下打開終端輸入minicom,建立開發(fā)板與宿主PC機之間的通訊,配置開發(fā)板的IP和宿主機在同一網(wǎng)段。 /mnt/yaffsifconfig -查看IP /mnt/yaffsifconfig eth0 11 -配置eth0的IP /mnt/yaffsinetd -啟動ftp服務(wù) 打開FTP軟件gFTP,輸入地址11,用戶名:root,密碼:無。連接進入,上傳編譯好的程序hello到/var文件夾下,運行可以看到結(jié)果 /var/./hel
溫馨提示
- 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. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 認真傾聽幼兒溝通技巧培訓(xùn)計劃
- 小學(xué)三年級數(shù)學(xué)100以內(nèi)整數(shù)除法計算水平檢測練習(xí)題大全附答案
- 天車工能力練習(xí)訓(xùn)練題
- 電工外聘合同范本
- 樹買賣合同范本
- 單位旅行合同范本
- 皮草購銷合同范本
- 2024至2030年中國轉(zhuǎn)杯紡紗機齒輪部件數(shù)據(jù)監(jiān)測研究報告
- 個體購銷合同范本
- 2024至2030年旗袍項目投資價值分析報告
- 2024年湖北省公務(wù)員考試《行測》真題及答案解析
- 2023年全國社會保障基金理事會招聘考試真題
- 醫(yī)院感染現(xiàn)患率調(diào)查方案
- 湖北省十堰市第二中學(xué)2024-2025學(xué)年七年級上學(xué)期期中考試語文試題(含答案)
- 兄妹4人繼承房產(chǎn)協(xié)議書范文
- 上海市市轄區(qū)(2024年-2025年小學(xué)五年級語文)部編版期中考試(下學(xué)期)試卷及答案
- GB/T 44692.2-2024危險化學(xué)品企業(yè)設(shè)備完整性第2部分:技術(shù)實施指南
- 學(xué)位英語4000詞(開放大學(xué))
- 項目式學(xué)習(xí)在小學(xué)英語教學(xué)中的應(yīng)用與研究
- 期中測試卷(試題)-2024-2025學(xué)年數(shù)學(xué)六年級上冊北師大版
- 弘揚偉大長征精神-走好今天的長征路課件
評論
0/150
提交評論