新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > 基于WinCE的OLED驱动程序设计

基于WinCE的OLED驱动程序设计

作者: 时间:2015-04-22 来源:网络 收藏

  3.3 流接口驱动程序

本文引用地址://m.amcfsurvey.com/article/273004.htm

  流接口驱动程序由设备管理应用程序加载、管理和卸载, 与具有单独目的接口的本机驱动程序相比, 所有流接口驱动程序使用同一个接口并调用同一个函数集---流接口函数。流接口驱动程序把外设抽象成一个文件, 使用标准文件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 下流接口驱动程序函数作用及调用关系

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

  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 显示模块的驱动程序为例, 具体阐述Windows CE 驱动开发的过程。

  4.1 硬件结构

  系统硬件以飞凌OK6410-B 开发板为主板, 以维信诺VGG13264C 显示模块为 显示屏。系统硬件框图如图4 所示。

  

 

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

  维信诺VGG13264C 是132 列×64 行点阵的 单色、字符、图形显示模块, 使用单芯片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 函数中实现, 函数部分代码如下:

  

 

  (2) 向外提供函数接口

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

  

 

  (3) 注册表配置。

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

  [HKEY_LOCAL_MACHINEDriversBuiltInIoControler]

  "Prefix "="OED"

  "Dll "="OED.dll "

  "Index "=dword:0

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

逆变器相关文章:逆变器原理


可控硅相关文章:可控硅工作原理


逆变器相关文章:逆变器工作原理


比较器相关文章:比较器工作原理



上一页 1 2 下一页

关键词: WinCE OLED

评论


相关推荐

技术专区

关闭