實(shí)驗(yàn)室實(shí)驗(yàn)1交叉開發(fā)環(huán)境搭建_第1頁
實(shí)驗(yàn)室實(shí)驗(yàn)1交叉開發(fā)環(huán)境搭建_第2頁
實(shí)驗(yàn)室實(shí)驗(yàn)1交叉開發(fā)環(huán)境搭建_第3頁
實(shí)驗(yàn)室實(shí)驗(yàn)1交叉開發(fā)環(huán)境搭建_第4頁
實(shí)驗(yàn)室實(shí)驗(yàn)1交叉開發(fā)環(huán)境搭建_第5頁
已閱讀5頁,還剩12頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、項(xiàng)目一 交叉開發(fā)環(huán)境搭建1.能力培養(yǎng)目標(biāo)l 熟悉項(xiàng)目開發(fā)的硬件系統(tǒng)l 掌握Linux宿主機(jī)的NFS共享的設(shè)置l 掌握串口調(diào)試工具的使用l 掌握宿主機(jī)與目標(biāo)機(jī)的線路連接l 通過NFS共享,在目標(biāo)機(jī)上運(yùn)行程序2.項(xiàng)目任務(wù)要求(1)項(xiàng)目任務(wù)熟悉項(xiàng)目開發(fā)的硬件系統(tǒng)。搭建嵌入式軟件項(xiàng)目開發(fā)環(huán)境,熟悉開發(fā)過程。(2)項(xiàng)目來源及應(yīng)用不論開發(fā)任何軟件項(xiàng)目,也不論項(xiàng)目大小,都需要事先搭建軟件開發(fā)環(huán)境。掌握軟件開發(fā)環(huán)境搭建和使用的方法,是所有項(xiàng)目的第一步,非常重要。熟悉軟件項(xiàng)目編譯、運(yùn)行和調(diào)試的各種操作,減少以后重復(fù)該工作時(shí)所用的時(shí)間,能大大提高工作效率。(3)功能需求搭建項(xiàng)目開發(fā)環(huán)境,以個(gè)人電腦作為宿主PC機(jī),

2、配置交叉編譯環(huán)境,并與ARM目標(biāo)機(jī)連接,通過NFS共享,在ARM目標(biāo)機(jī)上運(yùn)行交叉編譯后的應(yīng)用程序。熟悉交叉編譯及程序運(yùn)行方法,為以后的其他項(xiàng)目做準(zhǔn)備。(4)開發(fā)環(huán)境需求硬件宿主機(jī)PC機(jī)、USB轉(zhuǎn)串口線、網(wǎng)線 目標(biāo)機(jī)ARM目標(biāo)機(jī)軟件宿主機(jī)windows系統(tǒng):WinXP Xin7 其它: Linux 系統(tǒng):RedHat 9 RHEL4 其它: VMware虛擬機(jī): VMware Workstation 9 其它:串口調(diào)試工具:WinXP自帶的超級(jí)終端Linux自帶的minicom第三方串口工具: 目標(biāo)機(jī)嵌入式Linux 3.項(xiàng)目預(yù)習(xí)(1)了解項(xiàng)目目標(biāo)、項(xiàng)目任務(wù)要求、項(xiàng)目設(shè)計(jì)和項(xiàng)目實(shí)施步驟。(2)下

3、載本次實(shí)驗(yàn)所需要的軟件:USB轉(zhuǎn)串口驅(qū)動(dòng)程序和超級(jí)終端軟件。(3)完成第5大項(xiàng)中步驟。(4)回答以下問題l gcc是什么?如何使用gcc?l Make工具的作用是什么?如何編寫makefile文件?l 什么是交叉編譯?如何使用交叉編譯工具?4.項(xiàng)目設(shè)計(jì)(1)宿主機(jī)與ARM目標(biāo)機(jī)的通信示意圖下圖1描述宿主機(jī)(Windows系統(tǒng)、Linux虛擬機(jī)系統(tǒng))以及ARM目標(biāo)機(jī)的Linux系統(tǒng)三者之間的關(guān)系,以及文件傳輸和通信所使用的協(xié)議和線路。圖1 交叉開發(fā)模式(2)項(xiàng)目開發(fā)流程項(xiàng)目開發(fā)的基本流程為:代碼編寫、交叉編譯、通過NFS文件共享的方式mount到ARM目標(biāo)機(jī)上運(yùn)行。1)創(chuàng)建工程目錄并編寫源程序l

