廣嵌嵌入式Linux開發(fā)環(huán)境搭建_第1頁
廣嵌嵌入式Linux開發(fā)環(huán)境搭建_第2頁
廣嵌嵌入式Linux開發(fā)環(huán)境搭建_第3頁
廣嵌嵌入式Linux開發(fā)環(huán)境搭建_第4頁
廣嵌嵌入式Linux開發(fā)環(huán)境搭建_第5頁
已閱讀5頁,還剩34頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

嵌入式Linux開發(fā)環(huán)境搭建嵌入式系統(tǒng)定義回顧嵌入到對(duì)象體中的專用計(jì)算機(jī)系統(tǒng)三要素:嵌入、專用、計(jì)算機(jī)嵌入式系統(tǒng)的特點(diǎn):由三要素引出嵌入性:嵌入到對(duì)象體系中,有對(duì)象環(huán)境要求專用性:軟、硬件按對(duì)象要求裁減計(jì)算機(jī):實(shí)現(xiàn)對(duì)象的智能化功能嵌入式系統(tǒng)的應(yīng)用GEC2440開發(fā)板GEC2440開發(fā)板硬件構(gòu)成◆采用三星公司的S3C2440A-40,系統(tǒng)可穩(wěn)定運(yùn)行在405MHZ,主頻最高可達(dá)530多MHz;◆64M字節(jié)的SDRAM,由兩片K4S561632組成,工作在32位模式下;◆64M字節(jié)NANDFlash,采用的是K9F1208,可以兼容16M,32M或128M字節(jié);◆10M以太網(wǎng)接口,采用的是CS8900Q3,帶傳輸和連接指示燈;◆LCD和觸摸屏接口;◆2個(gè)USBHOST,S3C2440內(nèi)置的,符合USB1.1,其中一個(gè)USBHOST接口是復(fù)用的;◆一個(gè)USBDevice,S3C2440內(nèi)置的,符合USB1.1;◆支持音頻輸入和音頻輸出,音頻模塊由S3C2440的IIS音頻總線接口和UDA1341音頻編碼解碼器組成,板上還集成了一個(gè)MIC,用于音頻輸入;◆2路UART串行口,波特率可高達(dá)115200bps,并具有RS232電平轉(zhuǎn)換電路,其中一路為完整串口;◆SD卡接口,兼容SDMemoryCardProtocol1.0和SDIOCardProtocol1.0;◆Embedded-ICE(20腳標(biāo)準(zhǔn)JTAG)接口和并口式JTAG接口,支持ADS,SDT軟件的下載◆和調(diào)試以及FLASH的燒寫;◆串行EEPROM:AT24C024KbytesEEPROM,IIC接口;◆SPI接口;◆數(shù)字?jǐn)z像頭接口;◆蜂鳴器,4個(gè)LED燈;◆4個(gè)按鍵;◆開關(guān)電源,分布式電源供電;◆3V鋰電池,提供RTC電源;GEC2440開發(fā)板使用啟動(dòng)LINUX接上電源,接上交叉串口線,連上交叉網(wǎng)線,設(shè)置好串口工具串口工具的參數(shù):波特率115200,8位,無奇偶位,停止位1,無硬件流。開發(fā)板上電后,BootLoader等待一段時(shí)間,如果沒有輸入,將會(huì)自動(dòng)啟動(dòng)這個(gè)linux系統(tǒng)。這時(shí)將在串口和LCD屏(選配模塊)有信息顯示在串口,將進(jìn)入Linux的命令模式下,在LCD屏上,將有QT界面的顯示,首次進(jìn)入QT,需要先進(jìn)行觸摸屏的校準(zhǔn)。嵌入式Linux開發(fā)環(huán)境嵌入式系統(tǒng)通常是一個(gè)資源受限的系統(tǒng),因此直接在嵌入式系統(tǒng)的硬件平臺(tái)上編寫軟件比較困難,有時(shí)候甚至是不可能的。解決辦法:首先在通用計(jì)算機(jī)上編寫程序;然后通過本地編譯或者交叉編譯生成目標(biāo)平臺(tái)上可以運(yùn)行的二進(jìn)制代碼格式;最后再下載到目標(biāo)平臺(tái)上的特定位置上運(yùn)行。嵌入式Linux開發(fā)環(huán)境關(guān)于交叉編譯在一種平臺(tái)上編譯出能在另一種平臺(tái)(體系結(jié)構(gòu)不同)上運(yùn)行的程序。在PC平臺(tái)(X86CPU)上編譯出能運(yùn)行在arm平臺(tái)上的程序,編譯得到的程序在X86CPU平臺(tái)上是不能運(yùn)行的,必須放到arm平臺(tái)上才能運(yùn)行。用來編譯這種程序的編譯器就叫交叉編譯器。為了不跟本地編譯器混淆,交叉編譯器的名字一般都有前綴。例如:arm-linux-gcc嵌入式Linux開發(fā)環(huán)境需要交叉開發(fā)環(huán)境(CrossDevelopmentEnv)的支持是嵌入式應(yīng)用軟件開發(fā)時(shí)的一個(gè)顯著特點(diǎn)。交叉編譯器只是交叉開發(fā)環(huán)境的一部分。交叉開發(fā)環(huán)境是指編譯、鏈接和調(diào)試嵌入式應(yīng)用軟件的環(huán)境,它與運(yùn)行嵌入式應(yīng)用軟件的環(huán)境有所不同,通常采用宿主機(jī)-目標(biāo)機(jī)模式。嵌入式Linux開發(fā)環(huán)境宿主機(jī)-目標(biāo)板模式宿主機(jī)(Host)是一臺(tái)通用計(jì)算機(jī),它通過串口或者以太網(wǎng)接口與目標(biāo)機(jī)通信。宿主機(jī)的軟硬件資源比較豐富,能夠大大提高嵌入式應(yīng)用軟件的開發(fā)速度和效率。目標(biāo)板(Target),應(yīng)用程序?qū)嶋H運(yùn)行的平臺(tái),或者是能夠替代實(shí)際運(yùn)行環(huán)境的仿真系統(tǒng)。軟硬件資源通常都比較有限。嵌入式Linux開發(fā)環(huán)境宿主機(jī)-目標(biāo)機(jī)模式首先利用宿主機(jī)上豐富的資源和良好的開發(fā)環(huán)境開發(fā)和仿真調(diào)試目標(biāo)機(jī)上的軟件;然后通過串口或者以網(wǎng)絡(luò)將交叉編譯生成的目標(biāo)代碼傳輸并裝載到目標(biāo)機(jī)上,并在監(jiān)控程序或者操作系統(tǒng)的支持下利用交叉調(diào)試器進(jìn)行分析和調(diào)試;最后目標(biāo)機(jī)在特定環(huán)境下脫離宿主機(jī)單獨(dú)運(yùn)行。

