新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 基于WinCE的OLED驅動程序設計

        基于WinCE的OLED驅動程序設計

        作者: 時間:2015-04-22 來源:網絡 收藏

          3.3 流接口驅動程序

        本文引用地址:http://www.104case.com/article/273004.htm

          流接口驅動程序由設備管理應用程序加載、管理和卸載, 與具有單獨目的接口的本機驅動程序相比, 所有流接口驅動程序使用同一個接口并調用同一個函數集---流接口函數。流接口驅動程序把外設抽象成一個文件, 使用標準文件I/O 函數和電源管理函數, 這些函數由Windows CE 操作系統的內核使用。流接口驅動程序的入口點函數為: XXX_ Init、XXX_Deinit、XXX_IOCONtrol、XXX_Open 、XXX_Close 、XXX_PowerDown 、XXX_PowerUp 、XXX_Read 、XXX_Seek 、XXX_Write .流接口驅動程序函數的作用及調用關系如表1 所示。

          

         

          表1 Windows CE 下流接口驅動程序函數作用及調用關系

          流接口驅動程序從設備管理器和通過文件系統調用的應用程序接受命令, 裝入驅動將這些命令翻譯成其所控制設備的適當操作的所有信息。所有的流接口驅動, 無論它管理的是內置式設備還是可安裝式設備, 是系統引導加載還是動態加載, 它們與其他的系統組件都有類似的交互過程。

          3.4 設備驅動程序的初始化過程

          在Windows CE 中, 所有的設備驅動程序都以動態鏈接庫(DLL) 的形式存在, 需要通過進程加載。設備驅動程序向外提供接口函數, 應用程序使用API 對設備進行訪問。Windows CE 共有三類系統進程用來加載驅動程序:Device.exe 、GWES.exe 、FileSys.exe .驅動程序的初始化過程為:設備上電---啟動bootloader---啟動NK.exe---啟動Device.exe---初始化數據結構和I/O---加載總線枚舉器---枚舉注冊表Driver/BuildIn 下所有的子鍵。這里的枚舉就是循環調用ActivateDeviceEx 函數加載驅動程序。

          4 Windows CE 開發流接口驅動程序實例

          以維信諾VGG13264C 132×64 顯示模塊的驅動程序為例, 具體闡述Windows CE 驅動開發的過程。

          4.1 硬件結構

          系統硬件以飛凌OK6410-B 開發板為主板, 以維信諾VGG13264C 顯示模塊為 顯示屏。系統硬件框圖如圖4 所示。

          

         

          飛凌OK6410 -B 開發板基于三星公司最新的ARM11 處理器S3C6410 , 擁有強大的內部資源和視頻處理能力, 可穩定運行在667 MHz 主頻以上, 支持MobileDDR 和多種NAND Flash .FL6410 開發板上集成了多種高端接口, 如復合視頻信號、攝像頭、USB、SD 卡、液晶屏、以太網等, 豐富的接口可幫助用戶實現高端產品級設計。

          維信諾VGG13264C 是132 列×64 行點陣的 單色、字符、圖形顯示模塊, 使用單芯片SSD1303T6 進行驅動, 具有8 位并行數據接口, 模塊內含132×64 顯示數據RAM, 通過用戶I/O 接口連接到飛凌OK6410-B 開發板。

          4.2 流接口驅動程序開發過程

          Windows CE 提供了兩種編寫流接口驅動的方法:

          (1) 通過編寫動態鏈接庫的方法實現; (2) 通過修改BSP的方法實現。由于第二種方法可以加快開發進度, 在該實例中, 使用修改BSP 的方法進行流接口驅動程序開發, 其開發步驟為: 首先在BSP 中新建一個目錄, 編寫驅動程序文件并確定驅動程序向外提供的接口函數, 然后進行注冊表設置, 最后進行測試。

          (1) 驅動程序代碼編寫

          設備初始化使用OED_Init 函數實現, 設備卸載使用OED_Deinit 函數實現。在OED_Init 函數中, 使用DrvLib_MapIoSpace 函數實現物理地址到虛擬地址映射;在OED_Deinit 函數中, 使用VirtualFree 函數釋放驅動程序使用的虛擬內存從而實現了設備的卸載。

          設備的I/O 控制向設備發出命令, 按照維信諾VGG13264C OLED 顯示模塊的時序關系, 通過控制相應管腳的電平高低實現向設備發出命令。設備的I/O 控制在OED_IOControl 函數中實現, 函數部分代碼如下:

          

         

          (2) 向外提供函數接口

          通過配置OED.def 文件導出OLED 提供的接口函數, 供設備管理器使用。在OED.def 文件中添加如下代碼:

          

         

          (3) 注冊表配置。

          注冊表文件Platform. reg 用來配置與OLED 驅動有關的信息, 配置如下:

          [HKEY_LOCAL_MACHINEDriversBuiltInIoControler]

          "Prefix "="OED"

          "Dll "="OED.dll "

          "Index "=dword:0

          隨著嵌入式系統廣泛應用到信息家電、工業控制、移動通信、互聯網等領域, 大量嵌入式系統的開發必將對人類科技的發展起著重要的作用。本文介紹的基于嵌入式操作系統Windows CE 的驅動程序會幫助讀者開發出更多的嵌入式系統產品。

        逆變器相關文章:逆變器原理


        可控硅相關文章:可控硅工作原理


        逆變器相關文章:逆變器工作原理


        比較器相關文章:比較器工作原理



        上一頁 1 2 下一頁

        關鍵詞: WinCE OLED

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 自贡市| 景德镇市| 太白县| 霍山县| 泽普县| 石楼县| 德安县| 离岛区| 黔西| 东源县| 高青县| 无棣县| 乳山市| 日喀则市| 安庆市| 雷山县| 甘洛县| 伊宁市| 朔州市| 浦县| 驻马店市| 五台县| 乐都县| 泰兴市| 天柱县| 锦州市| 新蔡县| 仁布县| 珲春市| 新化县| 寻甸| 扬中市| 孝感市| 大新县| 吉木乃县| 曲阳县| 鞍山市| 磐安县| 松阳县| 灯塔市| 常州市|