下載本文檔
版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、嵌入式linux nfs方式下應(yīng)用程序的實(shí)現(xiàn)下的應(yīng)用程序的開(kāi)發(fā),與windows下應(yīng)用程序的開(kāi)發(fā)大不相同。在windows環(huán)境中,可以挺直在pc上用法各種集成編譯開(kāi)發(fā)工具,完成程序編輯、編譯和運(yùn)行,而在嵌入式linux環(huán)境下,缺少容易、高效的開(kāi)發(fā)工具,程序的開(kāi)發(fā)需要在pc+嵌入式linux平臺(tái)完成。因此,在程序的調(diào)試運(yùn)行過(guò)程中,需要在linux服務(wù)器和嵌入式開(kāi)發(fā)板間交換信息,這種信息交換目前最常用的方式是ftp方式,即:先在linux服務(wù)器上編輯源文件,然后交錯(cuò)編譯生成可執(zhí)行文件,再通過(guò)ftp下載到嵌入式主機(jī)系統(tǒng)中運(yùn)行,如浮現(xiàn)錯(cuò)誤則回到linux服務(wù)器上重新編譯,再下載運(yùn)行,直到程序正確運(yùn)行為
2、止。但ftp方式缺點(diǎn)是效率比較低,而且無(wú)法在線調(diào)試。這里筆者研究另一種更高效率的信息交換方式,即:nfs(網(wǎng)絡(luò)文件系統(tǒng))方式下嵌入式linux下的應(yīng)用程序的實(shí)現(xiàn)辦法。本文以三星公司9內(nèi)核芯片開(kāi)發(fā)板接口為基礎(chǔ),軟件采納linux 2.4.21,編譯器為arm-linux-gcc的交錯(cuò)編譯器。2 嵌入式linux開(kāi)發(fā)平臺(tái)的建立在嵌入式linux下開(kāi)發(fā)應(yīng)用程序,必需建立一個(gè)完美的嵌入式linux開(kāi)發(fā)環(huán)境。2.1 嵌入式linux開(kāi)發(fā)平臺(tái)構(gòu)架嵌入式linux 開(kāi)發(fā)平臺(tái)構(gòu)架主要包括:嵌入式linux 服務(wù)器、工作站、嵌入式開(kāi)發(fā)板系統(tǒng),其結(jié)構(gòu)1所示。嵌入式linux 服務(wù)器由一臺(tái)pc充當(dāng),主要作為嵌入式l
3、inux內(nèi)核編譯、應(yīng)用程序編譯的公共平臺(tái),這里安裝標(biāo)準(zhǔn)的redhat linux操作系統(tǒng) ,工作站為一般局域網(wǎng)計(jì)算機(jī),可以是一臺(tái)或多臺(tái),安裝windows操作系統(tǒng),普通用來(lái)完成各種日常工作,可視需要與linux 服務(wù)器、嵌入式開(kāi)發(fā)板系統(tǒng)銜接,嵌入式開(kāi)發(fā)板系統(tǒng)是用來(lái)開(kāi)發(fā)嵌入式應(yīng)用程序,它必需與linux 服務(wù)器舉行網(wǎng)絡(luò)銜接,目的是建立網(wǎng)絡(luò)文件系統(tǒng),把linux服務(wù)器上的特定名目分享到待調(diào)試的嵌入式開(kāi)發(fā)板系統(tǒng)上,從而實(shí)時(shí)地對(duì)應(yīng)用程序舉行編輯、編譯、調(diào)試。另外嵌入式開(kāi)發(fā)板系統(tǒng)可通過(guò)串口與工作站rs232銜接,用法工作站上的超級(jí)終端作為嵌入式開(kāi)發(fā)板系統(tǒng)上的輸入/輸出終端。2.2 嵌入式開(kāi)發(fā)板操作系統(tǒng)的
4、移植嵌入式開(kāi)發(fā)板操作系統(tǒng)就是嵌入式linux,它指的是標(biāo)準(zhǔn)linux操作系統(tǒng)的內(nèi)核,把標(biāo)準(zhǔn)linux操作系統(tǒng)的舉行適當(dāng)?shù)牟眉簦尤胍恍┨囟ǖ墓δ?,形成一個(gè)小巧、高效的滿(mǎn)足特定需要的專(zhuān)用操作系統(tǒng),然后移植到arm體系結(jié)構(gòu)的開(kāi)發(fā)板系統(tǒng)上,移植主要包括建立交錯(cuò)編譯環(huán)境、修改內(nèi)核源碼、內(nèi)核裁剪和內(nèi)核編譯4個(gè)環(huán)節(jié)。2.2.1建立交錯(cuò)編譯環(huán)境交錯(cuò)編譯是指利用運(yùn)行在某臺(tái)計(jì)算機(jī)上的編譯器編譯某個(gè)源程序生成在另一種結(jié)構(gòu)計(jì)算機(jī)上運(yùn)行的目標(biāo)代碼的過(guò)程。編譯器的生成依靠于相應(yīng)的函數(shù)庫(kù),而這些函數(shù)庫(kù)又得依賴(lài)編譯器來(lái)編譯。建立交錯(cuò)編譯環(huán)境就是將arm用法的編譯器(如:arm-linux-gcc)和函數(shù)庫(kù)(如:glibc)
5、安裝到指定名目,并用法configure配置好makefile文件。2.2.2 修改內(nèi)核源代碼linux內(nèi)核分為體系結(jié)構(gòu)相關(guān)部分和體系結(jié)構(gòu)無(wú)關(guān)部分。在linux啟動(dòng)的第一階段,內(nèi)核與體系結(jié)構(gòu)相關(guān)部分首先執(zhí)行,它會(huì)完成硬件寄存器設(shè)置,內(nèi)存映射等初始化工作。然后把控制權(quán)轉(zhuǎn)給內(nèi)核中與系統(tǒng)體系結(jié)構(gòu)無(wú)關(guān)的部分。在移植工作中要修改的代碼主要集中在與體系結(jié)構(gòu)相關(guān)的部分。arm芯片的體系結(jié)構(gòu)在arch/arm名目下。首先按照芯片手冊(cè)修改boot/init.s文件中的:片選組基地址寄存器、dram存儲(chǔ)配置寄存器、dram片選寄存器、中斷屏蔽寄存器等。然后修改內(nèi)核的鏈接及裝入elf。最后將系統(tǒng)中可用頁(yè)面的數(shù)目、文
6、件系統(tǒng)大小等信息以參數(shù)形式從啟動(dòng)代碼傳給內(nèi)核,完成設(shè)置陷阱,初始化中斷,初始化計(jì)時(shí)器,初始化控制臺(tái)等一系列操作而使內(nèi)核正常啟動(dòng)。2.2.3 內(nèi)核裁剪和編譯linux內(nèi)核的裁剪支持三種配置方式,即make confg、make menuconfig、make xconfg,普通采納菜單式用指令make menuconfig對(duì)系統(tǒng)舉行裁剪樣較為容易(詳細(xì)見(jiàn)arm9配置手冊(cè))。內(nèi)核裁剪之后,最后要舉行交錯(cuò)編譯后在arch/arm名目下生成內(nèi)核映象文件zimage,分離用法指令如下:make clean(清理編譯環(huán)境);make dep(編譯依靠文件);make zimage(編譯內(nèi)核)舉行內(nèi)核編譯。
7、3 嵌入式linux nfs開(kāi)發(fā)環(huán)境的建立nfs(network file system)即:網(wǎng)絡(luò)文件系統(tǒng),它是一種將遠(yuǎn)程主機(jī)上的名目通過(guò)網(wǎng)絡(luò)銜接到本地主機(jī)的一種機(jī)制。通過(guò)對(duì)網(wǎng)絡(luò)文件系統(tǒng)的支持,用戶(hù)可以很便利地在本地主機(jī)上操作遠(yuǎn)程主機(jī)上的分享名目。因此,可以通過(guò)建立網(wǎng)絡(luò)文件系統(tǒng),把linux服務(wù)器上的特定名目分享到嵌入式開(kāi)發(fā)板系統(tǒng)上,這樣就可以挺直在嵌入式開(kāi)發(fā)板上操作linux服務(wù)器,特殊是能夠?qū)崟r(shí)在線地對(duì)程序舉行編輯、調(diào)試、運(yùn)行,極大地提高了嵌入式linux下的應(yīng)用程序的開(kāi)發(fā)的效率。嵌入式linux 開(kāi)發(fā)平臺(tái)下的nfs環(huán)境配置,主要是對(duì)嵌入式linux服務(wù)器端的nfs配置和嵌入式開(kāi)發(fā)板系統(tǒng)的
8、nfs客戶(hù)端配置,使其支持nfs。3.1 linux服務(wù)器端的nfs配置以root賬戶(hù)登錄linux服務(wù)器,編輯分享名目配置文件exports,設(shè)定分享名目及權(quán)限,執(zhí)行 vi/etc/exports指令,在exports文件中添加 /home/work 192.168.33.*(rw)后保存,其作用是是將/home/work設(shè)為分享名目,ip地址在192.168.33.*范圍內(nèi)的計(jì)算機(jī)可以用讀寫(xiě)的方式拜訪分享名目/home/work;接著執(zhí)著指令/etc /rc.d /init.d /protmap start來(lái)舉行端口映射;最后執(zhí)行指令/etc /rc.d /init.d /nfs star
9、t來(lái)啟動(dòng)nfs服務(wù),啟動(dòng)nfs服務(wù)后,還需檢查linux服務(wù)器的iptables、ipchains等選項(xiàng)及文件/etc/hosts.deny、/etc/hosts.allow來(lái)確保沒(méi)有屏蔽nfs用法的端口和允許通信的主機(jī)。配置完畢后,可以在linux服務(wù)器上運(yùn)行如下指令:mount t nfs :/home/work /mnt 舉行nfs服務(wù)器的回環(huán)測(cè)試,驗(yàn)證分享名目是否能夠被拜訪,若配置勝利,執(zhí)行 is/mnt指令后,能夠在/mnt名目中看到/home/work分享名目中的內(nèi)容。3.2 嵌入式開(kāi)發(fā)板系統(tǒng)nfs客戶(hù)端的配置首先運(yùn)行在嵌入式開(kāi)發(fā)板系統(tǒng)的linux內(nèi)核支持n
10、fs客戶(hù)端,運(yùn)行make menuconfig指令后,挑選菜單中fils system->選項(xiàng),按車(chē)回鍵后挑選下級(jí)菜單中的network file system- >選項(xiàng),按車(chē)回鍵后選中級(jí)菜單中的nfs system support和provide nfsv3 client support兩項(xiàng),保存退出;然后分離運(yùn)行 make clean、 make dep、 make zimage指令來(lái)重新編譯內(nèi)核,最后在arch/arm/boot中生成一個(gè)內(nèi)核映像文件zimage;然后在redboot下運(yùn)行指令redboot >load v r b 0x312000,將linux內(nèi)核文件
11、zimage下載到嵌入式開(kāi)發(fā)板系統(tǒng)的sdram并燒寫(xiě)到flash中,其中0x312000為開(kāi)發(fā)板系統(tǒng)sdram的地址,文件下載完畢后浮現(xiàn)如下提醒信息:raw file loaded 0x00312000-0x003fae5f,再運(yùn)行指令redboot >fis create b 0x312000 -1 0xc37df zimage將其保存在flash文件系統(tǒng)中;最后分離執(zhí)行指令fis load ramdisk.gz、 load zimageis、exec r ox1000000 0x312000后,開(kāi)發(fā)板系統(tǒng)中的配置好嵌入式linux nfs開(kāi)頭運(yùn)行。在嵌入式開(kāi)發(fā)板系統(tǒng)的linux sh
12、ell下,運(yùn)行 mkdir /mnt/nfs指令來(lái)建立linux服務(wù)器輸出分享名目的掛載點(diǎn),運(yùn)行 mount o nolock t nfs : /home/work /mnt/nfs指令使linux服務(wù)器的輸出名目:/home/work通過(guò)nfs映射到了嵌入開(kāi)發(fā)板系統(tǒng)的/mnt/nfs。4 嵌入式linux nfs方式下應(yīng)用程序的實(shí)現(xiàn)完成了對(duì)linux服務(wù)器端的nfs配置和嵌入式開(kāi)發(fā)板系統(tǒng)nfs客戶(hù)端的配置后,使雙方均能支持nfs才干在此方式下舉行應(yīng)用程序的開(kāi)發(fā)。4.1 nfs方式的應(yīng)用程序開(kāi)發(fā)流程首先在linux服務(wù)器上編輯源文件,然后交錯(cuò)編譯,最后生成可執(zhí)行文件,生成
13、的執(zhí)行文件在嵌入式開(kāi)發(fā)板端通過(guò)nfs方式掛載linux服務(wù)器的分享名目,讓?xiě)?yīng)用程序挺直運(yùn)行在嵌入式開(kāi)發(fā)板系統(tǒng)中,舉行編譯、調(diào)試。其詳細(xì)開(kāi)發(fā)流程2所示。當(dāng)完成了應(yīng)用程序的調(diào)試與運(yùn)行后,就可以將調(diào)試好的應(yīng)用程序下載到嵌入式開(kāi)發(fā)板系統(tǒng)的flash文件系統(tǒng),或挺直編譯到嵌入式linux內(nèi)核并燒寫(xiě)到系統(tǒng)的flash,從而終于形成一個(gè)自立的嵌入式應(yīng)用系統(tǒng)。4.2 nfs方式下的一個(gè)應(yīng)用程序?qū)嵗旅媸且粋€(gè)求n!的階乘的容易示例,來(lái)解釋基于嵌入式linux的應(yīng)用程序的實(shí)現(xiàn)辦法。第一步:編輯應(yīng)用程序:在linux服務(wù)器的工作名目:即輸出分享名目/home/work下用法vi文本編輯器來(lái)編輯應(yīng)用程序,應(yīng)用程序取名
14、為jiecheng.c。輸入指令 vi jieccheng.c,完成源程序代碼編輯后,保存文件并退出vi。源程序代碼如下:其次步:編譯應(yīng)用程序:輸入指令 arm-linux-gcc o jiecheng jieccheng.c來(lái)編譯應(yīng)用程序,當(dāng)指令執(zhí)行完畢后,會(huì)在/home/work名目下生成可執(zhí)行文件jiecheng。第三步:在嵌入式開(kāi)發(fā)板端掛載linux服務(wù)器的輸出分享名目:?jiǎn)?dòng)在嵌入式開(kāi)發(fā)板端系統(tǒng)的配置好的linux,用法pc超級(jí)終端作為用戶(hù)操作界面,輸入如下指令樣 mkdir /mnt/fns /建立linux服務(wù)器的輸出分享名目掛載點(diǎn)mount o nolock t fns 19:/home/work/ /mnt/nfs /linux服務(wù)器的輸出名目:/home/work通過(guò)nfs映射到了嵌入開(kāi)發(fā)板系統(tǒng)的/mnt/nfs。cd /mnt/
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年長(zhǎng)江流域生態(tài)修復(fù)工程合同
- 2024年版房地產(chǎn)投資合作合同書(shū)版B版
- 2025年度旅游風(fēng)景區(qū)攤位租賃服務(wù)合同3篇
- 2024監(jiān)理服務(wù)合同
- 2024年經(jīng)典股權(quán)轉(zhuǎn)讓三邊合同范本
- 2024鐵藝工程勞務(wù)分包合同協(xié)議書(shū)
- 2024年餐飲業(yè)加盟協(xié)議細(xì)則及模板版B版
- 2024版品牌使用權(quán)授權(quán)協(xié)議版B版
- 2024幼兒園房屋租賃合同
- 2024模板工智能家居背景音樂(lè)系統(tǒng)安裝單項(xiàng)工程合同范本6篇
- 2024年一級(jí)支行行長(zhǎng)競(jìng)聘演講稿例文(4篇)
- 健身房銷(xiāo)售人員培訓(xùn)
- 菌種保存管理
- 四年級(jí)數(shù)學(xué)(上)計(jì)算題專(zhuān)項(xiàng)練習(xí)及答案
- 廣東省廣州市2022-2023學(xué)年高二上學(xué)期期末考試化學(xué)試題
- 人教版-六年級(jí)上數(shù)學(xué)-扇形統(tǒng)計(jì)圖單元測(cè)試(含答案)
- 2023年題工會(huì)基礎(chǔ)知識(shí)試題及答案
- 光伏運(yùn)營(yíng)維護(hù)管理方案
- 6、水平四+田徑18課時(shí)大單元計(jì)劃-《雙手頭上前擲實(shí)心球》
- 江蘇省徐州市2023-2024學(xué)年高一上學(xué)期1月期末抽測(cè)試題 物理 含解析
- 砍伐枯死桉樹(shù)木申請(qǐng)書(shū)
評(píng)論
0/150
提交評(píng)論