《電子技術應用》
您所在的位置:首頁 > 嵌入式技術 > 設計應用 > 基于Windows CE的OLED驅動程序設計與實現
基于Windows CE的OLED驅動程序設計與實現
來源:微型機與應用2011年第20期
王星全, 蘭明蛟, 鄭振華
(總參謀部通信訓練基地, 河北 張家口 075100)
摘要: 介紹了Windows CE 的體系結構和中斷處理機制,研究了Windows CE 設備驅動程序的類型和初始化過程,以維信諾VGG13264C 132×64 OLED 顯示模塊的WindowsCE 驅動程序設計為例,詳細闡述了嵌入式Windows CE 驅動程序的開發過程。
Abstract:
Key words :

摘  要:介紹了Windows CE 的體系結構和中斷處理機制,研究了Windows CE 設備驅動程序的類型和初始化過程,以維信諾VGG13264C 132×64 OLED 顯示模塊的WindowsCE 驅動程序設計為例,詳細闡述了嵌入式Windows CE 驅動程序的開發過程。
關鍵詞: Windows CE; 驅動模型; OLED驅動程序; 開發過程

    隨著計算機技術和嵌入式技術的迅猛發展,嵌入式軟、硬件設計需求越來越廣泛,嵌入式軟件開發,特別是嵌入式軟件的驅動開發,成為一個熱點。
    Windows CE 是一個新的、可移植的、實時的、模塊化的操作系統[1],具有簡捷、高效的完全搶先式多任務操作核心,支持強大的通信和圖形顯示功能,能夠適應廣泛的系統需求,在最新一代的工業和家用電子設備中得到了廣泛的應用。
    在進行嵌入式Windows CE項目開發的過程中,經常需要根據需求定制顯示屏,如何為定制的顯示屏開發Windows CE驅動程序成為嵌入式系統開發的關鍵步驟。本文在深入研究Windows CE 驅動程序工作原理的基礎上,以維信諾VGG13264C 132×64 OLED 顯示模塊的WindowsCE 驅動程序設計為例,詳細闡述了嵌入式Windows CE 驅動程序的開發過程,并對設計實現的驅動程序進行了測試。
1 Window CE的系統體系結構
    Windows CE是微軟設計開發的一種可升級的搶先式多任務32 位實時操作系統。一個基于Windows CE的平臺主要由以下幾部分組成:Windows CE內核組件、OAL層和驅動程序。OAL層和驅動程序作為目標設備和Windows CE內核組件之間的接口,將操作系統上層與硬件隔離,便于支持硬件擴展和即插即用功能[2],圖1詳細描述了三者之間的關系。

2 Windows CE中斷處理
    Windows CE將中斷處理分為兩個步驟:中斷服務例程(ISR)和中斷服務線程(IST)[3]。把每個硬件的設備中斷請求(IRQ)和一個ISR聯系起來,當一個中斷發生并未被屏蔽時,內核調用該中斷注冊的ISR。因為ISR運行于內核模式,所以應設計得盡可能短,ISR引導內核調度和啟動合適的IST,IST在設備驅動程序軟件模塊中編寫,運行于用戶模式,它從硬件獲取或向硬件發送數據和控制代碼,并進一步處理設備中斷。Windows CE還提供了中斷嵌套功能,即在一個ISR運行時,內核并不關閉中斷,當優先級比之高的中斷發生時,內核保存當前執行的中斷服務例程ISR的運行狀態,掛起該ISR,轉而執行更高優先級中斷的ISR。等到高優先級中斷的ISR執行完后,被掛起的低優先級中斷的ISR才重新開始被CPU調度執行。Windows CE的中斷處理框圖如圖2所示。

3 Windows CE設備驅動程序
    設備驅動程序將操作系統和設備連接起來,使操作系統能夠識別設備,并為應用程序提供服務。
3.1 設備驅動程序模型
    Windows CE提供了用于驅動開發的模型[4],其中包括來自其他操作系統的驅動程序模型。
    因為有這些多變的驅動程序模型,使Windows CE可以適應大部分的內部和外圍設備。目前,Windows CE提供了4種設備模型,其中兩種是專用于Windows CE模型,另外兩種外部模型來自其他的操作系統,匯總如圖3所示。

