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

大型嵌入式軟件的自動化交叉編譯*

2012-06-25 02:46:08安峰
單片機與嵌入式系統應用 2012年7期
關鍵詞:嵌入式用戶系統

安峰

(蘇州工業園區服務外包職業學院 信息技術系,蘇州 215123)

安峰(工程師),主要研究領域為嵌入式圖像處理。

引 言

在嵌入式Linux軟件的開發當中,交叉編譯基本是不可或缺的一步。如果整個系統規模較小的話,例如一些不需要其他庫或者很少依賴包的系統,我們可以采取人工的辦法:下載源代碼、解壓縮、設置參數、交叉編譯然后下載運行。但是隨著系統規模的不斷擴大,依賴包的不斷增長,人工交叉編譯所需的工作量隨之增長,同時需要富有經驗的工程師進行操作,難以實現目前市場所要求的快速開發。

例如筆者對一款Linux下的媒體管理軟件mythtv進行交叉編譯的時候就遇到了這個問題,整個應用軟件的壓縮包達到幾十兆,同時還依賴于其他幾十個庫,而每個庫又有各自的依賴,如果按照傳統的交叉編譯方式進行的話無疑是個災難。幸運的是,mythtv被集成在開源框架系統Openbricks當中,這使得整個系統的交叉編譯、定制、開發和發布變得簡單起來。

1 Openbricks框架系統介紹

Openbricks是一個企業級的框架系統,內部集成了Bootloader,kernel,Systemd,X11和大量的工業標準(OpenGL ES,OpenVG,OpenMAX……),應用框架(Qt,GTK,EFL,SDL),多款大型的應用軟件(均是開源媒體管理、播放軟件)以及一系列的shell腳本。這些腳本智能化地管理著整個框架系統,可以根據用戶的配置,自動化生成目標系統,智能地實現所有的庫依賴、源代碼下載、配置、編譯以及目標系統生成的功能。

Openbricks是一個開源項目,其源代碼目前由版本控制工具Mercurial來管理。在ubuntu環境下,我們可以通過命令行的方式(或者通過git的方式)來獲取到源代碼:hg clone http://hg.Openbricks.org/Openbricks

如圖1所示,源代碼目錄下主要有sources、packages、scripts和build等目錄。其中,scripts目錄下存放控制腳本,以控制整個系統的運作;sources目錄下存放有每個包的源代碼(壓縮包);packages目錄下存放每個軟件包的配置腳本、編譯腳本和安裝腳本;build目錄下存放解壓縮后的軟件包源代碼。

圖1 源代碼獲取及目錄層次

2 配置功能

如上文所述,Openbricks內部集成有大量的開發庫,因此在使用這些庫之前需要進行適當的配置。在Openbricks源代碼的根目錄下輸入make menuconfig,即可啟動Openbricks配置界面。值得一提的是,Openbricks的智能管理功能會根據用戶環境的不同,來提示用戶是否需要自動下載安裝所需的配置工具,如圖2所示。

圖2 自動下載配置工具

在安裝完所需的工具之后,即可出現用戶配置主界面,如圖3所示。我們選擇了框架中眾多軟件中的mythtv,以及目標平臺的cpu、architecture和平臺等,如果需要進一步定制軟件,可以在packets、libs等目錄下進行進一步的修改。在保存配置文件之后輸入make命令即可進行整個系統的編譯與生成,如果一切順利的話,將會在binary目錄下生成目標系統,而mythtv所依賴的Qt、X11、python和perl等眾多庫則被自動下載并且編譯、安裝。默認情況下,目標系統是以文件系統的形式存在,同時,目標系統的Bootloader和kernel也相應包含在內。由于目前硬件平臺的多樣性,因此在多數情況下,kernel還需要進一步的移植才能更好地適應用戶的目標系統。

圖3 用戶配置主界面

3 自動化編譯原理

Openbricks之所以能實現自動化的編譯,在于一系列的shell腳本。在開始編譯之后,腳本開始檢查目錄下的所有包,并按照makefile對時間規則的定義以及用戶在配置界面中所作的選擇對相關包進行編譯。對于每個軟件包,在Openbricks框架當中均有一系列的目錄與之對應。以zlib包為例,在packet目錄下有一個zlib文件夾,其中包含有meta、build和install三個文件,這三個文件分別記錄了zlib包的版本、依賴、配置和編譯參數。在script目錄當中的編譯安裝腳本會判斷相關的軟件包是否已經被順利編譯安裝,如果沒有,則會檢查包的依賴鏈,并進行代碼下載、編譯等操作。Openbricks腳本流程圖如圖4所示。

圖4 Openbricks腳本流程圖

其中,檢測包之間的依賴關系是通過Linux平臺下的pkg工具,源代碼下載通過wget工具,其他一些需要用到的工具會在編譯過程中自動下載,系統主機通常選擇在ubuntu環境下。

4 基于Openbricks的軟件開發與發布

基于Openbricks,可以快速地進行軟件的開發工作。以開發一個基于Qt和OpenGL的3D嵌入式圖形程序為例,在開發程序時,我們只希望關注于應用程序本身,而不是受困于Qt、OpenGL的配置、安裝問題?;贠penbricks,我們將應用程序以packet的形式添加進Openbricks,假設應用程序名叫mythremote,則添加方法如下:

① 運行./scripts/newpacket mythremote命 令,將在packet目錄下生成mythremote目錄;

