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