999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于Cygwin的編譯工具鏈的使用介紹

2018-05-09 01:30:10白明明
科學與財富 2018年8期
關鍵詞:嵌入式系統

白明明

摘 要:隨著嵌入式技術蓬勃發展,對嵌入式軟件技術提出新挑戰。 嵌入式軟件開發常用交叉編譯方式,以Linux為主機系統,GNU工具鏈為交叉編譯系統,為嵌入式系統生成可執行程序為最主要的方案。本文闡述基于GNU工具鏈的嵌入式開發實踐,圍繞如何在Window上用Cygwin模擬器、GNU及其它開源工具,如Android的NDK進行嵌入式開發,探討其中一些關鍵的實現技術和實踐細節。關鍵詞:Cygwin、GNU、交叉編譯、NDK、編譯工具鏈一、引言隨著對Linux的深入研究,針對某類應用開發一個嵌入式系統漸漸成為熱門。這需要一套開發工具,而商業開發工具都非常昂貴。GNU自由軟件給開發者帶來了福音,它是免費的,遵循GPL協議。引導程序、嵌入式操作系統內核、運行庫乃至應用程序都可用它來開發。本文提出了一種在Window上基于Cygwin模擬器用GNU 工具開發軟件的方式。二、交叉編譯概述編譯器常分類為: “本地”編譯器:生成用于它本身處計算機和操作系統相同的環境下運行的目標代碼。 交叉編譯器:生成用于其他平臺上運行的目標代碼,對新硬件平臺非常有用。 三、開發環境的建立GNU工具基于Linux環境。在Windows下使用它方式:用終端軟件登陸Linux服務器;安裝虛擬機和Linux系統; 安裝Linux模擬器;可單機運行,占用資源少,但配置麻煩。3.1 安裝CygwinCygwin 是一套可運行在Windows上的Linux 模擬器。它類似Windows cmd 的Shell環境界面,可使用大部分Linux 軟件和功能。用它可以方便地在Windows構建出Linux 平臺的庫或應用程序。它包含一套在Windows 系統下實現POSIX 系統調用的API,還有一套GUN 開發工具,可以方便地在Windows 下進行跨平臺開發。先下載安裝程序并運行,下一步“選擇安裝類型”,選擇網絡安裝;下一步“選擇安裝目錄”。下一步“選擇本地包目錄”設置下載的安裝包放置路徑。下一步 “網絡連接類型”。下一步“選擇下載網站”。下一步“選擇下載安裝包”加載安裝包列表;安裝測試如下:運行cygwin,在彈出的命令行窗口輸入:cygcheck -c cygwin命令。cygcheck –c檢查安裝cygwin已經安裝的包的版本和狀態然后依次輸入gcc –version, make –version等進行測試。3.2 配置腳本運行Cygwin會先執行.bash_profile。若要自定義的工具。例如,則在文件“source ~/.git-completion.bash”前加“PATH=$PATH:/cygdrive/d/ android-ndk-r11c/build”。表示把D盤的“android-ndk-r11c/build”路徑添加到搜索路徑中。下面是自動化編譯腳本的關鍵內容,它用于設置編譯工具鏈,主目錄,啟動模擬器:set PATH=/cygdrive/d/build-arm-tools/arm-2012.09/bin;%PATH%.. …if %a% equ y G:\cygwin\bin\mintty.exe -i /Cygwin-Terminal.ico /bin/env _T=%V /bin/bash --login -i -c "source xxx.sh"" G:\cygwin\bin\mintty.exe "為mintty所在位置。-i用于指定窗口左上角圖標。/bin/env _T=%V用于設置在啟動mintty后的shell里面環境變量_T的值,_T為路徑參數,其中%V表示windows傳入的路徑參數(可在.bash_profile使用_T)。/bin/bash -l (-l相當于--login)表示啟動登錄shell。--login -i -c "source xxx.sh"登陸bash執行shell腳本xxx.sh。四、編譯工具鏈Linux嵌入式系統的交叉編譯工具鏈,可從芯片提供商處獲取;或者從網上下載;或者自己編譯生成。后者需要各種源代碼,至少需要binutils、gcc、linux、C運行時庫(glibc、newlib、bionic等)。4.1 GCC嵌入式系統用交叉編譯在本機編譯目標系統的可執行軟件,在這個過程中需要使用交叉編譯工具鏈,包括交叉編譯的編譯器、連接器、目標庫等。如果在ARM目標板上運行Linux系統,因為Linux內核代碼使用GCC編譯器,為此GNU提供了GCC編譯器針對ARM目標平臺的支持。由于GCC開源的特點,用戶可以手動編譯生成符合自己需要的ARM GCC編譯器等。如Linux平臺ARM的交叉編譯器是arm-linux-gcc。編譯交叉編譯工具鏈要用到庫和源代碼,如Linux內核代碼、glibc庫、工具程序、內核線程包、編譯器。還可通過編譯工具鏈的腳本crosstool建立交叉編譯環境,通過指定不同的參數,crosstool腳本建立指定版本的GCC編譯器和glibc程序庫,還可以直接下載已經編譯好的工具鏈,由于linux內核與GCC編譯器存在依賴關系,選擇目標平臺Linux內核版本后,可以參考內核版本說明對GCC編譯器的最低要求選擇GCC編譯器版本。步驟如下:1.建立Linux內核頭文件:交叉編譯器需要通過內核頭文件獲取目標平臺的系統函數調用信息,需要通過對其腳本配置生成目標平臺的頭文件。2.編譯安裝binutils:它是交叉編譯工具鏈中的工具包,包括連接器、匯編器和用于目標文件和檔案的工具,針對二進制代碼的維護。3.編譯安裝GCC的C編譯器:建立arm-linux-gcc交叉編譯器,用于編譯內核、bootloader等,并建立glibc庫。4.編譯安裝glibc庫:GNU glibc庫是Linux系統程序的組成部分,用戶開發的目標平臺應用程序,需要glibc庫的支持。5.編譯安裝GCC的C、C++編譯器:在建立的glibc庫基礎上,編譯gcc支持C和C++語言程序的編譯。4.2 NDKAndroid NDK(Native Development Kit)原生開發工具集,允許Android應用開發人員把他們的C和/或C++源文件所編譯生成的原生機器代碼嵌入到他們的應用程序包中。Android VM支持通過JNI調用原生代碼,因此在Android平臺上可以支持“Java+ C and/or C++”的編程方式。NDK是Android平臺支持C開發的主要工具。4.3其它工具鏈Linaro是 2010年臺北國際計算機展期間ARM、TI與IBM等廠家合資成立的非贏利Linux基礎架構軟件研發商。目標旨在改進與優化在ARM-based架構上運行的開放原始碼軟件及開發工具,透過這間合資公司推出開放原始碼的底層軟件工具,解決ARM生態系中,重復投資造成的資源浪費。五、結束語本文介紹介紹了通過Cygwin使用Linaro和CodeSourcery,GNU GCC構建其它Linux嵌入式系統的應用程序。實踐證明,使用這些工具開發嵌入式操作系統投入小,而軟件質量可以與商業嵌入式編譯工具軟件相媲美。