3.2 本機驅動程序

 


    要把Windows CE移植到目標平臺上,必須為平臺上已建立的設備提供驅動程序。一些類型的設備,如鍵盤、顯示器和PC卡插槽等對操作系統都有一個自定義接口。因為這些接口是專門用于Windows CE的,所以稱這類驅動程序為本機驅動程序。Windows CE 平臺生成器提供本機設備驅動程序的樣本,可考慮把本機設備驅動程序樣本應用到平臺上,而不需要再從頭開發自己的本機驅動程序。用戶可根據驅動程序樣本快速開發自己的驅動程序。
3.3 流接口驅動程序
    流接口驅動程序由設備管理應用程序加載、管理和卸載,與具有單獨目的接口的本機驅動程序相比,所有流接口驅動程序使用同一個接口并調用同一個函數集——流接口函數。流接口驅動程序把外設抽象成一個文件,使用標準文件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所示。
    流接口驅動程序從設備管理器和通過文件系統調用的應用程序接受命令,裝入驅動將這些命令翻譯成其所控制設備的適當操作的所有信息。所有的流接口驅動,無論它管理的是內置式設備還是可安裝式設備,是系統引導加載還是動態加載,它們與其他的系統組件都有類似的交互過程。

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 OLED顯示模塊的驅動程序為例,具體闡述Windows CE驅動開發的過程。
4.1 硬件結構
    系統硬件以飛凌OK6410-B開發板為主板,以維信諾VGG13264C顯示模塊為OLED顯示屏。系統硬件框圖如圖4所示。

    飛凌OK6410-B開發板基于三星公司最新的ARM11處理器S3C6410,擁有強大的內部資源和視頻處理能力,可穩定運行在667 MHz主頻以上,支持Mobile DDR和多種NAND Flash。FL6410開發板上集成了多種高端接口,如復合視頻信號、攝像頭、USB、SD卡、液晶屏、以太網等,豐富的接口可幫助用戶實現高端產品級設計。
    維信諾VGG13264C是132列×64行點陣的OLED單色、字符、圖形顯示模塊,使用單芯片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函數中實現,函數部分代碼如下:
  switch (dwIoControlCode) {
          case IOCTL_OLED_INIT:
          v_pIOPregs->GPPCON&=0xF000FFFF;
        v_pIOPregs->GPPCON|=0x5550000;
          ……
          Delay_ns(2);
          v_pIOPregs->GPEDAT|=(0x01<<4);
          Delay_ns(2);
        v_pIOPregs->GPEDAT|=(0x01<<2);
      break;
    case IOCTL_OLED_WRITECOMMAND:
          v_pIOPregs->GPEDAT&=~(0x01);               //A0低
        v_pIOPregs->GPEDAT|=(0x01<<3);            //CS高
        v_pIOPregs->GPEDAT|=(0x01<<1);           //WR高
        Delay_ns(1);
        v_pIOPregs->GPEDAT&=~(0x01<<3);         //CS低
        v_pIOPregs->GPEDAT&=~(0x01<<1);       //WR低
        if((0x01<<7)&(*pInBuf))
                    v_pIOPregs->GPQDAT|=(0x01<<6);
        else  v_pIOPregs->GPQDAT&=~(0x01<<6);
          ……
        Delay_ns(1);
        v_pIOPregs->GPEDAT|=(0x01<<1);           //WR高
               Delay_ns(1);
        v_pIOPregs->GPEDAT|=(0x01<<3);            //CS高
    break;
     case IOCTL_OLED_WRITEDATA:
        v_pIOPregs->GPEDAT|=(0x01);                  //A0高
       v_pIOPregs->GPEDAT|=(0x01<<3);            //CS高
          v_pIOPregs->GPEDAT|=(0x01<<1);           //WR高
          v_pIOPregs->GPEDAT&=~(0x01<<3);         //CS低
       v_pIOPregs->GPEDAT&=~(0x01<<1);        //WR低
          if((0x01<<7)&(*pInBuf))
               v_pIOPregs->GPQDAT|=(0x01<<6);
       else v_pIOPregs->GPQDAT&=~(0x01<<6);
       ……
    Delay_ns(1);
    v_pIOPregs->GPEDAT|=(0x01<<1);            //WR高
    Delay_ns(1);
    v_pIOPregs->GPEDAT|=(0x01<<3);             //CS高
    break;
      }
  (2)向外提供函數接口
  通過配置OED.def文件導出OLED提供的接口函數,供設備管理器使用。在OED.def 文件中添加如下代碼:
    LIBRARY     OED
    EXPORTS OED_Init
        OED _Deinit
         OED _Open
       OED _Close
            OED _Read
            OED _Write
            OED _Seek
            OED _PowerDown
            OED _PowerUp
             OED _IOControl
  (3)注冊表配置
     注冊表文件Platform. reg 用來配置與OLED驅動有關的信息,配置如下:
  [HKEY_LOCAL_MACHINE\Drivers\BuiltIn\IoControler]
  “Prefix”=“OED”
  “Dll”=“OED.dll”
  “Index”=dword:0
    隨著嵌入式系統廣泛應用到信息家電、工業控制、移動通信、互聯網等領域,大量嵌入式系統的開發必將對人類科技的發展起著重要的作用。本文介紹的基于嵌入式操作系統Windows CE 的驅動程序會幫助讀者開發出更多的嵌入式系統產品。