② 在mythremote目錄下編輯meta文件,修改PKG_VERSION、PKG_URL和依賴包等宏變量;

③ 運行./scripts/unpacked mythremote命令,測試是否會根據PKG_URL來自動下載相應源代碼,并解壓縮到build目錄下的mythremote目錄下;

④ 編輯build文件,增加配置命令;

⑤ 運行./scripts/build mythremote命令,即可進行源代碼編譯,如果在meta文件下有包依賴的話,則會先進行依賴包的下載、編譯與安裝。

基于Openbricks,我們也可以快速地進行軟件的發布工作,因為源代碼是集成在Openbricks之中,因此用戶在以源代碼編譯、安裝我們的程序時不必再去關心Qt或者OpenGL的問題,只需簡單地配置,然后一個指令,即可生成相應的目標系統,實現了嵌入式Linux軟件的快速、簡單的發布。

結 語

本文討論的基于Openbricks的實現方法及應用的主要技術,使得開發者可以專注于應用相關的細節開發,不用再去關注硬件、Bootloader、kernel和應用框架等。工程實踐證明這些方法都是可行的,可以較大地提高開發效率。由于主系統環境參數和用戶經驗的不同等,在首次編譯該系統時會遇到一些問題,而且首次編譯系統的時間也較長(10個小時左右),這也是該產品有待提高之處。

[1]http://www.Openbricks.org/.

[2]http://www.mythtv.org/.

[3]張元銅,向勇,鄭志國.Peta Linux操作系統在 Micro Blaze系統中的移植[J].單片機與嵌入式系統應用,2010,10(7).

[4]韋東山.嵌入式Linux應用開發完全手冊[M].北京:人民郵電出版社,2008.

[5]文全剛.嵌入式Linux操作系統原理與應用[M].北京:北京航空航天大學出版社,2002:155-169.

[6]亞荷毛爾.構建嵌入式Linux系統[M].2版.O'keilly Taiwan公司,譯.北京:中國電力出版社,2011.

猜你喜歡
嵌入式用戶系統
Smartflower POP 一體式光伏系統
工業設計(2022年8期)2022-09-09 07:43:20
WJ-700無人機系統
ZC系列無人機遙感系統
北京測繪(2020年12期)2020-12-29 01:33:58
搭建基于Qt的嵌入式開發平臺
連通與提升系統的最后一塊拼圖 Audiolab 傲立 M-DAC mini
嵌入式軟PLC在電鍍生產流程控制系統中的應用
電鍍與環保(2016年3期)2017-01-20 08:15:32
關注用戶
商用汽車(2016年11期)2016-12-19 01:20:16
關注用戶
商用汽車(2016年6期)2016-06-29 09:18:54
關注用戶
商用汽車(2016年4期)2016-05-09 01:23:12
如何獲取一億海外用戶
創業家(2015年5期)2015-02-27 07:53:25
主站蜘蛛池模板: 在线观看亚洲天堂| 亚洲第一黄色网| 91探花在线观看国产最新| 国产毛片网站| 亚洲第一成年人网站| 国产一级毛片yw| 91精品啪在线观看国产60岁| 午夜精品区| 国产凹凸一区在线观看视频| 亚洲国产理论片在线播放| 国产在线视频导航| 亚洲精品视频网| 精品福利视频网| 亚洲日韩精品无码专区| 精品福利视频网| 狠狠色成人综合首页| swag国产精品| 狼友视频一区二区三区| 欧美精品高清| 美女内射视频WWW网站午夜 | 亚洲综合婷婷激情| 在线看国产精品| 亚洲乱强伦| 国产日韩丝袜一二三区| 在线欧美一区| 久久综合结合久久狠狠狠97色| 精品亚洲欧美中文字幕在线看| 亚洲综合色婷婷中文字幕| 日韩在线成年视频人网站观看| 精品久久久久久中文字幕女| 97在线公开视频| 久草美女视频| 亚洲欧州色色免费AV| 91小视频在线播放| 国产一区二区在线视频观看| 精品福利视频网| 97免费在线观看视频| 又爽又黄又无遮挡网站| 午夜在线不卡| 久综合日韩| 欧美一级特黄aaaaaa在线看片| 久久久久久久久久国产精品| 情侣午夜国产在线一区无码| 凹凸精品免费精品视频| 18禁色诱爆乳网站| 凹凸精品免费精品视频| 亚洲色图综合在线| 有专无码视频| 亚洲国产精品日韩欧美一区| 欧美综合区自拍亚洲综合天堂| 国产91高跟丝袜| 在线观看精品自拍视频| 一级片免费网站| 妇女自拍偷自拍亚洲精品| 无码人中文字幕| 久久久亚洲色| 久久精品91麻豆| 很黄的网站在线观看| 最新国产麻豆aⅴ精品无| 婷婷亚洲天堂| 国产日韩精品欧美一区喷| 亚洲第一视频网| 丁香五月激情图片| 亚洲精品无码成人片在线观看 | 狼友视频一区二区三区| 国内嫩模私拍精品视频| 丰满人妻被猛烈进入无码| 亚洲国产成人麻豆精品| 精品1区2区3区| 国产99视频在线| 亚洲自拍另类| 欧美日韩高清在线| 精品久久高清| 99热这里只有精品国产99| 2021国产精品自产拍在线观看 | 毛片免费观看视频| 亚洲第一国产综合| 亚洲天堂成人在线观看| 午夜三级在线| 欧美激情视频二区| 亚洲最新在线| 无码综合天天久久综合网|