猜你喜歡
嵌入式系統
Smartflower POP 一體式光伏系統
工業設計(2022年8期)2022-09-09 07:43:20
WJ-700無人機系統
ZC系列無人機遙感系統
北京測繪(2020年12期)2020-12-29 01:33:58
基于PowerPC+FPGA顯示系統
半沸制皂系統(下)
TS系列紅外傳感器在嵌入式控制系統中的應用
電子制作(2019年7期)2019-04-25 13:17:14
嵌入式系統通信技術的應用
電子制作(2018年18期)2018-11-14 01:48:16
搭建基于Qt的嵌入式開發平臺
連通與提升系統的最后一塊拼圖 Audiolab 傲立 M-DAC mini
嵌入式軟PLC在電鍍生產流程控制系統中的應用
電鍍與環保(2016年3期)2017-01-20 08:15:32
主站蜘蛛池模板: 亚洲无码四虎黄色网站| 波多野结衣一二三| 亚洲一区无码在线| 国产丰满成熟女性性满足视频| 欧美日韩激情在线| 狠狠色综合网| 69av在线| 91国内在线视频| 美女毛片在线| 亚洲中文精品人人永久免费| 中文字幕亚洲电影| 久久综合丝袜长腿丝袜| 丁香五月亚洲综合在线| 日韩专区欧美| 麻豆国产在线不卡一区二区| 国产免费福利网站| 精品久久综合1区2区3区激情| 国产极品美女在线观看| 国产精品任我爽爆在线播放6080 | 国产成人a毛片在线| 一本大道AV人久久综合| 亚洲黄网在线| 国产成人精品亚洲77美色| 成人福利免费在线观看| 自拍偷拍欧美日韩| 一区二区三区精品视频在线观看| 久青草免费在线视频| 久久久久久久97| 欧美区一区| 久久综合婷婷| 国产成人免费观看在线视频| www.91中文字幕| 国产99视频精品免费观看9e| 国产精品女同一区三区五区| 亚洲女人在线| 午夜在线不卡| 亚洲免费福利视频| 色综合五月婷婷| 久久美女精品| 9cao视频精品| 国产精品一老牛影视频| 国产视频一二三区| 国产精品亚欧美一区二区三区| 2020精品极品国产色在线观看| 99视频在线免费观看| 国产精品页| 91九色最新地址| 欧美日韩资源| 72种姿势欧美久久久久大黄蕉| AV无码无在线观看免费| 亚洲人成高清| 伊人无码视屏| 国产成人免费视频精品一区二区| 三区在线视频| 国产免费a级片| 激情乱人伦| 久久久国产精品免费视频| 中文字幕有乳无码| 日韩在线1| 国产久草视频| 国产人人射| 多人乱p欧美在线观看| 国产资源免费观看| 国产精品私拍在线爆乳| 在线视频精品一区| 国产精品.com| 黄色成年视频| 无码国内精品人妻少妇蜜桃视频| 欧美日本激情| 97无码免费人妻超级碰碰碰| 五月丁香伊人啪啪手机免费观看| 免费jjzz在在线播放国产| 亚洲熟妇AV日韩熟妇在线| 波多野一区| 亚洲天堂高清| h网站在线播放| 国产精品视频观看裸模| 欧美在线一二区| 欧美国产在线一区| 美女免费黄网站| 亚洲色图欧美激情| 国产视频入口|