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

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 基于嵌入式Linux系統(tǒng)界面的研究

          基于嵌入式Linux系統(tǒng)界面的研究

          作者: 時間:2012-05-11 來源:網(wǎng)絡(luò) 收藏

          利用GAL和IAL,大大提高了MiniGUI的可移植性,并且使程序的開發(fā)和調(diào)試變得更加容易??梢栽赬Window上開發(fā)和調(diào)試自己的MiniGUI程序,通過重新編譯就可以讓MiniGUI應(yīng)用程序運行在特殊的硬件平臺上。

          MiniGUI本身運行在多線程模式下,他的許多模塊都以單獨的線程運行,同時,MiniGUI還利用線程來支持多窗口。從本質(zhì)上講,每個線程有一個消息隊列,消息隊列是實現(xiàn)線程數(shù)據(jù)交換和同步的關(guān)鍵數(shù)據(jù)結(jié)構(gòu)。一個線程向消息隊列中發(fā)送消息,而另一個線程從這個消息隊列中獲取消息,同一個線程中創(chuàng)建的窗口可共享同一個消息隊列。

          多線程有一定的好處,但不方便的是不同的線程共享同一個地址空間,因此,客戶線程可能會破壞服務(wù)器線程的數(shù)據(jù),但有一個重要的優(yōu)勢是,由于共享地址空間,線程之間就沒有額外的數(shù)據(jù)復(fù)制開銷。由于MiniGUI是面向或?qū)崟r控制的,因此,這種應(yīng)用環(huán)境下的應(yīng)用程序往往具有單一的功能,從而使得采用多線程而非多進程模式實現(xiàn)圖形界面有了一定的實際意義,也更加符合MiniGUI之“Mini”的特色。

          在多線程環(huán)境中,與多進程間的通訊機制類似,線程之間也有交互和同步的需求。比如,用來管理窗口的線程維持全局的窗口列表,而其他線程不能直接修改這些全局的數(shù)據(jù)結(jié)構(gòu),而必須依據(jù)“先來先服務(wù)”的原則,依次處理每個線程的請求,這就是一般性的C/S模式。MiniGUI利用線程之間的同步操作實現(xiàn)了客戶線程和服務(wù)器線程之間的微C/S機制,之所以這樣命名,是因為客戶和服務(wù)器是同一進程中的不同線程。

          4MiniGUI在雷達顯示界面上的應(yīng)用

          我們自主裁剪了,并在此基礎(chǔ)上安裝了SVGALib圖形引擎的MiniGUI輕量級圖形用戶界面支持系統(tǒng),MiniGUI編寫了圖形用戶界面雷達終端顯示應(yīng)用程序。

          5結(jié)語

          系統(tǒng)是源代碼開放的一種可裁剪的軟件平臺系統(tǒng),不存在黑箱技術(shù)。他的小巧、穩(wěn)定、多任務(wù)、可配置、高性能、高可靠性、硬件的良好支持和價格的優(yōu)勢,尤其網(wǎng)絡(luò)功能的強大,使他迅速成長發(fā)展,受到廣大開發(fā)人員的青睞。

          MiniGUI是國人自行開發(fā)研制的適合嵌入式系統(tǒng)的輕量級圖形用戶界面支持系統(tǒng),他采用WIN32體系架構(gòu),提供了完備的多窗口機制、對話框和預(yù)定義的控件類,消息傳遞機制等,大大地簡化了開發(fā)人員的界面設(shè)計。

          但是,國產(chǎn)的嵌入式操作系統(tǒng)在技術(shù)含量、兼容性、市場運作模式等方面也還有很多工作要做,我們應(yīng)該在跟蹤國外嵌入式操作系統(tǒng)的最新技術(shù)的同時,堅持自主產(chǎn)權(quán),力爭找到自己的突破點,探索出一條自己的發(fā)展道路。正提供了一個這樣的平臺。

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

          上一頁 1 2 下一頁

          評論


          相關(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); })();