嵌入式Linux開發(fā)環(huán)境GNU交叉工具鏈toolchainGNU是自由軟件基金會(huì)的一個(gè)項(xiàng)目。

Linux的開發(fā)使用了眾多的GUN工具基于GPL協(xié)議的開發(fā)工具交叉編譯器,例如arm-linux-gcc交叉匯編器,例如arm-linux-as交叉鏈接器,例如arm-linux-ld用于處理可執(zhí)行程序和庫(kù)的一些基本工具。例如arm-linux-strip去除elf文件中的多余符號(hào)信息嵌入式Linux開發(fā)環(huán)境包的安裝:mkdir/usr/local/arm添加環(huán)境變量在文件/etc/bashrc文件最后添加:

使得配置立刻生效,需要使用source命令重新讀取配置文件。工具鏈安裝完成。嵌入式Linux開發(fā)環(huán)境GNU交叉工具鏈的常用工具介紹

遠(yuǎn)程訪問目標(biāo)板如何觀察應(yīng)用程序在目標(biāo)板的運(yùn)行情況,即查看程序的輸出信息?通過串口線連接宿主機(jī)和目標(biāo)板。配置串口做為目標(biāo)板的輸出設(shè)備。例如在交叉編譯目標(biāo)板的linux內(nèi)核時(shí),配置指定終端為串口:noinitrdroot=/dev/mtdblock2init=/linuxrcconsole=ttySAC0,1152002.4的內(nèi)核為console=ttyS0在宿主機(jī)上通過串口通信軟件查看目標(biāo)板系統(tǒng)的運(yùn)行情況。遠(yuǎn)程訪問目標(biāo)板minicom的使用minicom的設(shè)置:minicom-s遠(yuǎn)程訪問目標(biāo)板遠(yuǎn)程訪問目標(biāo)板minicom的使用選擇串口 選擇菜單中的“Serialportsetup”,按回車,進(jìn)入如下圖所示界面。按“A”以設(shè)置“SerialDevice”(串口1->/dev/ttyS0,串口2->/dev/ttyS1)遠(yuǎn)程訪問目標(biāo)板遠(yuǎn)程訪問目標(biāo)板minicom的使用設(shè)置波特率

