0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

Windows CE的体系结构和中断处理机制及OLED驱动程序设计与实现

电子设计 来源:郭婷 作者:电子设计 2018-12-05 08:47 次阅读

随着计算机技术和嵌入式技术的迅猛发展, 嵌入式软、硬件设计需求越来越广泛, 嵌入式软件开发, 特别是嵌入式软件的驱动开发, 成为一个热点。

Windows CE 是一个新的、可移植的、实时的、模块化的操作系统,具有简捷、高效的完全抢先式多任务操作核心, 支持强大的通信和图形显示功能, 能够适应广泛的系统需求, 在最新一代的工业和家用电子设备中得到了广泛的应用。

在进行嵌入式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 内核组件之间的接口, 将操作系统上层与硬件隔离, 便于支持硬件扩展和即插即用功能,图1 详细描述了三者之间的关系。

Windows CE 的体系结构和中断处理机制及OLED驱动程序设计与实现

2 Windows CE 中断处理

Windows CE 将中断处理分为两个步骤: 中断服务例程(ISR) 和中断服务线程(IST)。把每个硬件的设备中断请求(IRQ) 和一个ISR 联系起来, 当一个中断发生并未被屏蔽时, 内核调用该中断注册的ISR.因为ISR 运行于内核模式, 所以应设计得尽可能短,ISR 引导内核调度和启动合适的IST,IST 在设备驱动程序软件模块中编写, 运行于用户模式, 它从硬件获取或向硬件发送数据和控制代码, 并进一步处理设备中断。Windows CE 还提供了中断嵌套功能, 即在一个ISR 运行时, 内核并不关闭中断, 当优先级比之高的中断发生时, 内核保存当前执行的中断服务例程ISR 的运行状态, 挂起该ISR,转而执行更高优先级中断的ISR.等到高优先级中断的ISR执行完后, 被挂起的低优先级中断的ISR 才重新开始被CPU 调度执行。Windows CE 的中断处理框图如图2 所示。

Windows CE 的体系结构和中断处理机制及OLED驱动程序设计与实现

3 Windows CE 设备驱动程序

设备驱动程序将操作系统和设备连接起来, 使操作系统能够识别设备, 并为应用程序提供服务。

3.1 设备驱动程序模型

Windows CE 提供了用于驱动开发的模型,其中包括来自其他操作系统的驱动程序模型。

因为有这些多变的驱动程序模型, 使Windows CE可以适应大部分的内部和外围设备。目前,Windows CE提供了4 种设备模型, 其中两种是专用于Windows CE模型, 另外两种外部模型来自其他的操作系统, 汇总如图3 所示。

Windows CE 的体系结构和中断处理机制及OLED驱动程序设计与实现

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 所示。

表1 Windows CE 下流接口驱动程序函数作用及调用关系

Windows CE 的体系结构和中断处理机制及OLED驱动程序设计与实现

流接口驱动程序从设备管理器和通过文件系统调用的应用程序接受命令, 装入驱动将这些命令翻译成其所控制设备的适当操作的所有信息。所有的流接口驱动, 无论它管理的是内置式设备还是可安装式设备, 是系统引导加载还是动态加载, 它们与其他的系统组件都有类似的交互过程。

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 所示。

Windows CE 的体系结构和中断处理机制及OLED驱动程序设计与实现

飞凌OK6410 -B 开发板基于三星公司最新的ARM11 处理器S3C6410 , 拥有强大的内部资源和视频处理能力, 可稳定运行在667 MHz 主频以上, 支持MobileDDR 和多种NAND Flash .FL6410 开发板上集成了多种高端接口, 如复合视频信号、摄像头、USBSD 卡、液晶屏、以太网等, 丰富的接口可帮助用户实现高端产品级设计。

维信诺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 函数中实现, 函数部分代码如下:

Windows CE 的体系结构和中断处理机制及OLED驱动程序设计与实现

(2) 向外提供函数接口

通过配置OED.def 文件导出OLED 提供的接口函数, 供设备管理器使用。在OED.def 文件中添加如下代码:

Windows CE 的体系结构和中断处理机制及OLED驱动程序设计与实现

(3) 注册表配置。

注册表文件Platform. reg 用来配置与OLED 驱动有关的信息, 配置如下:

[HKEY_LOCAL_MACHINE\Drivers\BuiltIn\IoControler]

"Prefix "="OED"

"Dll "="OED.dll "