4、 方式一:在宿主機(jī)Linux虛擬機(jī)的項(xiàng)目開發(fā)目錄中編寫源代碼??梢杂萌魏尉庉嬈骶帉懺创a,如Vi、GEdit和Emacs等。l 方式二:在宿主機(jī)Windows下編輯、保存源代碼并將其轉(zhuǎn)移到Linux虛擬機(jī)的指定目錄中。提示:使用VMware文件共享、samba服務(wù)或FTP等網(wǎng)絡(luò)服務(wù)。2)編譯工程利用Linux操作系統(tǒng)的宿主機(jī)進(jìn)行交叉編譯、匯編及連接,形成可在ARM目標(biāo)機(jī)上執(zhí)行的二進(jìn)制代碼(這種可執(zhí)行代碼并不能在宿主機(jī)上執(zhí)行),可用兩種方式編譯:l 直接用交叉編譯器arm-linux-gcc進(jìn)行l(wèi) 編寫makefile文件,用make命令進(jìn)行編譯。3)通過NFS共享方式運(yùn)行目標(biāo)程序如圖2所示,通

5、過NFS共享來把可執(zhí)行文件所在項(xiàng)目工作目錄掛載到目標(biāo)機(jī)上運(yùn)行。調(diào)試時(shí)可以使用串口進(jìn)行調(diào)試。通過Windows的超級(jí)終端,或者Linux虛擬機(jī)的minicom,控制目標(biāo)機(jī),對(duì)其進(jìn)行操作。圖2 NFS共享方式5.項(xiàng)目實(shí)施(0) 熟悉目標(biāo)機(jī)硬件系統(tǒng)(1)檢查L(zhǎng)inux虛擬機(jī)網(wǎng)絡(luò)設(shè)置虛擬機(jī)的網(wǎng)絡(luò)連接方式為橋接并且設(shè)備是connected,如圖3、圖4所示。圖3 虛擬機(jī)設(shè)置界面圖4 橋接設(shè)置界面有些同學(xué)選擇上面的選項(xiàng)網(wǎng)絡(luò)不好用,若不好用,則可按下面界面操作:(2)Linux虛擬機(jī)上,檢查交叉編譯器是否安裝用以下命令可以檢查L(zhǎng)inux虛擬機(jī)是否已經(jīng)安裝好了交叉編譯環(huán)境。#arm-linux-gcc -v思

6、考:如何設(shè)置交叉編譯器的環(huán)境變量,并使其生效?提示:(1)PATH環(huán)境變量;(2)source命令。(3)Linux虛擬機(jī)上,設(shè)置虛擬機(jī)IP地址查看虛擬機(jī)IP#ifconfigLinux虛擬機(jī)IP需要設(shè)置為和ARM目標(biāo)機(jī)同一個(gè)網(wǎng)段,并且不能相同。例如可以設(shè)置為0。#ifconfig eth0 0(4)Linux虛擬機(jī)上,設(shè)置NFS共享將/up-techpxa270cl設(shè)置為NFS共享目錄,并確保NFS服務(wù)正在運(yùn)行。NFS服務(wù),可以實(shí)現(xiàn)兩臺(tái)Linux系統(tǒng)中文件的共享。在本書實(shí)驗(yàn)項(xiàng)目開發(fā)中,主要用于Linux虛擬機(jī)和ARM目標(biāo)機(jī)之間文件共享,從而實(shí)現(xiàn)將實(shí)

7、驗(yàn)項(xiàng)目軟件mount到ARM目標(biāo)機(jī)上運(yùn)行。點(diǎn)擊Linux虛擬機(jī)系統(tǒng)主菜單運(yùn)行“系統(tǒng)”“管理”,選擇“服務(wù)器設(shè)置”,選擇“NFS服務(wù)器”,點(diǎn)擊“增加”,彈出如圖6所示界面。在“基本”選項(xiàng)卡中,目錄中填入需要共享的路徑,在“主機(jī)”中填入允許進(jìn)行連接的主機(jī)IP地址。設(shè)置為192.168.0.*或*,代表允許這個(gè)C類網(wǎng)段的所有機(jī)器都可以訪問該共享。并選擇允許客戶對(duì)共享目錄的操作為“讀寫”(Read/write)。如圖5-圖9所示: 圖5設(shè)置NFS共享a圖6設(shè)置NFS共享b“一般選項(xiàng)”選項(xiàng)卡設(shè)置,可以保留默認(rèn)值。 圖7設(shè)置NFS共享c“用戶訪問”選項(xiàng)卡設(shè)置,可以保留默認(rèn)值;為了編程、操作方便,請(qǐng)將“遠(yuǎn)程