按“E”鍵進(jìn)入設(shè)置“bps/par/Bits”(波特率)界面。再按“I”以設(shè)置波特率為115200?!癚”數(shù)據(jù)位8,奇偶檢驗(yàn)位無,停止位1遠(yuǎn)程訪問目標(biāo)板遠(yuǎn)程訪問目標(biāo)板minicom的使用設(shè)置無流控制(無硬件、無軟件)

按回車退回到上一級(jí)菜單,按“F”鍵設(shè)置“HardwareFlowControl”為“NO”,其他選項(xiàng)使用缺省值。遠(yuǎn)程訪問目標(biāo)板遠(yuǎn)程訪問目標(biāo)板minicom的使用保存設(shè)置

再選擇“Exit”退出設(shè)置模式。剛才的設(shè)置被保存到“/etc/minirc.dfl”。設(shè)置完畢 打開目標(biāo)板電源的電源開關(guān),minicom輸出目標(biāo)板的啟動(dòng)信息,當(dāng)Linux啟動(dòng)以后,minicom就相當(dāng)于虛擬終端,可通過它來操作目標(biāo)板。遠(yuǎn)程訪問目標(biāo)板minicom的使用退出minicom 同時(shí)按下“Ctrl+A”鍵,緊接著再按下“Q”鍵,在跳出的窗口中,選擇“Yes”。遠(yuǎn)程訪問目標(biāo)板下載程序映象到目標(biāo)板通過串口下載使用三星公司的DNW軟件。設(shè)置波特率115200、端口號(hào)、下載地址0x30200000上電啟動(dòng)開發(fā)板,進(jìn)入BIOS界面選擇2串口下載點(diǎn)擊“serialport”菜單,選擇“Transmit”選項(xiàng)下載程序映象到目標(biāo)板通過usb下載同樣使用三星公司的DNW軟件。設(shè)置波特率115200、端口號(hào)、下載地址0x30200000上電啟動(dòng)開發(fā)板,進(jìn)入BIOS界面接上USBDEVICE的連接線,選擇“0”,選擇USB下載,注意用USB下載要先在PC端裝好驅(qū)動(dòng)程序,保證USB連接好。有時(shí)PC端出現(xiàn)發(fā)現(xiàn)無法識(shí)別的USB設(shè)時(shí),可在BIOS中輸入ESC取消下載,等幾秒鐘再輸入“0”啟動(dòng)USB下載。出現(xiàn)“NowUSBisconnected”說明USB正確枚舉。點(diǎn)擊“USBPort””Transmit”選項(xiàng)。下載程序映象到目標(biāo)板通過掛載NFS方式下載NFS服務(wù)就是將宿主機(jī)的一個(gè)目錄通過網(wǎng)絡(luò)可以被掛載到其他計(jì)算機(jī)上,并且作為其他計(jì)算機(jī)的一個(gè)目錄。在嵌入式開發(fā)中,通過NFS可以很方便的將修改的文件通過NFS傳輸?shù)侥繕?biāo)板上。不用反復(fù)燒寫鏡像文件。通過ifconfig命令修改IP下載程序映象到目標(biāo)板通過掛載NFS方式下載NFS的使用分服務(wù)器端和客戶端服務(wù)器端提供要共享的文件,客戶端通過掛載“mount”實(shí)現(xiàn)對(duì)共享文件的訪問操作。

NFS服務(wù)器端通過讀取配置文件/etc/exports決定所共享的文件目錄。在超級(jí)終端或者minicom下通過NFS掛載宿主機(jī)目錄卸載NFS文件系統(tǒng)

umount/tmp/test

下載程序映象到目標(biāo)板通過掛載NFS方式下載重啟NFS服務(wù):servicenfsrestart通過showmount命令來查看開放的目錄。showmount–elocalhost

