當前位置:首頁 > 嵌入式 > 嵌入式軟件
[導讀]基于Windows CE的OLED驅動程序設計與實現(xiàn)

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

隨著計算機技術和嵌入式技術的迅猛發(fā)展, 嵌入式軟、硬件設計需求越來越廣泛, 嵌入式軟件開發(fā), 特別是嵌入式軟件的驅動開發(fā), 成為一個熱點。

Windows CE 是一個新的、可移植的、實時的、模塊化的操作系統(tǒng),具有簡捷、高效的完全搶先式多任務操作核心, 支持強大的通信和圖形顯示功能, 能夠適應廣泛的系統(tǒng)需求, 在最新一代的工業(yè)和家用電子設備中得到了廣泛的應用。

在進行嵌入式Windows CE 項目開發(fā)的過程中, 經(jīng)常需要根據(jù)需求定制顯示屏, 如何為定制的顯示屏開發(fā)Windows CE 驅動程序成為嵌入式系統(tǒng)開發(fā)的關鍵步驟。本文在深入研究Windows CE 驅動程序工作原理的基礎上, 以維信諾VGG13264C 132×64 OLED 顯示模塊的WindowsCE 驅動程序設計為例, 詳細闡述了嵌入式Windows CE 驅動程序的開發(fā)過程, 并對設計實現(xiàn)的驅動程序進行了測試。

1 Window CE 的系統(tǒng)體系結構

Windows CE 是微軟設計開發(fā)的一種可升級的搶先式多任務32 位實時操作系統(tǒng)。一個基于Windows CE 的平臺主要由以下幾部分組成:Windows CE 內核組件、OAL 層和驅動程序。OAL 層和驅動程序作為目標設備和Windows CE 內核組件之間的接口, 將操作系統(tǒng)上層與硬件隔離, 便于支持硬件擴展和即插即用功能,圖1 詳細描述了三者之間的關系。

2 Windows CE 中斷處理

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

3 Windows CE 設備驅動程序

設備驅動程序將操作系統(tǒng)和設備連接起來, 使操作系統(tǒng)能夠識別設備, 并為應用程序提供服務。

3.1 設備驅動程序模型

Windows CE 提供了用于驅動開發(fā)的模型,其中包括來自其他操作系統(tǒng)的驅動程序模型。

因為有這些多變的驅動程序模型, 使Windows CE可以適應大部分的內部和外圍設備。目前,Windows CE提供了4 種設備模型, 其中兩種是專用于Windows CE模型, 另外兩種外部模型來自其他的操作系統(tǒng), 匯總如圖3 所示。

3.2 本機驅動程序

要把Windows CE 移植到目標平臺上, 必須為平臺上已建立的設備提供驅動程序。一些類型的設備, 如鍵盤、顯示器和PC 卡插槽等對操作系統(tǒng)都有一個自定義接口。因為這些接口是專門用于Windows CE 的, 所以稱這類驅動程序為本機驅動程序。Windows CE 平臺生成器提供本機設備驅動程序的樣本, 可考慮把本機設備驅動程序樣本應用到平臺上, 而不需要再從頭開發(fā)自己的本機驅動程序。用戶可根據(jù)驅動程序樣本快速開發(fā)自己的驅動程序。

3.3 流接口驅動程序

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

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

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

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

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

4 Windows CE 開發(fā)流接口驅動程序實例

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

4.1 硬件結構

系統(tǒng)硬件以飛凌OK6410-B 開發(fā)板為主板, 以維信諾VGG13264C 顯示模塊為OLED 顯示屏。系統(tǒng)硬件框圖如圖4 所示。

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

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

4.2 流接口驅動程序開發(fā)過程

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

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

(1) 驅動程序代碼編寫

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

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

(2) 向外提供函數(shù)接口

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

(3) 注冊表配置。

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

[HKEY_LOCAL_MACHINEDriversBuiltInIoControler]

"Prefix "="OED"

"Dll "="OED.dll "

"Index "=dword:0

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

本站聲明: 本文章由作者或相關機構授權發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內容真實性等。需要轉載請聯(lián)系該專欄作者,如若文章內容侵犯您的權益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或將催生出更大的獨角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關鍵字: 阿維塔 塞力斯 華為

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數(shù)字化轉型技術解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關鍵字: AWS AN BSP 數(shù)字化

倫敦2024年8月29日 /美通社/ -- 英國汽車技術公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時1.5...

關鍵字: 汽車 人工智能 智能驅動 BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務能7×24不間斷運行,同時企業(yè)卻面臨越來越多業(yè)務中斷的風險,如企業(yè)系統(tǒng)復雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務連續(xù)性,提升韌性,成...

關鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報道,騰訊和網(wǎng)易近期正在縮減他們對日本游戲市場的投資。

關鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會開幕式在貴陽舉行,華為董事、質量流程IT總裁陶景文發(fā)表了演講。

關鍵字: 華為 12nm EDA 半導體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會上,華為常務董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權最終是由生態(tài)的繁榮決定的。

關鍵字: 華為 12nm 手機 衛(wèi)星通信

要點: 有效應對環(huán)境變化,經(jīng)營業(yè)績穩(wěn)中有升 落實提質增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務引領增長 以科技創(chuàng)新為引領,提升企業(yè)核心競爭力 堅持高質量發(fā)展策略,塑強核心競爭優(yōu)勢...

關鍵字: 通信 BSP 電信運營商 數(shù)字經(jīng)濟

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺與中國電影電視技術學會聯(lián)合牽頭組建的NVI技術創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會上宣布正式成立。 活動現(xiàn)場 NVI技術創(chuàng)新聯(lián)...

關鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會上,軟通動力信息技術(集團)股份有限公司(以下簡稱"軟通動力")與長三角投資(上海)有限...

關鍵字: BSP 信息技術
關閉
關閉