8、根用戶當(dāng)作本地根用戶”,這樣安全性雖然較差一些,但方便了開發(fā)。圖8設(shè)置NFS共享d最后退出時(shí)則完成NFS 配置。配置好后,界面顯示應(yīng)如下圖所示: 圖9設(shè)置NFS共享e配置好后,需要在終端中輸入“/etc/rc.d/init.d/nfs restart”命令,重新啟動(dòng)NFS服務(wù),更改才會(huì)生效。#/etc/rc.d/init.d/nfs restart(5)開發(fā)系統(tǒng)物理連接a.連接電源(12V),將隨機(jī)附帶的一根電源線的一端插入到電源插座中,將另外一端插入目標(biāo)機(jī)電源接口上;b.連接網(wǎng)線,將網(wǎng)線一端連接到目標(biāo)機(jī)的網(wǎng)口上,另一端連接到PC機(jī)的網(wǎng)口上。c.連接串口線,一端連接PC機(jī)的串口,另一端連接到目

9、標(biāo)機(jī)的UART0上(即COM1); 注意:目標(biāo)機(jī)具有兩個(gè)串口,分別為UART0和UART1,UART0為左側(cè)靠近電源接口的串口。串口可使用相應(yīng)的USB轉(zhuǎn)接線來代替,如USB-RS232轉(zhuǎn)接線,安裝或更新相應(yīng)的驅(qū)動(dòng)程序后,將轉(zhuǎn)接線的USB頭插入宿主機(jī)的USB接口,會(huì)將其轉(zhuǎn)化為串口,具體串口的編號(hào)可查看宿主機(jī)Windows系統(tǒng)的“設(shè)備管理器”à“端口”。如圖10所示。圖10 串口設(shè)置(6)Linux虛擬機(jī)上,設(shè)置串口通信工具Putty簡(jiǎn)介:Putty是一個(gè)免費(fèi)的、Windows平臺(tái)下的telnet、serial和ssh客戶端。用它來遠(yuǎn)程管理目標(biāo)板十分好用,其主要優(yōu)點(diǎn)如下:完全免費(fèi);在Wi

10、ndows 9x/NT/2000下運(yùn)行的都非常好;全面支持ssh1和ssh2;綠色軟件,無需安裝,下載后在桌面建個(gè)快捷方式即可使用;體積很小,僅364KB (0.54 beta版本);操作簡(jiǎn)單,所有的操作都在一個(gè)控制面板中實(shí)現(xiàn)。本書中使用它來代替超級(jí)終端使用。Putty操作指南:把Putty下載到機(jī)器上,雙擊putty.exe,出現(xiàn)如圖11的啟動(dòng)界面。 圖11 Putty啟動(dòng)界面點(diǎn)擊“串口選項(xiàng)”,出現(xiàn)如圖12所示界面。圖12 串口界面在“連接到的串口”位置填寫設(shè)備管理器中實(shí)際使用的串口號(hào),選擇為COM9,具體串口的編號(hào)可查看宿主機(jī)Windows系統(tǒng)的“設(shè)備管理器”à“端口”?!安ㄌ芈?/p>

11、”設(shè)為115200,“數(shù)據(jù)位”設(shè)為8位,停止位設(shè)為1位,“奇偶校驗(yàn)位”設(shè)為無,“流量控制”設(shè)為無。設(shè)置界面如圖13所示。圖13 Putty設(shè)置界面點(diǎn)擊會(huì)話選項(xiàng)“會(huì)話”,出現(xiàn)如圖14所示界面。默認(rèn)的連接類型為SSH。圖14 連接類型選擇界面選擇“串口”,在“保存的會(huì)話”窗口輸入想要保存的名字,我們輸入名字為“neusoft”,如圖15所示,點(diǎn)擊“保存”按鈕即保存了用戶的配置,如圖16所示。圖15 保存設(shè)置界面圖16 保存界面接著雙擊“neusoft”,即打開工作界面,如圖17所示。圖17 Putty調(diào)試界面完成串口通訊工具的設(shè)置。此處Putty界面就是目標(biāo)機(jī)的操作界面?。?)關(guān)閉無線網(wǎng),啟動(dòng)AR

12、M目標(biāo)機(jī),掛載NFS共享目錄啟動(dòng)ARM目標(biāo)機(jī),Putty中將顯示目標(biāo)機(jī)的啟動(dòng)信息。按回車鍵,啟動(dòng)目標(biāo)機(jī)Linux系統(tǒng)。正常啟動(dòng)后,會(huì)顯示“rootIntel /#”,等待命令輸入。然后,在終端程序中,用如下命令掛載共享目錄,將Linux虛擬機(jī)的NFS共享目錄/up-techpxa270cl掛載到ARM目標(biāo)機(jī)的/mnt/nfs空目錄中。在目標(biāo)機(jī)上(Putty)上輸入如下命令:#mount t nfs o nolock 192.168.0. 10:/up-techpxa270cl /mnt/nfs注意:mount:掛載命令-t nfs:掛載類型-o nolock:參數(shù),不鎖文件 192.168.0