參考文獻
[1] GOGGIN T A. Windows CE 高級開發指南[M]. 尤滔,張平,周曉權,譯,北京:電子工業出版社,2001.
[2] Microsoft . Microsoft Windows CE Device Driver Kit[M]. 北京:北京希望電子出版社,2000.
[3] 胡軍輝,王友釗.Windows CE設備驅動程序開發[J].計算機工程,2006,32(16):41-43.
[4] 李長河,王永強,劉剛,等.嵌入式Windows CE設備驅動的研究實現[J].微機發展,2003,13(7):69-72.

此內容為AET網站原創,未經授權禁止轉載。
热re99久久精品国产66热_欧美小视频在线观看_日韩成人激情影院_庆余年2免费日韩剧观看大牛_91久久久久久国产精品_国产原创欧美精品_美女999久久久精品视频_欧美大成色www永久网站婷_国产色婷婷国产综合在线理论片a_国产精品电影在线观看_日韩精品视频在线观看网址_97在线观看免费_性欧美亚洲xxxx乳在线观看_久久精品美女视频网站_777国产偷窥盗摄精品视频_在线日韩第一页
  • <strike id="ygamy"></strike>
  • 
    
      • <del id="ygamy"></del>
        <tfoot id="ygamy"></tfoot>
          <strike id="ygamy"></strike>
          国产精品自在欧美一区| 亚洲精品欧美专区| 国产亚洲成年网址在线观看| 久久婷婷激情| 日韩午夜中文字幕| 国产亚洲永久域名| 亚洲天堂黄色| 国产精品久久一区主播| 欧美日韩中文另类| 国产欧美一区二区精品性色| 国产精品日韩久久久| 黑人巨大精品欧美一区二区| 久久精品国产免费| 久久亚洲欧洲| 亚洲六月丁香色婷婷综合久久| 在线日韩av片| 欧美日韩精品三区| 久久久久一本一区二区青青蜜月| 宅男噜噜噜66一区二区| 亚洲国产日本| 欧美日韩一二三四五区| 久久精品毛片| 国产精品qvod| 久久综合给合久久狠狠狠97色69| 在线日韩中文字幕| 久久国产精品久久精品国产| 黄色一区二区在线观看| 欧美成人午夜剧场免费观看| 欧美肉体xxxx裸体137大胆| 国产精品久久77777| 欧美日韩国产一区二区三区地区| 午夜欧美电影在线观看| 久久久久青草大香线综合精品| 欧美高清在线观看| 亚洲午夜久久久久久久久电影网| 亚洲国产精品日韩| 欧美精品激情在线观看| 在线精品在线| 国产精品卡一卡二卡三| 亚洲伦理自拍| 免费看的黄色欧美网站| 国产一区二区精品在线观看| 另类综合日韩欧美亚洲| 中文在线资源观看网站视频免费不卡| 欧美在线观看一区| 国产精品理论片| 亚洲你懂的在线视频| 国产一区二区三区四区五区美女| 在线看片日韩| 欧美丝袜一区二区| 亚洲第一在线综合在线| 欧美日韩一区二区在线观看视频| 一区二区三区黄色| 欧美精品www在线观看| 久久不射中文字幕| 久久久免费精品视频| 久久精品一区二区三区中文字幕| 午夜视频在线观看一区二区三区| 国产亚洲精品高潮| 欧美在线免费视频| 久久久www成人免费无遮挡大片| 在线亚洲免费视频| 久久成人亚洲| 韩国一区二区在线观看| 久久av资源网站| 欧美日产国产成人免费图片| 久久精品免费看| 国产精品午夜春色av| 99视频超级精品| 国产欧美日韩中文字幕在线| 今天的高清视频免费播放成人| 欧美日韩国产综合视频在线观看| 免费观看在线综合色| 欧美精品精品一区| 欧美电影免费观看网站| 久久国产精品一区二区三区| 国产精自产拍久久久久久| 免费亚洲视频| 久久手机精品视频| 欧美亚洲第一页| 亚洲日本精品国产第一区| 亚洲免费精品| 亚洲一区欧美一区| 在线播放亚洲| 国产精品久久久久久福利一牛影视| 欧美亚洲动漫精品| 国产精品影音先锋| 亚洲一线二线三线久久久| 久久久久88色偷偷免费| 欧美顶级大胆免费视频| 久久gogo国模啪啪人体图| 亚洲网在线观看| 国产日韩欧美三级| 久久精品论坛| 欧美日在线观看| 欧美精品精品一区| 国产伦精品一区| 欧美韩国一区| 亚洲综合日韩| 国产精品综合视频| 国产精品一国产精品k频道56| 亚洲青色在线| 性欧美1819sex性高清| 久久精品最新地址| 国产一本一道久久香蕉| 中文精品视频一区二区在线观看| 亚洲看片免费| 国产精品美女www爽爽爽| 亚洲婷婷综合色高清在线| 欧美大片第1页| 蜜桃av噜噜一区二区三区| 国产精品亚洲а∨天堂免在线| 激情懂色av一区av二区av| 欧美激情综合色| 亚洲欧美视频一区| 国产日韩精品在线播放| 欧美日韩国产在线看| 日韩一本二本av| 国产亚洲欧美一区在线观看| 国产视频久久久久| 亚洲欧美激情视频在线观看一区二区三区| 欧美在线观看一区二区三区| 国产精品免费一区豆花| 日韩性生活视频| 一区二区精品| 国产精品综合色区在线观看| 91久久精品国产91久久性色tv| 一区二区三区三区在线| 亚洲精品影视在线观看| 国产精品成人一区| 欧美中文字幕视频在线观看| 激情五月综合色婷婷一区二区| 狼人社综合社区| 激情成人av| 在线成人亚洲| 黄色一区二区三区四区| 亚洲最新中文字幕| 欧美视频久久| 国产亚洲高清视频| 尤物精品国产第一福利三区| 国产精品羞羞答答| 亚洲国产精品久久精品怡红院| 亚洲免费人成在线视频观看| 欧美在线视频导航| 亚洲国产小视频在线观看| 亚洲高清123| 欧美国产一区二区| 久久久久国产一区二区三区| 国产一级久久| 欧美中在线观看| 欧美va天堂va视频va在线| 精品成人在线视频| 亚洲欧美激情在线视频| 老司机成人在线视频| 欧美性天天影院| 米奇777超碰欧美日韩亚洲| 久久岛国电影| 国产亚洲欧美中文| 久久黄色小说| 久久精品国内一区二区三区| 国产精品综合av一区二区国产馆| 欧美日韩国产精品专区| 欧美日韩大片| 免费人成网站在线观看欧美高清| 国产乱肥老妇国产一区二| 欧美一区二区三区免费视| 亚洲专区一区| 欧美性猛交xxxx乱大交蜜桃| 午夜精品在线视频| 亚洲尤物在线视频观看| 欧美在线观看一区二区三区| 亚洲欧美在线一区二区| 国产日韩欧美在线观看| 亚洲精品黄色| 久久综合久久综合久久综合| 欧美黄网免费在线观看| 国产日韩欧美在线| 亚洲激情精品| 激情视频一区| 国产欧美日韩麻豆91| 中文亚洲视频在线| 亚洲二区视频| 欧美另类亚洲| 欧美大片免费| 一本色道久久综合亚洲精品不| 亚洲色图自拍| 国产精品色婷婷| 99热免费精品| 亚洲欧美中文在线视频| 欧美jizzhd精品欧美巨大免费| 国产区精品视频| 娇妻被交换粗又大又硬视频欧美| 国产精品久久久久9999吃药| 亚洲欧美日韩天堂一区二区| 国内外成人免费激情在线视频| 亚洲美女视频在线免费观看| 国产精品视频大全| 欧美精品www在线观看| 国产欧美va欧美va香蕉在| 国产伦精品一区二区三| 久久精品视频在线观看| 你懂的网址国产 欧美| 欧美日韩视频在线一区二区| 欧美日韩午夜在线视频| 欧美高清你懂得| 国产精品久久久久久久久久久久久| 欧美高清自拍一区| 激情欧美一区二区三区| 好吊一区二区三区| 欧美中文字幕在线播放| 久久九九精品| 亚洲国产高清aⅴ视频| 国产精品欧美日韩久久| 欧美日韩国内| 欧美日韩在线播放三区四区| 国产精品毛片高清在线完整版| 国产一区二区三区高清在线观看| 夜夜嗨av一区二区三区免费区| 亚洲男人的天堂在线观看| 美女网站久久| 国产精品久久久久久久久久久久久| 亚洲一区二区三区免费观看| 91久久久久久久久久久久久| 国产乱码精品一区二区三区五月婷| 久久精品人人做人人综合| 亚洲小说春色综合另类电影| 国产精品一二三视频| 亚洲一区二区不卡免费| 亚洲国产成人精品女人久久久| 久久精品视频播放| 欧美体内she精视频在线观看| 欧美激情欧美激情在线五月| 久久精品一区四区| 亚洲精品乱码久久久久久日本蜜臀| 亚洲精品一区二区三区婷婷月| 99视频精品全部免费在线| 久久在线免费视频| 亚洲国产日日夜夜| 精品成人国产| 久久精品二区| 欧美激情一二三区| 欧美激情国产日韩| 亚洲愉拍自拍另类高清精品| 欧美日韩国产成人在线观看| 欧美成人亚洲成人日韩成人| 国产一区二区看久久| 影音先锋久久久| 在线成人av网站| 欧美久久综合| 亚洲国产欧美一区二区三区同亚洲| 久久久久久成人| 亚洲欧美视频在线观看视频| 欧美福利一区| 亚洲精品乱码久久久久久蜜桃麻豆| 欧美人成免费网站| 欧美激情视频在线播放| 欧美精品在线一区二区| 国产一区二区成人久久免费影院| 免费日韩av片| 欧美在线影院| 欧美激情一区二区三区全黄| 欧美国产视频一区二区| 国产精品成人一区二区三区吃奶| 亚洲一级电影| 国产精品视频精品视频| 国产精品人人做人人爽| 欧美激情第10页| 亚洲一区二区欧美| 亚洲高清三级视频| 伊人精品久久久久7777| 亚洲一区在线免费| 欧美国产日韩亚洲一区| 亚洲小少妇裸体bbw| 99精品国产高清一区二区| 欧美国产日韩一区| 久久一区欧美| 亚洲欧洲精品一区二区三区波多野1战4| 欧美日韩欧美一区二区| 麻豆成人精品| 9色精品在线| 欧美性猛交xxxx免费看久久久| 久久成年人视频| 国产亚洲网站| 亚洲女人小视频在线观看| 狠狠色伊人亚洲综合成人| 亚洲激情亚洲| 欧美国产大片| 久久久久久久一区二区| 激情久久久久久久久久久久久久久久| 欧美亚洲成人网| 亚洲国产精品久久久久| 国产精品视频福利| 永久免费精品影视网站| 国产色婷婷国产综合在线理论片a| 国产精品r级在线| 欧美日韩小视频| 亚洲精选成人| 欧美激情第六页| 国产在线一区二区三区四区| 久久99在线观看| 国产精品v一区二区三区| 亚洲新中文字幕| 亚洲国产欧美精品| 1024精品一区二区三区| 韩国精品一区二区三区| 欧美一区二区日韩一区二区| 久久手机精品视频| 亚洲一区在线观看免费观看电影高清| 99re在线精品| 老牛国产精品一区的观看方式| 亚洲欧美韩国| 欧美性大战久久久久| 樱花yy私人影院亚洲| 国产一区二区三区最好精华液| 欧美乱大交xxxxx| 久久精品三级| 亚洲第一搞黄网站| 欧美午夜视频网站| 一区二区三区日韩在线观看| 亚洲精品视频免费| 亚洲视频电影图片偷拍一区| 欧美精品情趣视频| 欧美风情在线观看| 在线中文字幕一区| 美女黄毛**国产精品啪啪| 欧美激情按摩在线| 亚洲一区在线观看视频| 激情五月婷婷综合|