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

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > 基于S3C2440的WindML圖形驅動設計

          基于S3C2440的WindML圖形驅動設計

          作者: 時間:2010-10-19 來源:網絡 收藏

          WindML通過事件機制完成對鍵盤輸入的響應。它采用客戶/服務器模式,其事件驅動的原理如圖4所示。
          WindML輸入驅動是一個分層結構,包括一個底層的驅動,負責處理設備控制器和一個高層的驅動,還負責翻譯從設備中接收到的原始數據。
          底層輸入驅動是作為I/O驅動來開發(fā)的,一般構建進入系統(tǒng)內核,底層驅動在初始化時就會被連接到操作系統(tǒng)的I/O系統(tǒng)中。底層驅動負責完成以下功能:
          初始化設備控制器和輸入設備;
          處理由設備控制器產生的中斷;
          從輸入設備中接收原始數據,把它們按序地排列在I/O系統(tǒng)的高端驅動隊列中;
          接收高層驅動的指令并做出相應的反應,如控制鍵盤上LED的亮滅。
          此外,底層輸入驅動必須支持輸入服務任務用于檢測輸入數據的Select()機制。
          高層輸入驅動主要負責接收來自低層輸入驅動的原始數據,處理這些數據,封裝數據成為一個輸入事件消息以及把這些消息放到消息隊列中。在實現時需要完成以下例程:
          (1)驅動打開例程。分配并初始化驅動控制結構,打開底層輸入驅動,設置底層驅動到合適模式,以及當成功打開驅動后返回一個指向驅動結構的指針。
          函數原型如下:

          驅動打開例程有兩個參數,第一個參數是用于接收原始輸入數據,被驅動打開的底層輸入驅動的名字;第二個參數是一個指向輸入驅動結構(UGL_INPUT_DEV)的指針。
          (2)驅動控制例程。
          函數原型如下:

          該函數有3個參數:第一個參數是由驅動打開例程創(chuàng)建和初始化的驅動控制結構;第二個參數是請求的類型;第三個參數依賴于第二個參數的請求類型。
          (3)開發(fā)驅動關閉例程。該函數負責完成關閉底層輸入驅動,釋放由打開例程分配的系統(tǒng)資源以及設置底層設備回到它操作之前的原始狀態(tài)。
          最后需實現I2C總線接口驅動,將底端輸入驅動及高端輸入驅動連接起來,完成鍵盤驅動程序的編寫。
          圖5所示是WindML繪圖的一個例子。圖中創(chuàng)建了2個窗口,左邊的窗口通過鍵盤可以控制小球的運動,右邊窗口可以在其中輸入文字。

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



          4 結語
          本文對嵌入式實時操作系統(tǒng)VxWorks的媒體庫windML及其圖形界面開發(fā)的方法做了詳細的介紹,上面提到的圖形界面開發(fā)的方法已經被作者成功地應用于實際工程開發(fā),并取得了良好的效果。


          上一頁 1 2 3 下一頁

          關鍵詞: 音頻

          評論


          相關推薦

          技術專區(qū)

          關閉
          看屁屁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); })();