欢迎来到天天文库
浏览记录
ID:22378509
大小:60.00 KB
页数:6页
时间:2018-10-28
《wince流设备驱动简介及gpio驱动的实现》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、WinCE流设备驱动简介及GPIO驱动的实现 流设备驱动实际上就是导出标准的流接口函数的驱动,这是文档上面的定义。在anager可以加载和管理这些流设备驱动。 流设备驱动的架构如图: 首先我声明一下,这个图是我抄的,呵呵。在anager模块,他会负责流设备的加载,卸载和交互操作。这个从图中可以看出的。 再来说说应用程序,一般应用程序要通过文件系统接口来访问设备。首先调用CreateFile打开设备并获得相应的句柄,然后通过文件系统接口调用ReadFile或者anager才能访问到相应的设备驱动,如上图。 不知道上面的架构解释清楚了没
2、有,下面介绍一下流设备驱动的接口函数: 1. Dount:移动的字节数 Type:FILE_BEGIN表示从头移动 FILE_CURRENT表示从当前位置移动 FILE_END表示从末尾往前移动 8.voidXXX_PowerUp(DWORDhOpenContext): 打开设备电源。 hDeviceContext:设备驱动的句柄,在XXX_Open调用时返回的 9.voidXXX_PowerDown(DWORDhOpenContext): 关闭设备电源。 hDeviceContext:设备驱动的句柄,在XXX_Open
3、调用时返回的 10.BOOLXXX_IOControl(DWORDhOpenContext,DWORDdwCode,PBYTEpBufIn,DWORDdwLenIn,PBYTEpBufOut,DWORDdwLenOut,PDWORDpdwActualOut): 设备IO控制操作函数。 hDeviceContext:设备驱动的句柄,在XXX_Open调用时返回的 dwCode:操作码 pBufIn:输入Buffer dwLenIn:输入Buffer的size pBufOut:输出Buffer dwLenOut:输出Buffer的
4、size pdwActualOut:实际输出的字节数 11.BOOLXXX_PreClose(DWORDhOpenContext): 标记一个正要关闭的句柄为无效,并唤醒所有正在休眠的线程 hDeviceContext:设备驱动的句柄,在XXX_Init调用时返回的 12.BOOLXXX_PreDeinit(DWORDhDeviceContext): 标记一个设备实例为无效,并唤醒所有休眠的线程 hDeviceContext:设备驱动的句柄,在XXX_Init调用时返回的 上面这些函数就是流设备驱动的所有接口函数,理解起来应该
5、不难。下面介绍一个实际的流设备驱动的例子,是基于WinCE6.0的(和WinCE5.0比一些配置文件稍有不同)。这里介绍的是一个操作GPIO的流设备驱动并介绍具体添加流设备驱动的步骤:123下一页——感谢阅读这篇文章,..,(1)更改BSP工程文件,添加GPIO驱动的选项: 在BSP目录下面的CATALOG文件夹下面找到BspName.pbcxml并用记事本打开,然后添加GPIO驱动的选项,首先找到<BSP></BSP>并在里面添加下面一行: <BspItemId>Item:CirrusLogic:bs
6、p_ep94xx_gpio_ep9407_EP94xx</BspItemId> 然后在<CatalogFile></CatalogFile>中添加下面的驱动描述:<ItemId=Item:CirrusLogic:bsp_ep94xx_gpio_ep9407_EP94xx> <Title>GPIO</Title> <Description>GPIODriver</Description> <Type>BspSpe
7、cific</Type> <Variable>BSP_EP94XX_GPIO</Variable> <Location>DeviceDrivers</Location> <SourceCode> <Title>$(_EP94XXSRCDRIVERSgpio</Title> <Path>$(_EP94XXSRCDRIVERSgpio</Path> </Sourc
8、eCode> </Item> 上面实际上添加了GPIO驱动,环境变量为BSP_EP94XX_GPIO,源代码位于路径PlatformEP94
此文档下载收益归作者所有