女人自慰AV免费观看内涵网,日韩国产剧情在线观看网址,神马电影网特片网,最新一级电影欧美,在线观看亚洲欧美日韩,黄色视频在线播放免费观看,ABO涨奶期羡澄,第一导航fulione,美女主播操b

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

Windows CE的體系結(jié)構(gòu)和中斷處理機制及OLED驅(qū)動程序設(shè)計與實現(xiàn)

電子設(shè)計 ? 來源:郭婷 ? 作者:電子設(shè)計 ? 2018-12-05 08:47 ? 次閱讀

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

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

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

1 Window CE 的系統(tǒng)體系結(jié)構(gòu)

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

Windows CE 的體系結(jié)構(gòu)和中斷處理機制及OLED驅(qū)動程序設(shè)計與實現(xiàn)

2 Windows CE 中斷處理

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

Windows CE 的體系結(jié)構(gòu)和中斷處理機制及OLED驅(qū)動程序設(shè)計與實現(xiàn)

3 Windows CE 設(shè)備驅(qū)動程序

設(shè)備驅(qū)動程序?qū)⒉僮飨到y(tǒng)和設(shè)備連接起來, 使操作系統(tǒng)能夠識別設(shè)備, 并為應用程序提供服務。

3.1 設(shè)備驅(qū)動程序模型

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

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

Windows CE 的體系結(jié)構(gòu)和中斷處理機制及OLED驅(qū)動程序設(shè)計與實現(xiàn)

3.2 本機驅(qū)動程序

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

3.3 流接口驅(qū)動程序

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

表1 Windows CE 下流接口驅(qū)動程序函數(shù)作用及調(diào)用關(guān)系

Windows CE 的體系結(jié)構(gòu)和中斷處理機制及OLED驅(qū)動程序設(shè)計與實現(xiàn)

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

3.4 設(shè)備驅(qū)動程序的初始化過程

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

4 Windows CE 開發(fā)流接口驅(qū)動程序?qū)嵗?/p>

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

4.1 硬件結(jié)構(gòu)

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

Windows CE 的體系結(jié)構(gòu)和中斷處理機制及OLED驅(qū)動程序設(shè)計與實現(xiàn)

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

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

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

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

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

(1) 驅(qū)動程序代碼編寫

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

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

Windows CE 的體系結(jié)構(gòu)和中斷處理機制及OLED驅(qū)動程序設(shè)計與實現(xiàn)

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

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

Windows CE 的體系結(jié)構(gòu)和中斷處理機制及OLED驅(qū)動程序設(shè)計與實現(xiàn)

(3) 注冊表配置。

注冊表文件Platform. reg 用來配置與OLED 驅(qū)動有關(guān)的信息, 配置如下:

[HKEY_LOCAL_MACHINE\Drivers\BuiltIn\IoControler]

"Prefix "="OED"

"Dll "="OED.dll "

"Index "=dword:0

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

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • OLED
    +關(guān)注

    關(guān)注

    119

    文章

    6267

    瀏覽量

    227032
  • 互聯(lián)網(wǎng)
    +關(guān)注

    關(guān)注

    54

    文章

    11228

    瀏覽量

    105493
  • 計算機
    +關(guān)注

    關(guān)注

    19

    文章

    7626

    瀏覽量

    90113
  • 移動通信
    +關(guān)注

    關(guān)注

    10

    文章

    2668

    瀏覽量

    70736
