基于WindowsCE的OLED驱动程序设计
概要:讲解了WindowsCE的体系结构和中断处置机制,研究了WindowsCE设备驱动程序的类型和初始化过程,以维信诺VGG13264C13264OLED表明模块的WindowsCE驱动程序设计为事例,详尽阐释了嵌入式WindowsCE驱动程序的研发过程。 随着计算机技术和嵌入式技术的迅猛发展,嵌入式硬、硬件设计市场需求更加普遍,嵌入式软件研发,尤其是嵌入式软件的驱动研发,沦为一个热点。 WindowsCE是一个新的、可移植的、动态的、模块化的操作系统,具备简捷、高效的几乎先行式多任务操作者核心,反对强劲的通信和图形表明功能,需要适应环境普遍的系统市场需求,在近期一代的工业和家用电子设备中获得了普遍的应用于。
在展开嵌入式WindowsCE项目研发的过程中,常常必须根据市场需求自定义显示屏,如何为自定义的显示屏研发WindowsCE驱动程序沦为嵌入式系统研发的关键步骤。本文在深入研究WindowsCE驱动程序工作原理的基础上,以维信诺VGG13264C13264OLED表明模块的WindowsCE驱动程序设计为事例,详尽阐释了嵌入式WindowsCE驱动程序的研发过程,并对设计构建的驱动程序展开了测试。
1WindowCE的系统体系结构 WindowsCE是微软公司设计研发的一种可升级的先行式多任务32位实时操作系统。一个基于WindowsCE的平台主要由以下几部分构成:WindowsCE内核组件、OAL层和驱动程序。OAL层和驱动程序作为目标设备和WindowsCE内核组件之间的模块,将操作系统上层与硬件隔绝,便于反对硬件拓展和即插即用功能,图1详细描述了三者之间的关系。
2WindowsCE中断处置 WindowsCE将中断处置分成两个步骤:中断服务例程(ISR)和中断服务线程(IST)。把每个硬件的设备中断请求(IRQ)和一个ISR联系一起,当一个中断再次发生未被屏蔽时,内核调用该中断登记的ISR.因为ISR运营于内核模式,所以不应设计得尽量较短,ISR引领内核调度和启动适合的IST,IST在设备驱动程序软件模块中撰写,运营于用户模式,它从硬件提供或向硬件发送数据和控制代码,并更进一步处置设备中断。WindowsCE还获取了中断嵌套功能,即在一个ISR运营时,内核并不重开中断,当优先级比之低的中断再次发生时,内核留存当前继续执行的中断服务例程ISR的运营状态,悬挂该ISR,转而继续执行更高优先级中断的ISR.等到低优先级中断的ISR继续执行完了后,被悬挂的低优先级中断的ISR才新的开始被CPU调度继续执行。WindowsCE的中断处置框图如图2右图。
3WindowsCE设备驱动程序 设备驱动程序将操作系统和设备连接起来,使操作系统需要辨识设备,并为应用程序获取服务。 3.1设备驱动程序模型 WindowsCE获取了用作驱动研发的模型,其中还包括来自其他操作系统的驱动程序模型。 因为有这些多变的驱动程序模型,使WindowsCE可以适应环境大部分的内部和外围设备。目前,WindowsCE获取了4种设备模型,其中两种是专用于WindowsCE模型,另外两种外部模型来自其他的操作系统,汇总如图3右图。
3.2本机驱动程序 要把WindowsCE重制到目标平台上,必需为平台上已创建的设备获取驱动程序。一些类型的设备,如键盘、显示器和PC卡插槽等对操作系统都有一个自定义模块。因为这些模块是专门用作WindowsCE的,所以称之为这类驱动程序为本机驱动程序。
WindowsCE平台生成器获取本机设备驱动程序的样本,可考虑到把本机设备驱动程序样本应用于到平台上,而不必须再行由头研发自己的本机驱动程序。用户可根据驱动程序样本较慢研发自己的驱动程序。 3.3流模块驱动程序 流模块驱动程序由设备管理应用程序读取、管理和修理,与具备分开目的模块的本机驱动程序比起,所有流模块驱动程序用于同一个模块并调用同一个函数集---流接口函数。流模块驱动程序把外设抽象化成一个文件,用于标准文件I/O函数和电源管理函数,这些函数由WindowsCE操作系统的内核用于。
流模块驱动程序的入口点函数为:XXX_Init、XXX_Deinit、XXX_IOControl、XXX_Open、XXX_Close、XXX_PowerDown、XXX_PowerUp、XXX_Read、XXX_Seek、XXX_Write。流模块驱动程序函数的起到及调用关系如表格1右图。 表格1WindowsCE粗俗模块驱动程序函数起到及调用关系 流模块驱动程序从设备管理器和通过文件系统调用的应用程序接受命令,取出驱动将这些命令翻译成其所掌控设备的必要操作者的所有信息。
所有的流模块驱动,无论它管理的是内置式设备还是可加装式设备,是系统引领读取还是动态读取,它们与其他的系统组件都有类似于的交互过程。 3.4设备驱动程序的初始化过程 在WindowsCE中,所有的设备驱动程序都以动态链接库(DLL)的形式不存在,必须通过进程读取。
设备驱动程序向外获取接口函数,应用程序用于API对设备展开采访。WindowsCE共计三类系统进程用来读取驱动程序:Device.exe、GWES.exe、FileSys.exe。
驱动程序的初始化过程为:设备上电---启动bootloader---启动NK.exe---启动Device.exe---初始化数据结构和I/O---读取总线枚举器---枚举注册表Driver/BuildIn下所有的子键。这里的枚举就是循环调用ActivateDeviceEx函数读取驱动程序。
本文关键词:新葡萄88805官网,基于,WindowsCE,的,OLED,驱动,程序设计,概要,讲
本文来源:新葡萄88805官网-www.mhbxw.cn