




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、2013/01OMAP35xx(EL-ARM860)嵌入式系統(tǒng)實踐教程嵌入式系統(tǒng)實踐教程 劉彥文劉彥文()說明:本教程可作為EL-ARM860實驗平臺實驗內(nèi)容講授使用。授課可使用劉彥文編著,清華大學(xué)出版社出版的嵌入式系統(tǒng)原理及接口技術(shù)教材。第3章 主機開發(fā)環(huán)境配置 n雖然Linux編程環(huán)境能夠支持眾多編程語言,例如C、C+、Java、Perl、Python、Ada、Forth、Lisp、Fortran等等,但是目前最常用的是C語言。n本章主要描述了使用C語言編程時,主機開發(fā)環(huán)境的跨平臺工具鏈的安裝。n另外目標(biāo)板在運行程序時,使用到網(wǎng)口和串行端口,因此需要事先對主機Linux環(huán)境網(wǎng)絡(luò)和串行端口進
2、行配置。3.1 交叉開發(fā)平臺基礎(chǔ)3.1.1 本地開發(fā)及交叉開發(fā) 本地開發(fā)n本地開發(fā)(native development)也稱本機開發(fā),指的是在主機某種操作系統(tǒng)下對源程序進行編譯、鏈接,產(chǎn)生的可執(zhí)行文件仍然能夠在相同的主機和相同的操作系統(tǒng)下運行。nLinux系統(tǒng)支持本地開發(fā)的軟件,主要指編譯器及C程序庫等,它們通常包含在Linux發(fā)行套件中,主機安裝Linux系統(tǒng)時,會同時將其安裝在硬盤。 交叉開發(fā)n交叉開發(fā)(cross development)主要是指,在主機編譯源程序并構(gòu)建能夠在目標(biāo)板上運行的可執(zhí)行文件的過程,并且主機、目標(biāo)板處理器架構(gòu)應(yīng)該是不同的。n例如在PC機對源程序進行編譯、鏈接,并
3、且產(chǎn)生可以在基于ARM處理器架構(gòu)的目標(biāo)板上運行的文件的過程。這里通常主機和目標(biāo)板運行的應(yīng)該是相同的操作系統(tǒng),如Linux。n交叉開發(fā)過程中,在主機輸入源程序、編譯、鏈接,僅僅在目標(biāo)板上運行程序,主要原因是目標(biāo)板上硬件資源少,缺少鍵盤、顯示器、硬盤;內(nèi)存容量比較小;處理器速度比較慢。 3.1.2GNU跨平臺工具鏈組成n跨平臺工具鏈(cross-platform toolchain)經(jīng)常被簡寫為交叉工具鏈(cross toolchain),或者就稱為工具鏈(toolchain)。本書中出現(xiàn)的工具鏈一詞,通常指的是跨平臺工具鏈,有時也稱為交叉編譯器。Linux使用的工具鏈的大部分組件來自GNU項目。
4、n工具鏈通常包含以下二進制(可執(zhí)行文件)工具程序:預(yù)處理器、鏈接器、匯編器、打包器(archiver)、C(或其他語言的)編譯器,以及C程序庫與它的頭文件。n其中,C程序庫與它的頭文件是一種共享程序庫,其行為有如內(nèi)含“原始Linux內(nèi)核API”的打包程序,而且在Linux系統(tǒng)中執(zhí)行的任何應(yīng)用程序幾乎都會用到它。3.1.3 如何獲取工具鏈根據(jù)自己的開發(fā)環(huán)境,通過以下4種途徑可以獲得工具鏈:n購買一個商業(yè)版的工具鏈。n網(wǎng)上下載一個免費的工具鏈。n購買目標(biāo)板時,附帶的光盤上通常會帶有一個工具鏈。n網(wǎng)上下載組成工具鏈的源代碼,使用工具自行創(chuàng)建一個工具鏈。 購買目標(biāo)板所附帶的工具鏈,是大多數(shù)用戶最常使用
5、的工具鏈,使用時要安裝到主機Linux系統(tǒng)下。3.1.4 工具鏈的組件及GDB簡介 工具鏈組件簡介 GCC編譯器集nGCC(GNU Compiler Collection,GNU編譯器集)并不僅僅是個C編譯器,它是一個GNU編譯器集,能夠支持對C、C+、Objective C、Java、Fortran(F77)以及Ada語言的編譯。n可以對GCC進行配置,使GCC能夠為不同的目標(biāo)處理器生成代碼,使之成為一個交叉編譯器。目前GCC支持的處理器體系結(jié)構(gòu)有40余種,常見的有x86、ARM、PowerPC等。GCC除了能夠在Linux環(huán)境下運行,還可以在Windows下運行。nGCC是一個能夠控制很多
6、其他工具的前端軟件,被控制的工具在編譯過程中會使用到,如cpp預(yù)處理器、C編譯器、匯編器、鏈接器等。 GNU binutils 工具鏈的另一個重要的組件是GNU binutils套件,此套件中含有兩個重要的工具程序,GNU匯編器as以及GNU鏈接器ld。此外還有10多個工具程序,如ranlib是為archive(靜態(tài)程序庫)的內(nèi)容產(chǎn)生索引、strip是用于去除目標(biāo)文件中的符號,等等。 標(biāo)準(zhǔn)C程序庫 Linux用到的標(biāo)準(zhǔn)C程序庫就是GNU C程序庫,常被寫作glibc。glibc是一個可移植、高性能的C程序庫,支持所有相關(guān)標(biāo)準(zhǔn)(ISO C 99、POSIX.1c、POSIX.lj、POSIX.1
7、d、Unix98以及Single Unix Specification)。 線程程序庫 Linux內(nèi)核2.6版之前對線程的支持非常有限。Linux 2.6系列隨附了一個新的線程實驗品,稱為New POSIX Threading Library,即新的POSIX線程庫NPTL。NPTL所依靠的是Linux內(nèi)核對線程新的支持。NPTL被當(dāng)作glibc新近版本的一部分對外發(fā)布。 Linux內(nèi)核頭文件 工具鏈中會用到某一版本的Linux內(nèi)核頭文件,目的是支持程序員編程中使用到的對Linux內(nèi)核的系統(tǒng)調(diào)用。構(gòu)建工具鏈用到的Linux內(nèi)核文件,應(yīng)該與目標(biāo)板上使用的Linux內(nèi)核,來自相同的版本。 GDB簡
8、介nGDB(GNU Debugger)通常不包括在工具鏈中,是一個Linux上最常用的調(diào)試器工具。nGDB需要進行編譯,使之能夠調(diào)試運行在目標(biāo)板處理器上的代碼。調(diào)試器本身運行在主機,能夠?qū)δ繕?biāo)板上的代碼進行調(diào)試,被稱為遠程調(diào)試。n運行被調(diào)試的程序時,目標(biāo)板上同時還要運行一個占位程序,占位程序通常是gdbserver,通過串口或網(wǎng)口連接,負責(zé)與運行在主機上的GDB調(diào)試程序進行通信。3.2 交叉工具鏈安裝舉例n通常購買目標(biāo)板時會隨附一張光盤,光盤上不同目錄下可能會有支持Linux、Windows CE和C/OS系統(tǒng)的程序。工具鏈安裝到主機的方法有兩種:n一種是在主機運行Linux系統(tǒng)時,進入光盤中
9、與Linux相關(guān)的目錄,啟動install.sh安裝腳本程序,系統(tǒng)會自動將交叉工具鏈(包含相關(guān)庫)安裝到主機硬盤指定的目錄。另外光盤上還可能有一些實驗例程,將會一同被安裝到主機硬盤指定的目錄。n另一種是手工安裝,例如輸入命令將光盤工具鏈壓縮包拷貝到主機Linux指定目錄、輸入命令解壓縮并安裝到指定目錄。n以下將交叉工具鏈稱為交叉編譯器,安裝過程針對EL-ARM860教學(xué)實驗系統(tǒng)。n要安裝的交叉編譯器壓縮包文檔名為:narm-2007q3-51-arm-none-linux-gnueabi-i686.tar.bzn假定主機在Windows環(huán)境下已經(jīng)安裝了虛擬機及Red Hat Enterpris
10、e Linux 5操作系統(tǒng)。 n交叉編譯器可以從光盤或U盤拷貝到Linux的/usr/local子目錄下,然后在該子目錄下建立arm子目錄,交叉編譯器解壓縮后存放在/usr/local/arm子目錄下。n安裝、解壓縮交叉編譯器后,要在/root/.bashrc文件中增加路徑環(huán)境變量,并重啟這個文件,之后系統(tǒng)就能夠在指定路徑下自動找到該交叉編譯器,而不用每次使用時都要指出其絕對路徑。3.2.1 交叉工具鏈安裝舉例 從光盤將交叉編譯器拷貝到/usr/local子目錄n假定交叉編譯器在光盤如下子目錄:/OMAP3530/軟件目錄/tools/。n啟動虛擬機、運行Linux后,光驅(qū)中插入對應(yīng)光盤,在虛
11、擬機窗口右下,點擊光盤圖標(biāo),點擊Connect菜單條,在Linux圖形桌面點擊光盤圖標(biāo),查找并選擇交叉編譯器arm-2007q3-51-arm-none-linux-gnueabi-i686.tar.bz,選擇復(fù)制菜單條,如圖3.1所示。圖3.1 選擇光盤中的交叉編譯器n然后在Linux圖形桌面環(huán)境,在/usr/local子目錄,點擊鼠標(biāo)右鍵,選擇“粘貼1個URL”,交叉編譯器將會粘貼到該子目錄,如圖3.2所示。圖3.2 粘貼交叉編譯器 從U盤將交叉編譯器拷貝到/usr/local子目錄 如果交叉編譯器在U盤,可以使用如下方法。n同樣先啟動虛擬機、運行Linux,然后在Windows窗口,選擇
12、U盤中的交叉編譯器文件,選擇復(fù)制菜單,如圖3.3所示。n然后將該文件粘貼到Linux的/usr/local子目錄。n圖3.3 選擇U盤中的交叉編譯器 建立/usr/local/arm子目錄并解壓縮交叉編譯器n在Linux終端窗口輸入如下命令,將建立/usr/local/arm子目錄,然后將交叉編譯器解壓縮到該子目錄下。n要求啟動Linux時,以root用戶名登錄。 rootlocalhost local# mkdir /usr/local/arm rootlocalhost local# tar xvjf arm-2007q3-51-arm-none-linux-gnueabi- i686.t
13、ar.bz -C /usr/local/armn解壓縮后的代碼分6個子目錄保存,可以用如下命令查看。rootlocalhost local# cd /usr/local/armrootlocalhost arm# ls -l總計 8drwxr-xr-x 8 root root 4096 12-25 10:30 arm-2007q3rootlocalhost arm#rootlocalhost arm# cd arm-2007q3rootlocalhost arm-2007q3# ls -l總計 48drwxrwxr-x 6 root root 4096 2007-09-28 arm-none-
14、linux-gnueabidrwxr-xr-x 2 root root 4096 2007-09-28 bindrwxrwxr-x 2 root root 4096 2007-09-28 includedrwxrwxr-x 3 root root 4096 2007-09-28 libdrwxrwxr-x 4 root root 4096 2007-09-28 libexecdrwxrwxr-x 3 root root 4096 2007-09-28 share3.2.2 對查找工具鏈的路徑變量進行修改 安裝了交叉編譯器后,需要修改/root/.bashrc文件內(nèi)容,應(yīng)該在這個文件中增加一行語
15、句,指出交叉編譯器所在的路徑。之后每當(dāng)打開終端窗口時,Linux自動運行/root/.bashrc文件,給出缺省路徑名的交叉編譯器的查找路徑。 在/root/.bashrc文件中增加語句n可以用如下命令檢查原來的路徑變量值: rootlocalhost local# echo $PATH /usr/lib/qt-3.3/bin:/usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/X11R6/bin:/root/binn然后用vi增加一行語句:
16、rootlocalhost local# vi /root/.bashrcexport PATH=/usr/local/arm/arm-2007q3/bin:$PATHnvi是一個文本編輯程序,如同Windows下的記事本。進入vi后,輸入“a”或“i”即進到插入狀態(tài)。輸入Esc、Esc、:、w、q、!鍵后,保存文件并退出vi程序。 重啟/root/.bashrc文件n可以使用source命令重啟/root/.bashrc文件,然后系統(tǒng)才能修改查找路徑: rootlocalhost # source /root/.bashrcn如果不使用source命令重啟文件,也可以用exit命令關(guān)閉終端窗
17、口,然后再次打開終端窗口,打開終端窗口過程中系統(tǒng)會自動啟動/root/.bashrc文件。 檢查新的路徑變量值n用echo命令可以檢查新的路徑變量值: rootlocalhost # echo $PATH /usr/local/arm/arm-2007q3/bin:/usr/lib/qt-3.3/bin:/usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/X11R6/bin:/root/bin3.3 主機Linux環(huán)境網(wǎng)絡(luò)配置舉例3.3.1
18、主機Linux環(huán)境IP地址設(shè)置 主機Linux環(huán)境IP地址設(shè)置簡介n主機Linux環(huán)境IP地址,應(yīng)該與目標(biāo)板Linux的IP地址4個分組中的前3組完全相同,只允許最后一組不同。n例如,目標(biāo)板Linux的IP地址如果為192.168.1.9,那么主機IP地址前3組必須設(shè)置為192.168.1,最后一組可以是1253中的一個數(shù)字。n以下例子中,假定主機IP地址設(shè)置為192.168.1.5。 主機Linux環(huán)境IP地址設(shè)置方法 常用的方法有兩種:n一種是根據(jù)目標(biāo)板Linux IP地址,設(shè)置主機Linux IP地址。這種方法需要先查詢目標(biāo)板Linux IP地址,如果目標(biāo)板還沒有設(shè)置過IP地址,應(yīng)該先進
19、行設(shè)置。n另一種是保留主機Linux IP地址不變,根據(jù)這個地址設(shè)置目標(biāo)板的IP地址。 目標(biāo)板IP地址配置、檢查n如果目標(biāo)板Linux IP地址還沒有配置,那么在minicom窗口輸入ifconfig命令之后,沒有任何輸出信息: rootTechv_OMAP35xx:# ifconfig rootTechv_OMAP35xx:#n這時應(yīng)該對目標(biāo)板Linux IP地址進行配置,假定配置為192.168.1.9,輸入命令和參數(shù),回車后顯示: rootTechv_OMAP35xx:# ifconfig eth0 192.168.1.9 eth0: link down rootTechv_OMAP35
20、xx:# eth0: link up, 100Mbps, full-duplex1然后輸入ifconfig命令,檢查配置情況:rootTechv_OMAP35xx:# ifconfig eth0 Link encap:Ethernet HWaddr 00:00:AA:BB:CC:DD inet addr:192.168.1.9 Bcast:192.168.1.255 Mask0 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric1 RX packets:4 errors:0 dropped:0 overruns:0 frame0 TX packets:
21、0 errors:0 dropped:0 overruns:0 carri0 collisions:0 txqueuelen:1000 RX bytes:1392 (1.3 KiB) TX bytes:0 (0.0 B) Interrupt:81 DMA chan:ffn用上述方法配置的目標(biāo)板Linux IP地址,沒有保留在目標(biāo)板的外部存儲器。目標(biāo)板關(guān)機或RESET后丟失,下一次使用還需要重新配置。 主機Linux IP地址配置、檢查n在主機終端窗口,輸入ifconfig eth0 192.168.1.5,將IP地址配置為192.168.1.5。 rootlocalhost # ifconfi
22、g eth0 192.168.1.5n然后用ifconfig命令檢查配置的參數(shù): rootlocalhost # ifconfigeth0 Link encap:Ethernet HWaddr 00:0C:29:5E:89:68 inet addr:192.168.1.5 Bcast:192.168.1.255 Mask:255.255.255.0 inet6 addr: fe80:20c:29ff:fe5e:8968/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:19403 errors:0
23、 dropped:0 overruns:0 frame:0 TX packets:38 errors:0 dropped:0 overruns:0 carrier:0n主機Linux IP地址配置后的值,保存到外設(shè),主機Linux在虛擬機中用掛起方式退出、關(guān)機后,再次啟動仍保留以前配置過的值,直到下一次配置新的地址為止。如果主機Linux在虛擬機中以power off方式退出,再次以power on方式啟動運行Linux后,保存的IP地址丟失,需要重新配置。3.3.2 主機Linux環(huán)境網(wǎng)絡(luò)防火墻設(shè)置 設(shè)置方法:n在主機Linux終端窗口,輸入setup命令并回車,然后在彈出的菜單中選擇“防火
24、墻配置(Firewall configuration)”見圖3.4,回車。圖3.4 選擇配置防火墻n之后在彈出的界面中用光標(biāo)移動鍵選擇“禁用”防火墻,選擇“確定”后回車,退出設(shè)置,見圖3.5。圖3.5 選擇禁用防火墻n另一種設(shè)置方法是:在主機Linux圖形桌面,點擊“紅帽子”“安全級別和防火墻”,在彈出的窗口選擇禁用防火墻,如圖3.6所示。圖3.6 在圖形桌面設(shè)置禁用防火墻3.3.3 主機與目標(biāo)板網(wǎng)絡(luò)通信測試 在主機終端窗口用命令測試主機與目標(biāo)板的通信n在主機Linux終端窗口,輸入ping命令,后面跟隨目標(biāo)板IP地址,例如:nrootlocalhost /# ping 192.168.1.9
25、n可以用Ctrl+c鍵去終止ping命令。PING 192.168.1.9 (192.168.1.9) 56(84) bytes of data.64 bytes from 192.168.1.9: icmp_seq=1 ttl=64 time=0.792 ms64 bytes from 192.168.1.9: icmp_seq=2 ttl=64 time=0.278 ms64 bytes from 192.168.1.9: icmp_seq=3 ttl=64 time=0.531 ms64 bytes from 192.168.1.9: icmp_seq=4 ttl=64 time=0.3
26、35 ms- 192.168.1.9 ping statistics -4 packets transmitted, 4 received, 0% packet loss, time 2999msrtt min/avg/max/mdev = 0.278/0.484/0.792/0.201 ms 在目標(biāo)板終端窗口用命令測試目標(biāo)板與主機的通信n在目標(biāo)板終端窗口(輸入minicom后的窗口),輸入ping命令,后面跟隨主機IP地址,例如: rootTechv_OMAP35xx:# ping 192.168.1.5PING 192.168.1.5 (192.168.1.5): 56 data byte
27、s64 bytes from 192.168.1.5: seq=0 ttl=64 time=8.484 ms64 bytes from 192.168.1.5: seq=1 ttl=64 time=0.489 ms64 bytes from 192.168.1.5: seq=2 ttl=64 time=0.458 ms.- 192.168.1.5 ping statistics -3 packets transmitted, 3 packets received, 0% packet lossround-trip min/avg/max = 0.458/3.143/8.484 ms ping命
28、令測試提示的錯誤信息n如果網(wǎng)絡(luò)不通,系統(tǒng)會產(chǎn)生Unreachable(不可到達)提示信息,這時要檢查:網(wǎng)絡(luò)防火墻設(shè)置是否正確,因為防火墻不允許ICMP流量通過;網(wǎng)口電纜與接口是否正確連接;ping命令中的IP地址是否為正確地址;測試命令和IP地址是否在正確的終端窗口輸入。3.3.4 主機Linux環(huán)境NFS設(shè)置 NFS簡述nNFS(Network File System,網(wǎng)絡(luò)文件系統(tǒng))協(xié)議,允許在一組通過網(wǎng)絡(luò)互聯(lián)的計算機中,計算機A的某個存儲位置(導(dǎo)出),能夠被計算機B使用。n例如,嵌入式Linux開發(fā)環(huán)境中,主機與目標(biāo)板通過網(wǎng)口連接,且已經(jīng)根據(jù)前幾節(jié)設(shè)置了主機IP地址、防火墻,測試網(wǎng)絡(luò)通信正
29、常,那么通過對主機NFS設(shè)置,并且目標(biāo)板執(zhí)行相應(yīng)的mount掛接命令后,目標(biāo)板就能夠通過網(wǎng)口,把主機的指定目錄(導(dǎo)出),連接到目標(biāo)板直接使用。當(dāng)然前提是目標(biāo)板Linux內(nèi)核配置時,允許使用NFS。nNFS協(xié)議通過網(wǎng)口的連接,把主機導(dǎo)出目錄的文件,連接到目標(biāo)板的指定目錄,目標(biāo)板可以像使用本地文件一樣,使用這些文件。 主機NFS設(shè)置 選擇NFS服務(wù)n一種設(shè)置方法是,選擇:紅帽子服務(wù),在彈出的服務(wù)窗口用光標(biāo)選擇nfs服務(wù),見圖3.7。n同時還要選擇去掉iptables服務(wù)。n然后關(guān)閉該窗口。圖3.7 選擇主機Linux允許NFS服務(wù)n另一種設(shè)置方法是,在主機終端窗口,輸入setup命令,在彈出的窗口
30、中選擇“系統(tǒng)服務(wù)”并回車,然后用光標(biāo)鍵上、下移動,用空格鍵選中nfs服務(wù),見圖3.8,然后去掉iptables服務(wù),最后用F12鍵退出。圖3.8 另一種方法選擇主機Linux允許NFS服務(wù) 設(shè)置主機NFS導(dǎo)出目錄及讀寫權(quán)限n除了要設(shè)置主機Linux允許NFS服務(wù)外,還要指定主機的哪些目錄作為NFS區(qū)域,即導(dǎo)出目錄,同時要指定該目錄允許的讀寫權(quán)限。n設(shè)置方法是用vi編輯器打開/etc/exports文件:rootlocalhost # vi /etc/exportsn將其內(nèi)容修改為:/ *(rw)/home/nfs1 *(rw)n然后保存、退出。 啟動NFS設(shè)置n通過以下命令,按新的設(shè)置重啟NF
31、S:rootlocalhost # /etc/init.d/nfs restart 查看NFS配置文件n可以用vi查看/etc/exports文件:rootlocalhost # vi /etc/exports/ *(rw)/home/nfs1 *(rw) 將主機/home/nfs1目錄掛接為目標(biāo)板/tmp目錄n此處所謂掛接指的是,在目標(biāo)板對應(yīng)的終端窗口,使用mount命令,執(zhí)行NFS協(xié)議的掛接。 掛接前主機建立/home/nfs1子目錄 rootlocalhost /# mkdir /home/nfs1n然后進入/home/nfs1子目錄,用vi建立一個文件,文件名為abc,文件內(nèi)容可以隨意
32、輸入并保存。建立這個文件目的是在掛接后能夠從目標(biāo)板看到主機/home/nfs1下的這個文件。rootlocalhost /# cd /home/nfs1rootlocalhost nfs1# vi abcrootlocalhost nfs1# ls -l總計 4-rw-r-r- 1 root root 10 01-09 10:15 abc 在目標(biāo)板對應(yīng)終端窗口,執(zhí)行掛接命令 rootTechv_OMAP35xx:/# mount -o soft,nolock,rsize=1024 -v 192.168.1.5:/home/nfs1 /tmpn上述命令中的參數(shù)192.168.1.5:/home/
33、nfs1是主機IP地址及導(dǎo)出目錄,參數(shù)/tmp是目標(biāo)板目錄,掛接成功后,查看目標(biāo)板/tmp目錄,相當(dāng)于查看主機/home/nfs1目錄。 掛接后目標(biāo)板/tmp目錄列表 rootTechv_OMAP35xx:/# cd /tmp rootTechv_OMAP35xx:/var/volatile/tmp# ls -l -rw-r-r- 1 root root 10 Jan 9 2013 abcn另外,一次掛接成功,NFS掛接有效保持到目標(biāo)板RESET或關(guān)機為止,每次開機或RESET后都要重新掛接。3.4 輸入、編譯、運行一個程序 全過程舉例n假定要在主機/home/nfs1目錄下,建立一個子目錄h
34、ello,在該子目錄下建立一個hello.c文件、建立一個Makefile文件,然后在主機編譯hello.c文件,產(chǎn)生可執(zhí)行文件hello,在目標(biāo)板執(zhí)行該文件,執(zhí)行這些操作的全過程及相關(guān)文件的內(nèi)容如下所示。n下述操作中,在主機Linux終端窗口輸入minicom后,這個窗口成為目標(biāo)板終端窗口,然后掛接NFS;n操作中,命令是在目標(biāo)板終端窗口輸入的;n其余操作、均在主機Linux終端窗口進行;n而和表示要輸入的文件的內(nèi)容。 建立hello目錄,進入hello目錄rootlocalhost nfs1# mkdir /home/nfs1/hellorootlocalhost nfs1# cd /ho
35、me/nfs1/hello 用vi編輯程序建立hello.c源文件rootlocalhost hello# vi hello.c hello.c文件內(nèi)容為#include #include int main(int argc, char *argv) printf(Hello Reader,Congradulations!n); return(0); 建立Makefile文件rootlocalhost hello# vi Makefile Makefile文件內(nèi)容為CC = /usr/local/arm/arm-2007q3/bin/arm-none-linux-gnueabi-gccall:
36、 $(CC) -o hello hello.cclean: -rm -f *.o hellon輸入上述代碼后,保存文件并退出。n上述Makefile文件內(nèi)容中: CC 表示主編譯器 all: 表示主入口 clean:表示清除以前編譯產(chǎn)生的結(jié)果另外,語句“$(CC) -o hello hello.c”和“-rm -f *.o hello”,前面有一個制表符Tab,不是空格。 在目標(biāo)板終端窗口掛接NFSn如果沒有掛接NFS,則需要掛接。# mount -o soft,nolock,rsize=1024 -v 192.168.1.5:/home/nfs1 /tmp 在主機終端窗口對hello.c文件進行編
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 水電工程施工關(guān)鍵問題解析試題及答案
- 現(xiàn)代管理學(xué)的文化環(huán)境影響試題及答案
- 2025年管理學(xué)未來展望試題及答案
- 增強公眾參與感的公共關(guān)系策略試題及答案
- 管理心理學(xué)中的非語言溝通試題及答案
- 共享出行平臺信用體系在新能源汽車推廣中的應(yīng)用報告
- 2025年社區(qū)心理健康服務(wù)與社區(qū)心理健康促進活動的創(chuàng)新實踐與優(yōu)化報告
- 2025年主題公園二期項目社會穩(wěn)定風(fēng)險評估與風(fēng)險防范措施報告
- 2025年教育培訓(xùn)機構(gòu)品牌建設(shè)與市場推廣的營銷團隊建設(shè)策略研究報告
- 行政管理考試公文要素試題及答案
- 【MOOC】頸肩腰腿痛中醫(yī)防治-暨南大學(xué) 中國大學(xué)慕課MOOC答案
- 《法國師范教育》課件
- 安全法規(guī)-終結(jié)性考試-國開(SC)-參考資料
- 公司用工協(xié)議書簡單范本(2篇)
- 第三單元《增強法治意識》測試卷-高二思想政治課《職業(yè)道德與法治》附答案
- 教育革新:2024版《認識交通標(biāo)志》課件
- (高清版)DB4202∕T 39-2024 城市橋梁與隧道運行監(jiān)測技術(shù)規(guī)范
- 數(shù)據(jù)分析師歷年考試真題試題庫(含答案)
- 住宅小區(qū)園林景觀綠化工程施工組織設(shè)計方案
- 物質(zhì)的量說課
- 人教版八年級下冊歷史教案全冊
評論
0/150
提交評論