13、.10:/up-techpxa270cl:宿主機(jī)上的文件夾 /mnt/nfs:目標(biāo)機(jī)文件夾命令中的IP地址(0)為宿主開發(fā)機(jī)IP(Linux虛擬機(jī)),掛載成功后如圖18所示。圖18 NFS掛載成功如果出現(xiàn)version older than kernel等信息就說明掛載成功,如果出現(xiàn)Bad或failed信息,則說明掛載沒成功, 要根據(jù)實(shí)際情況操作。如果掛載不成功,解決辦法如下: 思考:如果在目標(biāo)機(jī)上,mount宿主機(jī)的NFS共享目錄不成功怎么辦?提示:a) 測(cè)試網(wǎng)絡(luò)連通性;b) NFS服務(wù)設(shè)置;c)查看無線網(wǎng)是否關(guān)閉a) 測(cè)試網(wǎng)絡(luò)連通性先查看IP是否正確:命令如下:在虛擬

14、機(jī)上:ifconfig 查看IP是否為0在目標(biāo)機(jī)上:ifconfig 查看IP是否為 05思考:目標(biāo)機(jī)沒有IP怎么辦?提示:通過超級(jí)終端執(zhí)行命令ifconfig檢查ARM目標(biāo)機(jī)的IP設(shè)置,可以用ifconfig命令查看,默認(rèn)IP設(shè)置為05。如果IP沒有設(shè)置,或者與宿主開發(fā)機(jī)設(shè)置的不在同一個(gè)網(wǎng)段,用ifconfig eth0 05修改為05。如果IP都對(duì),則測(cè)試網(wǎng)絡(luò)是否連能:命令如下:在目標(biāo)機(jī)上:ping 05在目標(biāo)機(jī)上:ping 0如果pin

15、g不通,原因可能是:沒有連接網(wǎng)線或者連接松動(dòng),宿主機(jī)Linux系統(tǒng)的IP(0)和目標(biāo)機(jī)的IP(05)配置不正確,windows防火墻未關(guān)閉、無線網(wǎng)卡未關(guān)閉、VM不是橋接(bridged)或者沒有connected等。 b) 查看NFS服務(wù)設(shè)置service nfs status如果不是正在運(yùn)行,則service nfs start或service nfs restartc)查看無線網(wǎng)是否關(guān)閉(8)在目標(biāo)機(jī)(Putty)上操作NFS掛載成功之后,用cd命令切換到/mnt/nfs目錄下,用ls命令可以看到Linux宿主機(jī)/up-techpxa270cl目

16、錄下的所有文件和目錄。如圖19所示。#cd /mnt/nfs#ls圖19 查看共享目錄 (9)Linux虛擬機(jī)上編寫示例程序源代碼在Linux虛擬機(jī)中的/up-techpxa270cl 目錄下創(chuàng)建目錄test0,并在此目錄下編寫如下文件:main.c#cd /up-techpxa270cl#mkdir test0#cd test0參考代碼:/* -main.c- */#include <stdio.h>int main(viod) printf("Hello is ok!n");printf("NFS is ok!n"); return 0;

17、 (10)Linux虛擬機(jī)上交叉編譯#arm-linux-gcc main.c o hello(11)在目標(biāo)機(jī)上(Putty)運(yùn)行示例程序NFS掛載成功之后,用cd命令切換到/mnt/nfs目錄下,用ls命令可以看到Linux宿主機(jī)/up-techpxa270cl目錄下的所有文件和目錄,運(yùn)行剛剛編譯好的程序hello和helloworld,并查看程序在目標(biāo)機(jī)上運(yùn)行的結(jié)果。 #cd /mnt/nfs#ls#cd test0#ls#./hello至此,我們的交叉開發(fā)環(huán)境就搭建好了,可以實(shí)現(xiàn)在Linux虛擬機(jī)上編寫程序、編譯程序,之后在目標(biāo)機(jī)上運(yùn)行程序的目的了,這樣可以不用每次都把程序下載到目標(biāo)機(jī)上,會(huì)大大方便開發(fā)過程和延長(zhǎng)目標(biāo)機(jī)的壽命!6.項(xiàng)目問題(1) 根據(jù)項(xiàng)目參考文檔,說明本次實(shí)驗(yàn)中的硬件系統(tǒng)。(2) 說明本次實(shí)驗(yàn)中宿主機(jī)和目標(biāo)機(jī)之間的通信連接。(3) 超級(jí)終端的作用是什么?(4) NFS文件系統(tǒng)掛載的作用、目的是什么?

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論