信息技術(shù)的發(fā)展,數(shù)字化產(chǎn)品的普及,導(dǎo)致了對嵌入式開發(fā)的巨大需求。以Linux為宿主機系統(tǒng),搭配一個交叉編譯環(huán)境,為嵌入式設(shè)備生成可執(zhí)行程序己成為現(xiàn)在日益流行的編譯嵌入式軟件的解決方案。而開放源代碼的GNUT具鏈?zhǔn)且惶组_源的開發(fā)環(huán)境,是嵌入式軟件開發(fā)中理想的交叉編譯器。但現(xiàn)有GNUI具鏈支持的平臺并不能滿足層出不窮的嵌入式產(chǎn)品的開發(fā)需要,仍有許多平臺得不到支持,例如我們進行的minix向ARM-MINIX平臺的移植。 本文以在linux環(huán)境下構(gòu)建MINIX嵌入式系統(tǒng)的交叉編譯工具鏈為背景,首先介紹了交叉編譯系統(tǒng)的基本組成和結(jié)構(gòu),以及利用GCC構(gòu)建交叉編譯環(huán)境的優(yōu)越性。然后對目標(biāo)平臺作了介紹。分析了GCC編譯器,說明了GCC的設(shè)計思想,系統(tǒng)結(jié)構(gòu),介紹了GNU Binutils的功能,使用方法;接著分析了GNU工具鏈中的GAS和GLD的實現(xiàn)機制及源代碼結(jié)構(gòu),由于BFD是GNUBinutils的基礎(chǔ),GAS和GLD都是使用BFD庫來操作目標(biāo)文件,因此在這一部分本文對BFD庫的工作機制,數(shù)據(jù)結(jié)構(gòu)也作了重點分析。緊接著說明了GCC交叉編譯系統(tǒng)的移植思路和方法,實現(xiàn)難點,以及一些相關(guān)技術(shù)細節(jié),這涉及到了若干重要的C源文件,Makefile,配置文件的修改,重點給出了BFD庫,GAS和GLD的分析及其重定向(通常GCC生成的目標(biāo)程序是針對GNU/Linux系統(tǒng)的)的實現(xiàn);然后本文給出了在GNU/Linux宿主機上構(gòu)建針對ARM-MINIX的參數(shù)設(shè)置及過程:最后對本文所做的工作進行了總結(jié)。
標(biāo)簽:
ARM-MINIX
GNU
嵌入式系統(tǒng)
上傳時間:
2013-05-31
上傳用戶:wangzhen1990