新聞中心
隨著嵌入式系統(tǒng)的快速發(fā)展,嵌入式Linux系統(tǒng)也日益普及。在嵌入式Linux系統(tǒng)的開發(fā)過程中,交叉編譯是必不可少的一步。交叉編譯環(huán)境的搭建和配置是嵌入式Linux系統(tǒng)開發(fā)的前置條件。這篇文章將詳細(xì)介紹。

創(chuàng)新互聯(lián)長期為上1000+客戶提供的網(wǎng)站建設(shè)服務(wù),團(tuán)隊(duì)從業(yè)經(jīng)驗(yàn)10年,關(guān)注不同地域、不同群體,并針對(duì)不同對(duì)象提供差異化的產(chǎn)品和服務(wù);打造開放共贏平臺(tái),與合作伙伴共同營造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為海陵企業(yè)提供專業(yè)的成都網(wǎng)站制作、網(wǎng)站設(shè)計(jì),海陵網(wǎng)站改版等技術(shù)服務(wù)。擁有10年豐富建站經(jīng)驗(yàn)和眾多成功案例,為您定制開發(fā)。
一、環(huán)境要求
在開始搭建嵌入式Linux交叉編譯環(huán)境之前,我們需要準(zhǔn)備一些必要的環(huán)境要求。
1.電腦硬件環(huán)境
我們需要一臺(tái)Windows或Linux操作系統(tǒng)的電腦。當(dāng)然,如果您使用的是MacOS系統(tǒng),則也可以進(jìn)行搭建。但是需要注意的是,本教程中將以Windows為例進(jìn)行講解。
2.嵌入式系統(tǒng)硬件環(huán)境
你還需要一臺(tái)裝有嵌入式Linux系統(tǒng)的硬件設(shè)備,如樹莓派、Jetson Nano等。
3.其他軟件環(huán)境
您還需要安裝一些必要的軟件:
· 虛擬機(jī)軟件(如VirtualBox或VMWare)
· Ubuntu或Debian操作系統(tǒng)的ISO鏡像
· Putty或SSH客戶端工具
· 交叉編譯工具鏈(如arm-none-linux-gnueabi)
二、配置Ubuntu鏡像
1. 下載Ubuntu鏡像
前往Ubuntu官網(wǎng)(https://ubuntu.com/download)下載Ubuntu操作系統(tǒng)的ISO鏡像。
2.安裝虛擬機(jī)軟件
安裝VirtualBox或者VMWare(二選一)。安裝完成后,我們需要?jiǎng)?chuàng)建一個(gè)新的虛擬機(jī)來運(yùn)行Ubuntu操作系統(tǒng)。
3.創(chuàng)建虛擬機(jī)并安裝Ubuntu
打開虛擬機(jī)軟件,新建一個(gè)虛擬機(jī)并選擇Ubuntu ISO鏡像進(jìn)行安裝。安裝完成后,啟動(dòng)虛擬機(jī)并登錄Ubuntu系統(tǒng)。
三、安裝交叉編譯工具鏈
在Ubuntu系統(tǒng)下,我們通過命令行來安裝交叉編譯工具鏈。以下是安裝步驟:
1.更新軟件源
sudo apt-get update
2.安裝交叉編譯工具鏈
sudo apt-get install gcc-arm-linux-gnueabihf
四、配置交叉編譯環(huán)境
安裝交叉編譯工具鏈后,我們需要配置交叉編譯環(huán)境。主要步驟如下:
1.創(chuàng)建工作目錄
mkdir workdir
2.拷貝交叉編譯工具鏈到工作目錄
cp -r /usr/arm-linux-gnueabihf workdir
3.設(shè)置環(huán)境變量
export CROSS_COMPILE=arm-linux-gnueabihf-
export ARCH=arm
5.進(jìn)行編譯
make
以上就是嵌入式Linux交叉編譯環(huán)境的搭建流程,希望對(duì)嵌入式Linux開發(fā)初學(xué)者有所幫助。
成都網(wǎng)站建設(shè)公司-創(chuàng)新互聯(lián)為您提供網(wǎng)站建設(shè)、網(wǎng)站制作、網(wǎng)頁設(shè)計(jì)及定制高端網(wǎng)站建設(shè)服務(wù)!
嵌入式設(shè)備的嵌入式設(shè)備上的Linux系統(tǒng)開發(fā)
Linux 正在嵌入式開發(fā)領(lǐng)域穩(wěn)步發(fā)展。因?yàn)?Linux 使用 GPL(請(qǐng)參閱本文后面的參考資料),所以任何對(duì)將 Linux 定制于 PDA、掌上機(jī)或者可佩帶設(shè)備感興趣的人都可以從因特網(wǎng)免費(fèi)下載其內(nèi)核和應(yīng)用程序,并開始移植或開發(fā)。許多 Linux 改良品種迎合了嵌入式/實(shí)時(shí)市場。它們包括 RTLinux(實(shí)時(shí) Linux)、uclinux(用于非 MMU 設(shè)備的 Linux)、Montavista Linux(用于 ARM、MIPS、PPC 的 Linux 分發(fā)版)、ARM-Linux(ARM 上的 Linux)和其它 Linux 系統(tǒng)
嵌入式 Linux 開發(fā)大致涉及三個(gè)層次:引導(dǎo)裝載程序、Linux 內(nèi)核和圖形用戶界面(或稱 GUI)。引導(dǎo)裝載程序通常是在任何硬件上執(zhí)行的之一段代碼。在象臺(tái)式機(jī)這樣的常規(guī)系統(tǒng)中,通常將引導(dǎo)裝載程序裝入主引導(dǎo)記錄(Master Boot Record,(MBR))中,或者裝入 Linux 駐留的磁盤的之一個(gè)扇區(qū)中。通常,在臺(tái)式機(jī)或其它系統(tǒng)上,BIOS 將控制移交給引導(dǎo)裝載程序。
專用軟件可以直接與遠(yuǎn)程系統(tǒng)上的閃存設(shè)備進(jìn)行交互并將引導(dǎo)裝載程序安裝在閃存的給定位置中。閃存設(shè)備是與存儲(chǔ)設(shè)備功能類似的特殊芯片,而且它們能持久存儲(chǔ)信息 — 即,在重新引導(dǎo)時(shí)不會(huì)擦除其內(nèi)容。
某些種類的嵌入式設(shè)備具有微小的引導(dǎo)代碼— 根據(jù)幾個(gè)字節(jié)的指令 — 它將初始化一些 DRAM 設(shè)置并啟用目標(biāo)上的一個(gè)串行(或者 USB,或者以太網(wǎng))端口與主機(jī)程序通信。然后,主機(jī)程序或裝入程序可以使用這個(gè)連接將引導(dǎo)裝載程序傳送到目標(biāo)上,并將它寫入閃存。設(shè)置工具鏈在主機(jī)機(jī)器上創(chuàng)建一個(gè)用于編譯將在目標(biāo)上運(yùn)行的內(nèi)核和應(yīng)用程序的構(gòu)建環(huán)境 — 這是因?yàn)槟繕?biāo)硬件可能沒有與主機(jī)兼容的二進(jìn)制執(zhí)行級(jí)別。
工具鏈由一套用于編譯、匯編和鏈接內(nèi)核及應(yīng)用程序的組件組成。 這些組件包括:Binutils— 用于操作二進(jìn)制文件的實(shí)用程序。它們包括諸如ar、as、objmp、objcopy這樣的實(shí)用程序。G— GNU C 編譯器。Glibc— 所有用戶應(yīng)用程序都將鏈接到的 C 庫。避免使用任何 C 庫函數(shù)的內(nèi)核和其它應(yīng)用程序可以在沒有該庫的情況下進(jìn)行編譯。構(gòu)建工具鏈建立了一個(gè)交叉編譯器環(huán)境。本地編譯器編譯與本機(jī)同類的處理器的指令。交叉編譯器運(yùn)行在某一種處理器上,卻可以編譯另一種處理器的指令。重頭設(shè)置交叉編譯器工具鏈可不是一項(xiàng)簡單的任務(wù):它包括下載源代碼、修補(bǔ)補(bǔ)丁、配置、編譯、設(shè)置頭文件、安裝以及很多很多的操作。另外,這樣一個(gè)徹底的構(gòu)建過程對(duì)內(nèi)存和硬盤的需求是巨大的。如果沒有足夠的內(nèi)存和硬盤空間,那么在構(gòu)建階段由于相關(guān)性、配置或頭文件設(shè)置等問題會(huì)突然冒出許多問題。
因此能夠從因特網(wǎng)上獲得已預(yù)編譯的二進(jìn)制文件是一件好事(但不太好的一點(diǎn)是,它們大多數(shù)只限于基于 ARM 的系統(tǒng),但遲早會(huì)改變的)。一些比較流行的已預(yù)編譯的工具鏈包括那些來自 Compaq(Familiar Linux )、LART(LART Linux)和 Embedian(基于 Debian 但與它無關(guān))的工具鏈 — 所有這些工具鏈都用于基于 ARM 的平臺(tái)。從用戶的觀點(diǎn)來看,圖形用戶界面(GUI)是系統(tǒng)的一個(gè)最至關(guān)重要的方面:用戶通過 GUI 與系統(tǒng)進(jìn)行交互。所以 GUI 應(yīng)該易于使用并且非??煽?。但它還需要是有內(nèi)存意識(shí)的,以便在內(nèi)存受限的、微型嵌入式設(shè)備上可以無縫執(zhí)行。所以,它應(yīng)該是輕量級(jí)的,并且能夠快速裝入。
另一個(gè)要考慮的重要方面涉及許可證問題。一些 GUI 分發(fā)版具有允許免費(fèi)使用的許可證,甚至在一些商業(yè)產(chǎn)品中也是如此。另一些許可證要求如果想將 GUI 合并入項(xiàng)目中則要支付版稅。
最后,大多數(shù)開發(fā)人員可能會(huì)選擇 XFree86,因?yàn)?XFree86 為他們提供了一個(gè)能使用他們喜歡的工具的熟悉環(huán)境。但是市場上較新的 GUI,象 Century Software 的 (Nano-X)和 Trolltech QT/Embedded,與 X 在嵌入式 Linux 的競技舞臺(tái)中展開了激烈競爭,這主要是因?yàn)樗鼈冋加煤苌俚馁Y源、執(zhí)行的速度很快并且具有定制窗口構(gòu)件的支持。
Linux嵌入式的開發(fā)流程是什么呢, 具體的詳細(xì)點(diǎn)的有嗎?
1.首先,建立交叉編譯環(huán)境:交叉編譯是指:在PC機(jī)上編譯,在目標(biāo)板上執(zhí)行,我PC是linux+ arm-elf-gcc編譯器.扳子是ARM3000.板子上的系統(tǒng)是uclinux,這時(shí)一個(gè)剪裁的很小的實(shí)時(shí)嵌入式linux操作系統(tǒng).推薦使用這個(gè).
2.然后就是你寫程序嘍,不過注意可能有些庫函數(shù)不能用,因?yàn)槟膫€(gè)編譯器稍微受限一點(diǎn),不是所由的c庫函數(shù)都支持,不過一般開發(fā)的都有.
3.連起你的主機(jī)和開發(fā)板,這個(gè)你會(huì)不?要連兩個(gè):串口(用來控制板子)和以太口(用來下載程序),我們板子上這些外設(shè)都有,你要使沒有可以用其他的口代替?zhèn)鞒绦?但串口可是該有的阿!
4.在你主機(jī)上編譯程序生成目標(biāo)代碼,建議用makefile文件來組織你的聯(lián)編關(guān)系.
5.把生成代碼下載到目標(biāo)板執(zhí)行調(diào)試.我是用的主機(jī)的NFS(網(wǎng)落文件)服務(wù),下載到目標(biāo)板的.
6.注:目標(biāo)板是怎么控制的呢?是用串口控制的,可用minicom,設(shè)置好你要控制的串口,也應(yīng)該是你連板子的那個(gè).在命令行里敲上minicom,即進(jìn)入minicom截面,開啟你的板子,應(yīng)該就是板子uclinux系統(tǒng)解壓安裝的畫面了.然后用ifconfig eth0…..
配置ip,這個(gè)ip就是你板子的ip了,注意與主機(jī)一個(gè)網(wǎng)段.然后mount -t nfs 主機(jī)ip:/uclinux /板子上的一個(gè)目錄,就把主機(jī)的 uclinux目錄放到板子上了(這么說其實(shí)不合理,應(yīng)該叫掛載). 然后找到你剛才一經(jīng)編譯好的哪個(gè)目標(biāo)代碼執(zhí)行即可.
下面就由福州卓躍教育具體介紹下嵌入式系統(tǒng)開發(fā)流程。操作系統(tǒng)一般使用Redhat Linux,選擇定制安裝或全部安裝,通過網(wǎng)絡(luò)下載相應(yīng)的GCC交叉編譯器進(jìn)行安裝,或者安裝產(chǎn)品廠家提供的相關(guān)交叉編譯器;
二、配置開發(fā)主機(jī),配置MINICOM,一般的參數(shù)為波特率Baud/s,數(shù)據(jù)位8位,停止位為1,9,無奇偶校驗(yàn),軟件硬件流控設(shè)為無。在Windows下的超級(jí)終端的配置也是這樣。MINICOM軟件的作用是作為調(diào)試嵌入式開發(fā)板的信息輸出的監(jiān)視器和鍵盤輸入的工具。配置網(wǎng)絡(luò)主要是配置NFS網(wǎng)絡(luò)文件系統(tǒng),需要關(guān)閉防火墻,簡化嵌入式網(wǎng)絡(luò)調(diào)試環(huán)境設(shè)置過程。
三、建立引導(dǎo)裝載程序BOOTLOADER,從網(wǎng)絡(luò)上下載一些公開源代碼的BOOTLOADER,如U.BOOT、BLOB、VIVI、LILO、ARM-BOOT、RED-BOOT等,根據(jù)具體芯片進(jìn)行移植修改。有些芯片沒有內(nèi)置引導(dǎo)裝載程序,比如,三星的ARV17、ARM9系列芯片,這樣就需要編寫開發(fā)板上FLASH的燒寫程序,可以在網(wǎng)上下載相應(yīng)的燒寫程序,也有Linux下的公開源代碼的J-FLASH程序。
四、下載已經(jīng)移植好的Linux操作系統(tǒng),如MCLiunx、ARM-Linux、PPC-Linux等。
五、建立根文件系統(tǒng),可以從http://
www.busy.box.net
下載使用BUSYBOX軟件進(jìn)行功能裁減,產(chǎn)生一個(gè)最基本的根文件系統(tǒng),再根據(jù)自己的應(yīng)用需要添加其他的程序。由于默認(rèn)的啟動(dòng)腳本一般都不會(huì)符合應(yīng)用的需要,所以就要修改根文件系統(tǒng)中的啟動(dòng)腳本,它的存放位置位于/etc目錄下,包括:/etc/init.d/rc.S、/etc/profile、/etc/.profile等,自動(dòng)掛裝文件系統(tǒng)的配置文件/etc/fstab,具體情況會(huì)隨系統(tǒng)不同而不同。根文件系統(tǒng)在嵌入式系統(tǒng)中一般設(shè)為只讀,需要使用mkcramfs genromfs等工具產(chǎn)生燒寫映像文件。
六、建立應(yīng)用程序的FLASH磁盤分區(qū),一般使用JFFS2或YAFFS文件系統(tǒng),這需要在內(nèi)核中提供這些文件系統(tǒng)的驅(qū)動(dòng),有的系統(tǒng)使用一個(gè)線性FLASH(NOR型)512KB~32MB,有的系統(tǒng)使用非線性FLASH(NAND型)8MB~512MB,有的兩個(gè)同時(shí)使用,需要根據(jù)應(yīng)用規(guī)劃FLASH的分區(qū)方案。
嵌入式操作系統(tǒng)EOS(EmbeddedOperatingSystem)是一種用途廣泛的系統(tǒng)軟件,過去它主要應(yīng)用于工業(yè)控制和國防系統(tǒng)領(lǐng)域。EOS負(fù)責(zé)嵌人系統(tǒng)的全部軟、硬件資源的分配、調(diào)度工作,控制協(xié)調(diào)并發(fā)活動(dòng);它必須體現(xiàn)其所在系統(tǒng)的特征,能夠通過裝卸某些模塊來達(dá)到系統(tǒng)所要求的功能。目前,已推出一些應(yīng)用比較成功的EOS產(chǎn)品系列。隨著Internet技術(shù)的發(fā)展、信息家電的普及應(yīng)用及EOS的微型化和專業(yè)化,EOS開始從單一的弱功能向高專業(yè)化的強(qiáng)功能方向發(fā)展。嵌人式操作系統(tǒng)在系統(tǒng)實(shí)時(shí)高效性、硬件的相關(guān)依賴性、軟件固態(tài)化以及應(yīng)用的專用性等方面具有較為突出的特點(diǎn)。EOS是相對(duì)于一般操作系統(tǒng)而言的,它除具備了一般操作系統(tǒng)最基本的功能,如任務(wù)調(diào)度、同步機(jī)制、中斷處理、文件功能等外,還有以下特點(diǎn): (1)可裝卸性。開放性、可伸縮性的體系結(jié)構(gòu)。 (2)強(qiáng)實(shí)時(shí)性。EOS實(shí)時(shí)性一般較強(qiáng),可用于各種設(shè)備控制當(dāng)中。 (3)統(tǒng)一的接口。提供各種設(shè)備驅(qū)動(dòng)接日. (4)操作方便、簡單、提供友好的圖形GUI,圖形界面,追求易學(xué)易用. (5)提供強(qiáng)大的網(wǎng)絡(luò)功能,支持TCP門P協(xié)議及其它協(xié)議,提供TCP/UDP/IP/PPP協(xié)議支持及統(tǒng)一的MAC訪問層接口,為各種移動(dòng)計(jì)算設(shè)備預(yù)留接口. (6)強(qiáng)穩(wěn)定性,弱交互性。嵌入式系統(tǒng)一旦開始運(yùn)行就不需要用戶過多的干預(yù),這就要負(fù)責(zé)系統(tǒng)管理的EOS臭有較強(qiáng)的穩(wěn)定性。嵌入式操作系統(tǒng)的用戶接日一般不提供操作命令,它通過系統(tǒng)調(diào)用命令向用戶程序提供服務(wù)。 (7)固化代碼。在嵌入系統(tǒng)中,嵌入式操作系統(tǒng)和應(yīng)用軟件被固化在嵌入式系統(tǒng)計(jì)算機(jī)的ROM中。輔助存儲(chǔ)器在嵌入式系統(tǒng)中很少使用,因此,嵌入式操作系統(tǒng)的文件管理功能應(yīng)該能夠很容易地拆卸,而用各種內(nèi)存文件系統(tǒng). (8)更好的硬件適應(yīng)性,也就是良好的移植性. 國際上用于信息電器的嵌入式操作系統(tǒng)有40種左右?,F(xiàn)在,市場上非常流行的EOS產(chǎn)品,包括3Corn公司下屬子公司的PalmOS,全球占有份額達(dá)50%,MicroS。fi公司的Wind。wsCE不過29%。在美國市場,PalmOS更以80%的占有率遠(yuǎn)超WindowsCE。開放源代碼的Linux很適于做信息家電的開發(fā). 比如:中科紅旗軟件技術(shù)有限公司開發(fā)的紅旗嵌入式Linux和美商網(wǎng)虎公司開發(fā)的基于Xlinux的嵌人式操作系統(tǒng)“夸克"。“夸克”是目前全世界最小的Linux,它有兩個(gè)很突出的特點(diǎn),就是體積小和使用GCS編碼。 常見的嵌入式系統(tǒng)有:Linux、uClinux、WinCE、PalmOS、Symbian、eCos、uCOS-II、VxWorks、pSOS、Nucleus、ThreadX、Rtems、QNX、INTEGRITY、OSE、CExecutive. 嵌入式操作系統(tǒng)的發(fā)展也必將帶動(dòng)新一輪的科技競爭
嵌入式linux交叉編譯環(huán)境搭建的介紹就聊到這里吧,感謝你花時(shí)間閱讀本站內(nèi)容,更多關(guān)于嵌入式linux交叉編譯環(huán)境搭建,如何搭建嵌入式Linux交叉編譯環(huán)境,嵌入式設(shè)備的嵌入式設(shè)備上的Linux系統(tǒng)開發(fā),Linux嵌入式的開發(fā)流程是什么呢, 具體的詳細(xì)點(diǎn)的有嗎?的信息別忘了在本站進(jìn)行查找喔。
創(chuàng)新互聯(lián)(cdcxhl.com)提供穩(wěn)定的云服務(wù)器,香港云服務(wù)器,BGP云服務(wù)器,雙線云服務(wù)器,高防云服務(wù)器,成都云服務(wù)器,服務(wù)器托管。精選鉅惠,歡迎咨詢:028-86922220。
網(wǎng)站題目:如何搭建嵌入式Linux交叉編譯環(huán)境(嵌入式linux交叉編譯環(huán)境搭建)
URL分享:http://m.fisionsoft.com.cn/article/coicoih.html


咨詢
建站咨詢
