在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,91精品国产91免费

<menu id="6qfwx"><li id="6qfwx"></li></menu>
    1. <menu id="6qfwx"><dl id="6qfwx"></dl></menu>

      <label id="6qfwx"><ol id="6qfwx"></ol></label><menu id="6qfwx"></menu><object id="6qfwx"><strike id="6qfwx"><noscript id="6qfwx"></noscript></strike></object>
        1. <center id="6qfwx"><dl id="6qfwx"></dl></center>

            新聞中心

            EEPW首頁 > 設計應用 > 一種可移植的嵌入式圖形支持系統(tǒng):MiniGUI

            一種可移植的嵌入式圖形支持系統(tǒng):MiniGUI

            作者: 時間:2009-11-29 來源:網(wǎng)絡 收藏

              
              基于的嵌入式系統(tǒng)軟件結構
              
              為什么能夠在如此眾多的嵌入式操作系統(tǒng)上運行?這是因為具有良好的軟件架構,通過抽象層將MiniGUI上層和底層操作系統(tǒng)隔離開來。如圖2所示,基于MiniGUI的應用程序一般通過 ANSI C庫以及MiniGUI自身提供的API來實現(xiàn)自己的功能;MiniGUI中的“層”可將特定操作系統(tǒng)及底層硬件的細節(jié)隱藏起來,而上層應用程序則無需關心底層的硬件平臺輸出和輸入設備。
              
              另外,MiniGUI特有的運行模式概念,也為跨操作系統(tǒng)的支持提供了便利。
              
              與Linux這樣的類UNIX操作系統(tǒng)相比,一般意義上的傳統(tǒng)嵌入式操作系統(tǒng)具有一些特殊性。舉例而言,諸如uClinux、uC/OS-II、eCos、VxWorks等操作系統(tǒng),通常運行在沒有內存管理單元的CPU上;這時,往往就沒有進程的概念,而只有線程或者任務的概念,這樣,GUI系統(tǒng)的運行環(huán)境也就大相徑庭。因此,為了適合不同的操作系統(tǒng)環(huán)境,我們可將MiniGUI配置成三種運行模式:
              
              1.MiniGUI-Threads。運行在MiniGUI-Threads上的程序可以在不同的線程中建立多個窗口,但所有的窗口在一個進程或者地址空間中運行。這種運行模式非常適合于大多數(shù)傳統(tǒng)意義上的嵌入式操作系統(tǒng),如uC/OS-II、eCos、VxWorks、pSOS等等。當然,在Linux和uClinux上,MiniGUI也能以MiniGUI-Threads的模式運行。
              
              2. MiniGUI-Lite。與MiniGUI-Threads相反,MiniGUI-Lite上的每個程序是單獨的進程,每個進程也可以建立多個窗口。MiniGUI-Lite適合于具有完整UNIX特性的嵌入式操作系統(tǒng),比如嵌入式Linux。
              
              3. MiniGUI-Standalone。這種運行模式下,MiniGUI能以獨立進程的方式運行,既不需要多線程也不需要多進程的支持,這種運行模式適合功能單一的應用場合。例如在一些使用uClinux的嵌入式產(chǎn)品中,因為各種原因而缺少線程支持,這時,就可以使用MiniGUI-Standalone來開發(fā)應用軟件。
              
              一般而言,MiniGUI-Standalone模式的適應面最廣,可以支持幾乎所有的操作系統(tǒng),甚至包括類似DOS這樣的操作系統(tǒng);MiniGUI-Threads模式的適用面次之,可運行在支持多任務的實時嵌入式操作系統(tǒng),或者具備完整UNIX特性的普通操作系統(tǒng);MiniGUI-Lite模式的適用面較小,它僅適合于具備完整UNIX特性的普通操作系統(tǒng)。
              
              不論采用哪種運行模式,MiniGUI為上層應用軟件提供了最大程度上的一致性;只有少數(shù)幾個涉及初始化的接口在不同運行模式上有所不同。
              
              MiniGUI在uC/OS-II操作系統(tǒng)上的移植
              
              下面以uC/OS-II操作系統(tǒng)為例,簡單介紹MiniGUI到該操作系統(tǒng)上的移植。
              
              uC/OS-II非常簡單,只要有一個普通的C編譯器,就能完成編譯并運行該操作系統(tǒng),因此,uC/OS-II首先在教學中得到了廣泛應用。因為其簡單及實時性好的特點,現(xiàn)在也有一些用戶開始使用uC/OS-II操作系統(tǒng)開發(fā)正式的嵌入式產(chǎn)品。
              
              將MiniGUI移植到uC/OS-II是相對復雜的一項工作。因為uC/OS-II中缺乏象malloc/free甚至是printf/fprintf/sprintf這樣的接口,不過,最重要的還是缺乏與POSIX-Threads兼容的接口。為此,我們編寫了POSIX-Threads的繞轉接口,這些繞轉接口兼容于POSIX-Threads。同時,我們還實現(xiàn)了 malloc/free,以及printf/sprintf/fprintf等接口。
              
              因涉及到如此多底層特性的增強和修改,整個系統(tǒng)的調試將是非常困難的。為解決調試問題,我們首先在SkyEye(清華大學陳渝主持的自由軟件項目)模擬器上運行uC/OS-II操作系統(tǒng)及MiniGUI for uC/OS-II。我們首先使用了MiniGUI內部的Dummy GAL引擎和Dummy/Auto IAL 引擎(這兩個引擎分別通過軟件方法來模擬實際的輸出和輸入設備,如LCD顯示屏及鍵盤)來運行MiniGUI的應用程序。盡管我們看不到真實的屏幕輸出,但從應用程序在運行過程中打印的輸出信息,我們可以看到MiniGUI for uC/OS-II已經(jīng)正常工作了。接下來的工作就是將MiniGUI for uC/OS-II移植到正式的硬件產(chǎn)品中。
              
              我們在S3C2410開發(fā)板上用ADS的armcc編譯并測試了MiniGUI的uC/OS-II版本。這次,我們針對這個開發(fā)板編寫了正式的圖形和輸入引擎。MiniGUI的所有示例程序都可以在這塊開發(fā)板上正常運行。


            上一頁 1 2 3 4 下一頁

            評論


            相關推薦

            技術專區(qū)

            關閉