<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于ARM LINUX的嵌入式GUI的研究和移植

          基于ARM LINUX的嵌入式GUI的研究和移植

          作者: 時(shí)間:2012-04-23 來(lái)源:網(wǎng)絡(luò) 收藏

          摘要:隨著系統(tǒng)的發(fā)展,用戶對(duì)系統(tǒng)的要求越來(lái)越高,因此用于實(shí)現(xiàn)與用戶交流功能的成為嵌入式中的一個(gè)重點(diǎn)。該文首先介紹了什么是嵌入式系統(tǒng)和嵌入式系統(tǒng)中的,并闡述了開發(fā)嵌入式Linux平臺(tái)的系統(tǒng)的必要性。然后詳細(xì)的介紹了三種常見的嵌入式GUI系統(tǒng)(Microwindows、MiniGUI和QT)的設(shè)計(jì)結(jié)構(gòu)和使用上的優(yōu)缺點(diǎn)等,并列表進(jìn)行了比較。最后,描述了每個(gè)系統(tǒng)Linux平臺(tái)的,包括編譯環(huán)境的建立、編譯選項(xiàng)的配置和修改以及運(yùn)行時(shí)參數(shù)的設(shè)置等等。

          本文引用地址:http://www.ex-cimer.com/article/171575.htm

          引言

          什么是嵌入式系統(tǒng)

          嵌入式系統(tǒng)一般指以嵌入式微處理器為核心,有別于PC系統(tǒng),有計(jì)算機(jī)的部分功能但又不稱之為計(jì)算機(jī)的設(shè)備或器材。它主要是以應(yīng)用為目的,系統(tǒng)軟硬件于一體,通常要求具有代碼小、響應(yīng)速度快、可靠性高、低功耗、集成度高等特點(diǎn)。嵌入式系統(tǒng)遍布于各個(gè)行業(yè)以及人們的日常生活當(dāng)中,比如掌上PDA、移動(dòng)計(jì)算設(shè)備、電視機(jī)頂盒、手機(jī)、汽車、數(shù)字相機(jī)、家庭自動(dòng)化系統(tǒng)、安全系統(tǒng)、自動(dòng)售貨機(jī)、工業(yè)自動(dòng)化儀表與醫(yī)療儀器等。

          什么是嵌入式系統(tǒng)中的GUI

          隨著后PC時(shí)代的到來(lái),嵌入式系統(tǒng)的性能有了大幅度的提高,應(yīng)用范圍也越來(lái)越廣,當(dāng)初的一些簡(jiǎn)單的人機(jī)交互接口已經(jīng)無(wú)法滿足人們的要求。而與此同時(shí),在臺(tái)式PC機(jī)上圖形交互界面早已普及并成熟,于是在嵌入式系統(tǒng)中也逐漸出現(xiàn)了圖形用戶界面(GraphicUserInterface,GUI),特別是在一些消費(fèi)類產(chǎn)品中。嵌入式系統(tǒng)中的GUI就是在嵌入式系統(tǒng)中為特定的硬件設(shè)備或環(huán)境而設(shè)計(jì)的圖形用戶界面系統(tǒng)。由于受到當(dāng)前嵌入式系統(tǒng)本身特點(diǎn)的影響,并受其發(fā)展限制,所以嵌入式系統(tǒng)中的GUI應(yīng)該有如下特點(diǎn):

          占用的存儲(chǔ)空間以及運(yùn)行時(shí)占用資源少;運(yùn)行速度以及響應(yīng)速度快;可靠性高;便于和定制。

          Linux有開放的源碼、高效穩(wěn)定的內(nèi)核、良好的開發(fā)環(huán)境以及支持多種硬件平臺(tái)等特點(diǎn),而且由于Linux的可配置性和可模塊化,一個(gè)Linux內(nèi)核經(jīng)過(guò)配置和裁減可以只占用幾百K左右的存儲(chǔ)空間,使其在嵌入式系統(tǒng)中也得到廣泛應(yīng)用。然而,在嵌入式系統(tǒng)中有嚴(yán)格的資源限制,臺(tái)式機(jī)Linux平臺(tái)下成熟的GUI無(wú)法直接到嵌入式設(shè)備上。因此,嵌入式系統(tǒng)中Linux的GUI愈發(fā)成為開發(fā)基于Linux的嵌入式系統(tǒng)所必須面對(duì)的問(wèn)題。目前,隨著嵌入式行業(yè)分工的細(xì)化,出現(xiàn)了專門的公司致力開發(fā)Linux下的GUI并給其它公司提供授權(quán),從而縮短了嵌入式系統(tǒng)的開發(fā)周期。本文就旨在于對(duì)這樣的幾種嵌入式GUI進(jìn)行,列出表1進(jìn)行比較,并介紹這幾種GUI在基于Linux上的移植。

          幾種比較成熟的嵌入式GUI的

          Microwindows

          Microwindows是由美國(guó)CenturySoftware公司開發(fā)的開放源碼的嵌入式GUI項(xiàng)目。它不需要其他圖形系統(tǒng)的支持,可以充分利用Linux提供的FrAMEbuffer機(jī)制來(lái)進(jìn)行圖形顯示。同時(shí)在底層提供了對(duì)多種芯片的支持,并基本上用C語(yǔ)言實(shí)現(xiàn),因此移植性很強(qiáng)。國(guó)內(nèi)也有人參與了這個(gè)項(xiàng)目的開發(fā),并編寫了GB2312等字符集的支持。

          Microwindows是基于分層式設(shè)計(jì)的,它允許不同的層可以被重新設(shè)計(jì)以滿足系統(tǒng)實(shí)現(xiàn)的需要,目前總共分為三層。最底層是屏幕、鼠標(biāo)或觸摸屏和鍵盤的驅(qū)動(dòng)程序,用于實(shí)現(xiàn)系統(tǒng)的顯示功能以及滿足用戶特有的輸入需求。中間層實(shí)現(xiàn)了一個(gè)可移植的圖形引擎,以提供對(duì)畫線、填充、剪切和著色的支持。在最上層,則提供了多種的API給應(yīng)用程序設(shè)計(jì)者。Microwindows支持兩種API:ECMAAPIW(類Win32API)和Nano-XAPIs。這些API對(duì)Win32和XWindow系統(tǒng)有很好的兼容性,使程序可以很容易地從其它系統(tǒng)上移植過(guò)來(lái)。其中比較完備的是Nano-XAPI。Nano-X設(shè)計(jì)成是一個(gè)客戶端/服務(wù)器的環(huán)境,在此模式下應(yīng)用程序與一個(gè)客戶端的庫(kù)相連,而這個(gè)庫(kù)則通過(guò)一個(gè)UNIXsocket與Nano-X服務(wù)器相連。每個(gè)應(yīng)用程序都通過(guò)UNIXsocket來(lái)傳遞各種參數(shù),并由服務(wù)端來(lái)完成客戶端的各種請(qǐng)求。當(dāng)為了滿足運(yùn)行速度以及調(diào)試的需求時(shí),還可以通過(guò)共享的內(nèi)存空間來(lái)完成傳播數(shù)據(jù)。

          由于Microwindows為了與XWindow的兼容,它采用了傳統(tǒng)的基于UNIXsocket的客戶端/服務(wù)器結(jié)構(gòu)。此是,客戶端的畫圖、窗口建立等操作都是通過(guò)套接字與服務(wù)器通信。在這種情況下,系統(tǒng)就變得非常依賴于UNIXsocket,而UNIXsocket的傳遞都需要通過(guò)內(nèi)核,這樣在一些對(duì)實(shí)時(shí)性要求比較高的系統(tǒng)里就不太有利。而且Microwindows基本上用C語(yǔ)言實(shí)現(xiàn)的,雖然增強(qiáng)了可移植性,但也同樣導(dǎo)致了系統(tǒng)的運(yùn)行效率不高。同時(shí)Microwindows的開發(fā)工具FLNX也還不夠成熟,有待進(jìn)一步提高。

          MiniGUI

          MiniGUI是我國(guó)國(guó)內(nèi)自主開發(fā)、比較成熟的一個(gè)圖形用戶界面系統(tǒng),面向基于Linux的實(shí)時(shí)嵌入式系統(tǒng),使用現(xiàn)有成熟的圖形引擎(SV2GALib/LibGGI),采用類似WinCE的線程機(jī)制(目前MiniGUILite版本改用微客戶端/服務(wù)器模式來(lái)提供對(duì)多進(jìn)程的支持),集成了多字體和多字符集,支持硬件加速能力,充分使用顯示內(nèi)存。

          從整體來(lái)看,MiniGUI也是屬于分層結(jié)構(gòu)設(shè)計(jì)(見圖1)。在最底層,GAL和IAL提供了Linux控制臺(tái)和底層圖形接口的支持以及輸入設(shè)備比如鼠標(biāo)、鍵盤等的驅(qū)動(dòng),PThread則是提供了內(nèi)核級(jí)線程支持的函數(shù)庫(kù);中間層MiniGUIKernel則包括了窗口系統(tǒng)的各個(gè)模塊,MiniGUI本身是運(yùn)行在多線程模式下,它的各個(gè)模塊都是以單獨(dú)的線程運(yùn)行,同時(shí)它也利用線程來(lái)實(shí)現(xiàn)多窗口;最上層,則是提供給各種應(yīng)用程序使用的API函數(shù)。MiniGUI中利用線程之間的同步操作,實(shí)現(xiàn)了客戶線程和服務(wù)線程之間的微客戶端/服務(wù)器結(jié)構(gòu),因?yàn)樗目蛻艉头?wù)器是同一進(jìn)程的兩個(gè)不同線程。它的核心實(shí)現(xiàn)主要體現(xiàn)在消息隊(duì)列數(shù)據(jù)結(jié)構(gòu)的使用上。

          多線程有其一定的好處,但弱點(diǎn)則在于不同的線程共享了同一個(gè)地址空間,因此,客戶線程可能會(huì)破壞系統(tǒng)服務(wù)器線程的數(shù)據(jù),導(dǎo)致系統(tǒng)健壯性不夠健全。雖然目前的MiniGUILite版本拋棄LinuxThread庫(kù)而改用微客戶端/服務(wù)器模式提供對(duì)多進(jìn)程的支持,但是仍然存在著對(duì)多進(jìn)程支持弱、圖形功能不完善、窗口剪切不完備等問(wèn)題。

          18.jpg

          linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)

          linux相關(guān)文章:linux教程



          上一頁(yè) 1 2 3 下一頁(yè)

          關(guān)鍵詞: 研究 移植 GUI 嵌入式 ARM LINUX 基于

          評(píng)論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();