"Index "=dword:0

随着嵌入式系统广泛应用到信息家电、工业控制、移动通信、互联网等领域, 大量嵌入式系统的开发必将对人类科技的发展起着重要的作用。本文介绍的基于嵌入式操作系统Windows CE 的驱动程序会帮助读者开发出更多的嵌入式系统产品。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • OLED
    +关注

    关注

    119

    文章

    6071

    浏览量

    222240
  • 互联网
    +关注

    关注

    54

    文章

    10960

    浏览量

    101540
  • 计算机
    +关注

    关注

    19

    文章

    6842

    浏览量

    85712
  • 移动通信
    +关注

    关注

    10

    文章

    2568

    浏览量

    69476
收藏 人收藏

    评论

    相关推荐

    嵌入式Linux网络驱动程序体系结构实现原理是什么

    嵌入式Linux网络驱动程序是什么嵌入式Linux网络驱动程序体系结构实现原理如何将设备驱动模块编译进内核
    发表于 04-26 06:03

    Windows CE下的串口驱动设计

    驱动程序及串口驱动的开发和设计是构建嵌入式系统的重要组成部分。该文介绍了Windows CE下的驱动程序
    发表于 04-13 09:04 22次下载

    基于Windows CE的USB设备驱动程序设计

    本文针对Windows CE 下USB 外围设备的驱动开发问题,对Windows CE 下USB 系统软件的
    发表于 08-03 11:22 33次下载

    Windows CE.NET下触摸屏驱动程序的开发

    首先简要介绍Windows CE.NET 操作系统的体系结构,以及中断机制;接着介绍了触摸屏控制器的内部
    发表于 08-13 10:05 57次下载

    Win32设备驱动程序体系结构

    Win32设备驱动程序体系结构 目前,由于需要支持新的业务和新的PC外部设备类型对驱动程序开发造成了新的挑战。 新型总线增加了设备的数量和对设备驱动程序的需
    发表于 09-12 10:21 1115次阅读

    ARM体系结构程序设计

    《ARM体系结构程序设计》是ARM体系结构程序设计的一本实用指导书籍,通过案例详细介绍了ARM体系结构
    发表于 10-27 16:37 2306次阅读

    WinCE的OLED驱动程序设计

    以维信诺VGG13264C 132×64 OLED 显示模块的WindowsCE 驱动程序设计为例, 详细阐述了嵌入式Windows CE 驱动程序
    发表于 03-26 16:10 2000次阅读
    WinCE的<b class='flag-5'>OLED</b><b class='flag-5'>驱动程序设计</b>

    ARM9的中断处理技术及其在Windows CE实现的研究

    文中介绍ARM9系列嵌入式微处理器的中断体系结构 ,论述 Windows CE.net 的中断
    发表于 03-14 16:11 0次下载

    Windows CEnet设备驱动程序开发研究

    本文介绍了Windows CE. net的平台结构 阐述了Windows CE驱动的系统
    发表于 04-18 10:02 0次下载

    Windows CE驱动程序开发

    不同的嵌入式系统硬件平台,往往有其独有或特殊的设备,而这些设备的Windows CE驱动程序设计问题是开发人员经常遇到的。本文着重阐述了Windows
    发表于 04-18 10:13 0次下载

    Windows CE设备驱动程序开发

    本文介绍了 Windows CE 体系结构和开发 wince 设备驱动程序的过程,阐述了设备驱动程序模型、设备
    发表于 04-18 10:13 0次下载

    基于Windows CENET嵌入式数据采集卡的驱动程序设计

    本文介绍了嵌入式数据采集卡的组成原理和Windows CE.NET核心驱动程序体系结构讨论了数据采集卡基于Windows
    发表于 04-18 11:28 0次下载

    基于Windows CE的USB设备驱动程序设计

    本文针对Windows CE下USB外围设备的驱动开发问题对Windows CE下USB系统软件的结构
    发表于 04-18 11:28 5次下载

    基于WinDriver for CE的视频采集驱动程序设计

    本文针对视频监控系统功能要求、视频采集硬件特性 WinDriver for CE驱动开发特点设计并实现了一种简洁高效的视频采集驱动程序。分析 Win
    发表于 04-18 14:12 0次下载

    嵌入式Windows CE设备驱动的研究实现

    介绍了 Windows CE体系结构Windows CE 平台定制 详细阐述了驱动的系统
    发表于 04-18 14:12 1次下载