![嵌入式系統(tǒng)北京航空航天大學Experiment1_第1頁](http://file4.renrendoc.com/view/be822387d5733a39ca36f041379aa93f/be822387d5733a39ca36f041379aa93f1.gif)
![嵌入式系統(tǒng)北京航空航天大學Experiment1_第2頁](http://file4.renrendoc.com/view/be822387d5733a39ca36f041379aa93f/be822387d5733a39ca36f041379aa93f2.gif)
![嵌入式系統(tǒng)北京航空航天大學Experiment1_第3頁](http://file4.renrendoc.com/view/be822387d5733a39ca36f041379aa93f/be822387d5733a39ca36f041379aa93f3.gif)
![嵌入式系統(tǒng)北京航空航天大學Experiment1_第4頁](http://file4.renrendoc.com/view/be822387d5733a39ca36f041379aa93f/be822387d5733a39ca36f041379aa93f4.gif)
![嵌入式系統(tǒng)北京航空航天大學Experiment1_第5頁](http://file4.renrendoc.com/view/be822387d5733a39ca36f041379aa93f/be822387d5733a39ca36f041379aa93f5.gif)
版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、嵌入式LINUX開發(fā)環(huán)境的建立鄒 琪嵌入式系統(tǒng)課程實驗一1實驗目的實驗內(nèi)容開發(fā)環(huán)境配置開發(fā)工具介紹編寫程序和Makefile編譯、下載調(diào)試2實驗目的介紹一般的嵌入式開發(fā)流程,并介紹開發(fā)流程中使用的軟件和硬件的安裝來建立開發(fā)環(huán)境,通過此實驗了解和熟悉嵌入式的軟硬件平臺。熟悉Linux開發(fā)環(huán)境,學會基于S3C2410的Linux開發(fā)環(huán)境的配置和使用。使用Linux的arm4l-unknown-linux-gcc編譯,使用基于NFS方式的下載調(diào)試,了解嵌入式開發(fā)的基本過程。3實驗內(nèi)容本次實驗硬件平臺使用UP-NetARM2410-S實驗箱,宿主PC機上使用REDHAT Linux 9.0操作系統(tǒng)環(huán)境
2、。將硬件平臺和宿主PC機通過串口線和網(wǎng)線連接好后,在宿主PC機上安裝開發(fā)工具軟件,建立交叉編譯調(diào)試環(huán)境并進行配置。利用已經(jīng)建立好的ARM-Linux的開發(fā)庫及編譯器,編寫hello.c和Makefile文件。學習在Linux下的編程和編譯過程,以及ARM開發(fā)板的使用和開發(fā)環(huán)境的設置。下載已經(jīng)編譯好的文件到目標開發(fā)板上運行。4開發(fā)環(huán)境配置(1)在宿主機Linux環(huán)境下配置網(wǎng)絡,包括IP地址、NFS服務、防火墻。設置宿主機IP地址時,需將其地址與開發(fā)平臺的IP地址設置在同一網(wǎng)段內(nèi)。這里,將PC的IP設為21。5開發(fā)環(huán)境配置(2)雙擊設備eth0,進入以太網(wǎng)設置界面,可以設置地址、子網(wǎng)掩碼和網(wǎng)關。對
3、REDHAT9.0,它默認打開了防火墻,外來IP無法用NFS mount訪問它,此因要在安全級別設置中關閉它。6開發(fā)環(huán)境配置(3)在系統(tǒng)設置菜單中選擇服務器設置菜單,再選中服務菜單,將iptables服務去掉,選中NFS。點擊系統(tǒng)設置-服務器設置-NFS服務器,出現(xiàn)如下界面,在目錄中填入共享目錄的路徑和主機地址。7一些常規(guī)選項設置,保留默認值。在用戶訪問中,設置將遠程用戶當作根用戶時,對于操作比較方便,但安全性較差。配置NFS完成后,可以測試是否成功。在宿主機下自己mount自己 mount 0:/arm2410s /mnt其中0是主機IP,然后到/mnt/ 目錄下看是否可以列出對應arm24
4、10s目錄下的所有文件和目錄,如可以則說明mount成功,NFS配置成功。8MINICOM的配置1.在Xwindows界面下新建終端,在終端的命令提示符后輸入minicom,回車,就能看到minicom的啟動畫面。若是在字符界面下,直接輸入minicom即可。92.minicom啟動后,先按Ctrl+A鍵,再按Z鍵(非連續(xù)按),進入主配置界面。按O進入配置界面。按上下選擇Serial port setup,進入端口設置界面。103. 如上圖進行參數(shù)配置,選好后按ESC鍵退出,選擇Save setup as df1保存退出,以后只要啟動minicom就是該配置,無需再做改動。114. 配置完成后
5、,用串口線連接好PC機和2410-s實驗箱,打開電源,即可在minicom上看到啟動信息,并可以執(zhí)行操作控制。12開發(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文
6、件中PATH變量為PATH=$PATH:$HOME/bin:/opt/host/armv4l/bin/,存盤以后執(zhí)行:source/root/.bash_profile,則以后armv4l-unknown-linux-gcc會自動搜索到,可以在終端上輸入arm,然后按tab鍵,會自動顯示armv4l-unknown-linux-13Linux開發(fā)套件GCC 編譯器Binutils 是一組開發(fā)工具,包括連接器,匯編器和其他用于目標文件和檔案的工具。 Make 使用GNU 的make工具能夠比較容易的構建一個工程,整個工程的編譯只需要一個命令就可以完成編譯、連接以至于最后的執(zhí)行。不過這需要編寫Ma
7、kefile文件。GDB 負責程序調(diào)試Glibc 標準C庫,數(shù)學庫,以及板級程序庫集成開發(fā)環(huán)境14GCC選項g:在可執(zhí)行文件中輸出調(diào)試信息,通常是為調(diào)試器gdb所用On:代碼優(yōu)化,n隨著系統(tǒng)的不同而不同Idir:指定頭文件搜索目錄gcc foo.c I/home/zou/include o fooLdir:指定在目錄中需要搜索的庫(動態(tài)庫.so 和靜態(tài)庫.a)gcc foo.c L/home/zou/lib lfoo o foostatic:鏈接時使用靜態(tài)鏈接elf2flt:將可執(zhí)行文件頭轉(zhuǎn)換為flt平板格式c:只預處理,編譯和匯編生產(chǎn)obj文件15調(diào)試工具GDB調(diào)試嵌入式Linux系統(tǒng)需要一
8、個運行系統(tǒng)的環(huán)境,一個調(diào)試環(huán)境。這里采用GDB的遠程調(diào)試功能遠程調(diào)試一般由主機和目標機通過串口或網(wǎng)絡連接而成。GDB里面嵌有串口通信協(xié)議。在目標機上需要實現(xiàn)一個stub文件,這個文件里面需要提供串口連接的協(xié)議和傳送數(shù)據(jù)信息的方法。調(diào)試的一般步驟將兩臺機器用串口連接起來將需要調(diào)試的程序下載到目標機在主機啟動GDB,讀入需要調(diào)試的程序的符號表和程序代碼使用target remote命名建立和遠程主機的連接然后就象使用一般的GDB一樣進行程序的調(diào)試了16GDB調(diào)試程序Host gdb myprogramGdbtarget remote /dev/ttys0Gdbload /程序運行至mainGdb
9、display foo /目標在main()處停止 gdb stepi /目標執(zhí)行一個指令Gdbquit /退出調(diào)試17HelloWorld程序在Linux下用文本編輯器(vi、gedit等)hello.c的源代碼如下: #include int main(void) printf (Hello world, Linux programming!n); return 0;18編寫Makefile文件(1)CC = armv4l-unknown-linux-gcc EXEC = helloOBJS = hello.o CFLAGS +=LDFLAGS += -staticall: $(EXEC)
10、$(EXEC): $(OBJS)$(CC) $(LDFLAGS) -o $ $(OBJS)clean:-rm -f $(EXEC) *.elf *.gdb *.o19編寫Makefile文件(2)以上是本例用到的Makefile文件,它有幾個主要部分 CC 指明編譯器 EXEC 表示編譯后生成的執(zhí)行文件名稱 OBJS 目標文件列表 CFLAGS 編譯參數(shù) LDFLAGS 連接參數(shù) all: 編譯主入口 clean: 清除編譯結果注意:“$(CC) $(LDFLAGS) -o $ $(OBJS)”和“-rm -f $(EXEC) *.elf *.gdb *.o”前空白由一個Tab制表符生成,不能
11、單純由空格來代替。 20編譯應用程序在上面的步驟完成后,我們將hello.c和Makefile文件放在同一目錄下,運行make來編譯程序了。如程序進行了修改,重新編譯則運行make clean,然后再make。若不用Makefile,直接用gcc編譯也行 armv4l-unknown-linux-gcc hello.c o hello注意:編譯、修改程序都是在宿主機(本地PC機)上進行,不能在MINICOM下進行。21編譯應用程序編寫數(shù)組排序程序在Linux下編寫匯編程序和C程序,然后編譯連接成ARM可運行的二進制文件,最后把該二進制文件下載到目標機(教學試驗平臺)上運行,查看運行結果是否正確
12、。在C程序main函數(shù)中,接收用戶輸入(用戶任意輸入9個整數(shù)),然后在main中調(diào)用使用ARM匯編編寫的函數(shù)(單獨存儲成一個文件,在該函數(shù)中完成對這9個整數(shù)的排序功能),然后再在C程序main函數(shù)中輸出這9個排好順序的整數(shù)。22編譯應用程序編寫數(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
13、 the elements:n);for(i = 0; inum; i+)printf(n%d:t, i);scanf(%d, array+i);select(array, num);printf(=nthe result is:n);for(i = 0; inum; i+)printf(%d:t%dn, i, *(array+i);return 0;23通過NFS調(diào)試程序前面配置開發(fā)環(huán)境時已在宿主PC上啟動了NFS服務,并設置好了共享目錄,可以在終端中輸入minicom,建立開發(fā)板與宿主PC機之間的通訊了。 /mnt/yaffs mount t nfs o nolock 6:/arm2410
14、s /host注意:IP地址需要根據(jù)宿主PC的實際情況修改成功掛接宿主PC的arm2410s目錄(假定編寫了hello.c和Makefile都在此目錄下)后,在開發(fā)板上進入/host目錄便相應進入宿主PC的/arm2410s目錄。在/host目錄下運行編譯好的hello程序 /host./hello 可以看到結果 Hello world, Linux programming!注意:開發(fā)板掛接宿主機目錄只需掛接一次,只要開發(fā)板沒有重啟,就能一直保持連接。這樣可以反復 修改、編譯、調(diào)試,不需要下載到開發(fā)板24通過FTP上傳應用程序用交叉網(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服務打開FTP軟件gFTP,輸入地址11,用戶名:root,密碼:無。連接進入,上傳編譯好的程序hello到/var文件夾下,運
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025-2030全球丙二醛行業(yè)調(diào)研及趨勢分析報告
- 2025年全球及中國低空洞焊膏行業(yè)頭部企業(yè)市場占有率及排名調(diào)研報告
- 2025辦公寫字樓出租合同范本2
- 活牛購銷合同
- 廣場商鋪租賃合同
- 2025北京市非居民供熱采暖合同(合同版本)
- 文化傳播項目合同
- 門窗安裝工承包合同范本
- 提升跨部門協(xié)作能力的技能培訓
- 合同協(xié)議框架性合作協(xié)議
- 幼兒平衡車訓練課程設計
- 創(chuàng)業(yè)計劃路演-美甲
- 梁山伯與祝英臺小提琴譜樂譜
- 我國全科醫(yī)生培訓模式
- 機構編制重要事項的報告范文(5篇)
- DBJ51-T 188-2022 預拌流態(tài)固化土工程應用技術標準
- 《長津湖》電影賞析PPT
- 多維閱讀第10級 who is who 看看都是誰
- 滑雪運動介紹
- 高二下學期英語閱讀限時訓練(一)
- 半導體制造工藝-13薄膜沉積(下)綜述課件
評論
0/150
提交評論