收藏 人收藏

    評論

    相關(guān)推薦
    熱點推薦

    大地電磁儀的Windows CE驅(qū)動程序設(shè)計

    為了實現(xiàn)超長周期大地電磁信號的智能化采集,設(shè)計數(shù)據(jù)采集板硬件,移植Windows CE5.0內(nèi)核。開發(fā)Windows CE內(nèi)核下獨立型流接口
    發(fā)表于 04-18 10:12 ?24次下載

    基于Windows CE的USB設(shè)備驅(qū)動程序設(shè)計

    本文針對Windows CE 下USB 外圍設(shè)備的驅(qū)動開發(fā)問題,對Windows CE 下USB 系統(tǒng)軟件的
    發(fā)表于 08-03 11:22 ?33次下載

    Windows CE.NET下觸摸屏驅(qū)動程序的開發(fā)

    首先簡要介紹Windows CE.NET 操作系統(tǒng)的體系結(jié)構(gòu),以及中斷機制;接著介紹了觸摸屏控制器的內(nèi)部
    發(fā)表于 08-13 10:05 ?58次下載

    Win32設(shè)備驅(qū)動程序體系結(jié)構(gòu)

    Win32設(shè)備驅(qū)動程序體系結(jié)構(gòu) 目前,由于需要支持新的業(yè)務和新的PC外部設(shè)備類型對驅(qū)動程序開發(fā)造成了新的挑戰(zhàn)。 新型總線增加了設(shè)備的數(shù)量和對設(shè)備驅(qū)動程序的需
    發(fā)表于 09-12 10:21 ?1237次閱讀

    ARM體系結(jié)構(gòu)程序設(shè)計

    《ARM體系結(jié)構(gòu)程序設(shè)計》是ARM體系結(jié)構(gòu)程序設(shè)計的一本實用指導書籍,通過案例詳細介紹了ARM體系結(jié)構(gòu)
    發(fā)表于 10-27 16:37 ?2443次閱讀

    WinCE的OLED驅(qū)動程序設(shè)計

    以維信諾VGG13264C 132×64 OLED 顯示模塊的WindowsCE 驅(qū)動程序設(shè)計為例, 詳細闡述了嵌入式Windows CE 驅(qū)動程序
    發(fā)表于 03-26 16:10 ?2263次閱讀
    WinCE的<b class='flag-5'>OLED</b><b class='flag-5'>驅(qū)動程序設(shè)計</b>

    ARM9的中斷處理技術(shù)及其在Windows CE實現(xiàn)的研究

    文中介紹ARM9系列嵌入式微處理器的中斷體系結(jié)構(gòu) ,論述 Windows CE.net 的中斷
    發(fā)表于 03-14 16:11 ?0次下載

    Windows CENET中斷架構(gòu)分析和高速AD驅(qū)動程序的開發(fā)

    本文分析了Windows CE.NET嵌入式實時系統(tǒng)的中斷架構(gòu)和流式驅(qū)動架構(gòu) 及其設(shè)備驅(qū)動程序的開發(fā)方法。
    發(fā)表于 04-18 10:02 ?0次下載

    Windows CE驅(qū)動程序開發(fā)

    不同的嵌入式系統(tǒng)硬件平臺,往往有其獨有或特殊的設(shè)備,而這些設(shè)備的Windows CE驅(qū)動程序設(shè)計問題是開發(fā)人員經(jīng)常遇到的。本文著重闡述了Windows
    發(fā)表于 04-18 10:13 ?0次下載

    Windows CE設(shè)備驅(qū)動程序開發(fā)

    本文介紹了 Windows CE 體系結(jié)構(gòu)和開發(fā) wince 設(shè)備驅(qū)動程序的過程,闡述了設(shè)備驅(qū)動程序模型、設(shè)備
    發(fā)表于 04-18 10:13 ?0次下載

    基于Windows CE.NET的設(shè)備驅(qū)動程序開發(fā)

    本文闡述了設(shè)備驅(qū)動程序的概念和結(jié)構(gòu) 介紹了 Windows CE. NET環(huán)境下開發(fā)驅(qū)動程序的特點以及一些常用的開發(fā)工具 并以華恒科技的 H
    發(fā)表于 04-18 11:28 ?0次下載

    基于Windows CENET嵌入式數(shù)據(jù)采集卡的驅(qū)動程序設(shè)計

    本文介紹了嵌入式數(shù)據(jù)采集卡的組成原理和Windows CE.NET核心驅(qū)動程序體系結(jié)構(gòu)討論了數(shù)據(jù)采集卡基于Windows
    發(fā)表于 04-18 11:28 ?0次下載

    基于Windows CE的USB設(shè)備驅(qū)動程序設(shè)計

    本文針對Windows CE下USB外圍設(shè)備的驅(qū)動開發(fā)問題對Windows CE下USB系統(tǒng)軟件的結(jié)構(gòu)
    發(fā)表于 04-18 11:28 ?5次下載

    基于WinDriver for CE的視頻采集驅(qū)動程序設(shè)計

    本文針對視頻監(jiān)控系統(tǒng)功能要求、視頻采集硬件特性 WinDriver for CE驅(qū)動開發(fā)特點設(shè)計并實現(xiàn)了一種簡潔高效的視頻采集驅(qū)動程序。分析 Win
    發(fā)表于 04-18 14:12 ?0次下載

    嵌入式Windows CE設(shè)備驅(qū)動的研究實現(xiàn)

    介紹了 Windows CE體系結(jié)構(gòu)Windows CE 平臺定制 詳細闡述了驅(qū)動的系統(tǒng)
    發(fā)表于 04-18 14:12 ?1次下載