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

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > Windows CE設(shè)備小巧玲瓏 矩陣鍵盤開發(fā)大有乾坤

          Windows CE設(shè)備小巧玲瓏 矩陣鍵盤開發(fā)大有乾坤

          作者: 時間:2016-10-08 來源:網(wǎng)絡(luò) 收藏

          但因為矩陣鍵盤作為一種輸入設(shè)備與其他外圍設(shè)備有很大的區(qū)別,應(yīng)用層不能對其發(fā)布命令來操作它。所以,一般流驅(qū)動接口函數(shù)中對設(shè)備進行操作的接口函數(shù)在矩陣鍵盤驅(qū)動中只是作了保留,并未有實質(zhì)性的功能。其中,矩陣鍵盤接口函數(shù)中比較重要的有PWR_Init、PWR_DllEntry、KeypdPdd_GetEventEx、KeypdPdd_GetEventEx、ScanCodeToVKeyEx等。

          (3)矩陣鍵盤驅(qū)動加載過程

          Windows CE系統(tǒng)運行時會默認(rèn)啟動DEVICE.EXE進程。DEVICE.EXE負(fù)責(zé)加載所有流驅(qū)動,進程對流驅(qū)動的加載是通過注冊表列舉器(RegEnum.dll)來實現(xiàn)。矩陣鍵盤的資源信息由OEM適配層(OAL)記錄在注冊表中,RegEnum.dll是通過掃描注冊表項 HKEYLOCALMACHINEDriversBuiltInPWRBUTTON下的鍵值對矩陣鍵盤進行初始化的。

          因此,WinCE輸入系統(tǒng)(GWES)會在啟動時裝載鍵盤驅(qū)動,輸入系統(tǒng)將從HKEY_LOCAL_MACHINEHardwareDeviceMapKEYBDDrivername注冊鍵中獲取矩陣鍵盤驅(qū)動動態(tài)鏈接庫(DLL)的名字。如果沒有找到入口函數(shù),系統(tǒng)將使用默認(rèn)名字Keybddr.dll,然后加載這個DLL文件,并且確認(rèn)所需要的條目指針是否都存在。然后,系統(tǒng)調(diào)用PFN_KEYBD_DRIVER_INITIALIZE 函數(shù)執(zhí)行初始化工作。這時,模型設(shè)備驅(qū)動程序(MDD)會在本地保存復(fù)制的一份輸入系統(tǒng)回調(diào)函數(shù)的副本以及初始化硬件和IST來處理中斷。

          當(dāng)一個中斷信號來的時候,鍵盤驅(qū)動負(fù)責(zé)把硬件掃描碼轉(zhuǎn)換為虛擬鍵值,然后虛擬鍵值會再發(fā)送給輸入系統(tǒng)。輸入系統(tǒng)從隊列中取出按鍵事件,然后返回到驅(qū)動程序的函數(shù)KeybdDriverVKeyToUnicode中。驅(qū)動程序根據(jù)分析特定的鍵事件和虛擬鍵的狀態(tài)產(chǎn)生相應(yīng)的字符。最后,輸入系統(tǒng)把虛擬鍵值和字符發(fā)送給合適的程序。

          例如,在我所用的CAYMAN開發(fā)板中,鍵盤驅(qū)動的動態(tài)鏈接庫名字為KeyPad.dll,入口點為DllMain,中斷服務(wù)線程(IST)的名字是m_hevInterrupt。這個線程調(diào)用函數(shù)InterruptInitialize注冊SYSINTR_KEYBOARD中斷,然后等待系統(tǒng)發(fā)出SYSINTR_KEYBOARD信號。系統(tǒng)在收到中斷信號后,中斷處理程序調(diào)用KeypdPdd_GetEventEx函數(shù)來獲取按鍵的掃描碼,然后再調(diào)用ScanCodeToVKeyEx函數(shù)將掃描碼映射成虛擬碼,把從PDD返回的鍵盤事件發(fā)送到輸入系統(tǒng),輸入系統(tǒng)進行排隊并分發(fā)給相應(yīng)的應(yīng)用程序。

          一般來說,對于Windows CE特殊布局的按鍵式矩陣鍵盤來說,使用流接口驅(qū)動模式能快速有效的進行開發(fā)。因為可以盡量使用微軟提供的樣板程序,只需修改相應(yīng)的硬件相關(guān)代碼就能大大縮短開發(fā)流程,而且可以提高鍵盤驅(qū)動程序的可靠性。


          上一頁 1 2 下一頁

          關(guān)鍵詞:

          評論


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