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
主站蜘蛛池模板: 国产视频a| 亚洲精品无码AⅤ片青青在线观看| 九色在线视频导航91| 老色鬼欧美精品| 国产精品蜜臀| 国产真实自在自线免费精品| 国产鲁鲁视频在线观看| 国产免费精彩视频| 亚洲精品无码抽插日韩| 超清无码熟妇人妻AV在线绿巨人| 小13箩利洗澡无码视频免费网站| 国产成人高清在线精品| 国产又黄又硬又粗| 夜精品a一区二区三区| 国产偷国产偷在线高清| 久久不卡精品| 成人亚洲视频| 国产精品冒白浆免费视频| 国产手机在线小视频免费观看| 91人人妻人人做人人爽男同| 亚洲精品无码AV电影在线播放| 日韩专区第一页| 国产精品免费露脸视频| 国产欧美日韩另类精彩视频| 欧美亚洲欧美区| 午夜日b视频| 亚洲天堂高清| 成人免费视频一区| 亚洲精品福利网站| www.av男人.com| 久久久久人妻一区精品色奶水 | 女人一级毛片| 影音先锋丝袜制服| 无码粉嫩虎白一线天在线观看| 午夜无码一区二区三区在线app| 中文字幕资源站| 日韩在线中文| 黄色不卡视频| 国产精品99r8在线观看| 伊人天堂网| 国产成人精品在线1区| 国产精品网曝门免费视频| 91免费国产在线观看尤物| 久久96热在精品国产高清| 国产精品毛片一区视频播| 2024av在线无码中文最新| yjizz视频最新网站在线| 亚洲天堂成人在线观看| 欧美成人午夜影院| 在线观看av永久| 国产成人你懂的在线观看| 好久久免费视频高清| 97影院午夜在线观看视频| 欧美成人综合视频| 久久久久人妻一区精品| 啪啪啪亚洲无码| 亚洲天堂免费观看| 国产成人福利在线| 精品国产美女福到在线不卡f| 婷婷色丁香综合激情| 成人午夜在线播放| 国产福利小视频高清在线观看| 国产网站黄| 成人免费黄色小视频| 欧美性久久久久| 国产精品久久久久久久久kt| 亚洲男女天堂| 美女内射视频WWW网站午夜| 亚洲视频一区在线| 国产乱人免费视频| 国产xx在线观看| 国产肉感大码AV无码| 国产在线一二三区| 一区二区三区在线不卡免费| 久草热视频在线| 超碰91免费人妻| 一区二区三区成人| 欧美97欧美综合色伦图| 动漫精品啪啪一区二区三区| 午夜无码一区二区三区在线app| 激情视频综合网| 国产第一页屁屁影院|