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
主站蜘蛛池模板: 亚洲欧美成人| 国产精品一区不卡| 国产欧美日韩资源在线观看| 最新国产精品鲁鲁免费视频| 亚洲第一页在线观看| 在线观看91精品国产剧情免费| 男女男精品视频| 国产精品视频免费网站| 日本午夜精品一本在线观看| 最新亚洲av女人的天堂| 久久精品日日躁夜夜躁欧美| 精品无码日韩国产不卡av| 国产凹凸视频在线观看| 日本伊人色综合网| 国模粉嫩小泬视频在线观看| 无码福利日韩神码福利片| 国产中文一区二区苍井空| 亚洲色欲色欲www网| 久久久精品国产SM调教网站| 亚洲动漫h| 欧美97色| 中文纯内无码H| 国产精品福利导航| 国产91透明丝袜美腿在线| 日韩在线视频网站| 精品亚洲欧美中文字幕在线看| 成人午夜亚洲影视在线观看| 女高中生自慰污污网站| 亚洲精品午夜天堂网页| 天堂在线www网亚洲| 在线观看国产精品一区| 无码精油按摩潮喷在线播放 | www亚洲天堂| 国精品91人妻无码一区二区三区| 欧美在线中文字幕| 性69交片免费看| 九色综合伊人久久富二代| 久久久久久久久18禁秘| 成人日韩视频| 夜夜高潮夜夜爽国产伦精品| 欧美成人精品高清在线下载| 欧美日韩资源| 22sihu国产精品视频影视资讯| 亚洲αv毛片| 久久精品66| 无码区日韩专区免费系列 | 亚洲欧洲日产无码AV| 婷婷六月天激情| 亚洲欧美另类久久久精品播放的| 日韩精品无码不卡无码| 99无码中文字幕视频| 高清欧美性猛交XXXX黑人猛交 | 亚洲无码视频一区二区三区 | 欧美www在线观看| 99久久国产自偷自偷免费一区| 另类欧美日韩| 国产免费黄| 九九热免费在线视频| 久久综合九色综合97网| 亚洲av无码成人专区| 男女男精品视频| 天堂成人在线| 欧美一级特黄aaaaaa在线看片| 无码电影在线观看| 久热这里只有精品6| 亚洲狼网站狼狼鲁亚洲下载| 99视频在线精品免费观看6| 欧美三级日韩三级| 国内丰满少妇猛烈精品播| 久草视频中文| 久久人妻系列无码一区| 国产在线麻豆波多野结衣| 亚洲资源站av无码网址| 国产精品自拍露脸视频| 国产精品永久免费嫩草研究院| a天堂视频| 在线亚洲精品福利网址导航| 在线欧美国产| 久久久噜噜噜久久中文字幕色伊伊| 免费国产黄线在线观看| 极品国产在线| 99热在线只有精品|