進(jìn)行網(wǎng)絡(luò)設(shè)置,將eth0的網(wǎng)絡(luò)地址指定為掩碼網(wǎng)關(guān)不需要。設(shè)置完之后要重啟網(wǎng)絡(luò)。 Serviecnetworkrestart關(guān)閉防火墻,選擇系統(tǒng)設(shè)置->安全級(jí)別,將安全級(jí)別改為“無防火墻”。去掉iptables服務(wù):選擇系統(tǒng)設(shè)置->服務(wù)器設(shè)置->服務(wù),在彈出的界面上將optables前的“√”去掉。將主機(jī)上的目錄掛載到另一個(gè)目錄下,測(cè)試NFS是否設(shè)置成功。下載程序映象到目標(biāo)板通過掛載NFS方式下載配置共享文件的語法:每一行由輸出路徑,客戶名列表以及每個(gè)客戶名后緊跟的訪問選項(xiàng)構(gòu)成:[共享的目錄][主機(jī)名或IP(參數(shù),參數(shù))][共享的目錄][IP1(參數(shù)1,參數(shù)2)][IP2(參數(shù)3,參數(shù)4)]#vi/etc/exports/home/nfs:是宿主機(jī)上共享的文件夾;例如是/usr/local/rw:開發(fā)板(客戶端)可以讀寫訪問共享的文件夾;sync:所有數(shù)據(jù)在請(qǐng)求時(shí)寫入共享;no_root_squash:root用戶具有根目錄的完全管理訪問權(quán)限/home/nfs這個(gè)目錄mount到開發(fā)系統(tǒng)下下載程序映象到目標(biāo)板mount文件系統(tǒng)掛載命令Linux系統(tǒng)在使用光盤、軟盤或U盤時(shí),必須先執(zhí)行掛載(mount)命令。掛載命令會(huì)將這些存儲(chǔ)介質(zhì)指定成系統(tǒng)中的某個(gè)目錄,以后直接訪問相應(yīng)目錄即可讀寫存儲(chǔ)介質(zhì)上的數(shù)據(jù)。可以掛載Linux分區(qū)、Windows分區(qū)、U盤、光盤、映像文件、網(wǎng)絡(luò)文件系統(tǒng)、綁定umount卸載文件系統(tǒng)umount[]umount[mountpoint]下載程序映象到目標(biāo)板ifconfig網(wǎng)絡(luò)接口設(shè)置命令查看網(wǎng)卡的IP設(shè)置ifconfig啟用某網(wǎng)卡ifconfig[netif]up禁用用某網(wǎng)卡ifconfig[netif]down設(shè)置網(wǎng)卡IP地址ifconfig[netif][address]route路由配置命令可用于設(shè)置網(wǎng)關(guān)routeadddefaultgw[gatewayaddress]routedeldefaultgw[gatewayaddress]/etc/resolve.conf此文件用于配置DNS交叉調(diào)試器嵌入式軟件開發(fā)過程中的交叉調(diào)試與本地軟件開發(fā)過程中的調(diào)試方式有所差別。本地軟件開發(fā)調(diào)試器與被調(diào)試的程序往往運(yùn)行在同一臺(tái)計(jì)算機(jī)上。調(diào)試器是一個(gè)單獨(dú)運(yùn)行著的進(jìn)程,它通過操作系統(tǒng)提供的調(diào)試接口來控制被調(diào)試的進(jìn)程。嵌入式軟件開發(fā)調(diào)試時(shí)采用的是在宿主機(jī)和目標(biāo)機(jī)之間進(jìn)行的交叉調(diào)試。調(diào)試器運(yùn)行在宿主機(jī),但被調(diào)試的進(jìn)程卻是運(yùn)行在目標(biāo)板。調(diào)試器和被調(diào)試進(jìn)程通過串口或者網(wǎng)絡(luò)進(jìn)行通信,調(diào)試器可以控制、訪問被調(diào)試進(jìn)程,讀取被調(diào)試進(jìn)程的當(dāng)前狀態(tài),并能夠改變被調(diào)試進(jìn)程的運(yùn)行狀態(tài)。

交叉調(diào)試器交叉調(diào)試器的結(jié)構(gòu)交叉調(diào)試器Gdb調(diào)試器

溫馨提示

  • 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. 人人文庫(kù)網(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)論