深圳职业技术学院windowsce嵌入式系统开发课程课件设备管理器

上传人:E**** 文档编号:91080555 上传时间:2019-06-21 格式:PPT 页数:22 大小:86KB
返回 下载 相关 举报
深圳职业技术学院windowsce嵌入式系统开发课程课件设备管理器_第1页
第1页 / 共22页
深圳职业技术学院windowsce嵌入式系统开发课程课件设备管理器_第2页
第2页 / 共22页
深圳职业技术学院windowsce嵌入式系统开发课程课件设备管理器_第3页
第3页 / 共22页
深圳职业技术学院windowsce嵌入式系统开发课程课件设备管理器_第4页
第4页 / 共22页
深圳职业技术学院windowsce嵌入式系统开发课程课件设备管理器_第5页
第5页 / 共22页
点击查看更多>>
资源描述

《深圳职业技术学院windowsce嵌入式系统开发课程课件设备管理器》由会员分享,可在线阅读,更多相关《深圳职业技术学院windowsce嵌入式系统开发课程课件设备管理器(22页珍藏版)》请在金锄头文库上搜索。

1、项目8:SD卡读写PDA扩展存储卡的实现 (1),本节课程主要知识点 设备管理器 扩展SD等存储卡,重点和难点,重点 扩展各类存储卡的基本方法 难点 设备管理器 扩展存储卡的基本原理,设备管理器,设备管理器,设备管理器是一个用户态下的进程,而非操作系统内核的一部份。 设备管理器是Windows CE设备管理的核心,负责对所有设备的驱动程序的管理。 虽然不是内核中的进程,但设备管理器在Windows CE中的地位非常重要。,设备管理器组件,设备管理器由 Device.exe 和 Devmgr.dll 组成。Device.exe 包含 Devmgr.dll,后者实现了核心设备管理器功能。 设备管理

2、器的源代码可以在以下目录下看到 C:WINCE500PRIVATEWINCEOSCOREOSDEVICE Device.exe在系统启动时通过如下注册表项加载 HKEY_LOCAL_MACHINEinit “Launch20“=“device.exe“,设备管理器的任务(1),加载驱动程序的DLL文件到Device.exe进程的地址空间内。 系统启动或新设备接入时加载该设备的驱动程序;不需要该设备时,卸载其驱动程序。例如,在用户插入一个SD卡时,设备管理程序就试图寻找该SD卡的驱动程序并加载。,设备管理器的任务(2),统一管理驱动程序,通过读写注册表加载、跟踪驱动程序。 实现并提供用户设备管理

3、的API函数,应用程序可以通过这些函数对设备进行访问。 提供电源管理接口。 提供对I/O资源的管理。,设备的初始化,Windows CE的设备初始化分为两个阶段。 首先是Device.exe的初始化。 其次是外设的枚举和加载。,Device.exe的启动,Windows CE在设备上启动后,操作系统内核NK.exe首先运行,NK会根据注册表项 HKEY_LOCAL_MACHINEinit 依次启动一些程序。 Device.exe启动后,进行自身初始化工作,以完成设备管理功能。,Device.exe的初始化,Device.exe启动后 初始化所用到的一些数据结构。 初始化I/O资源管理器。 初始

4、化电源管理器。 根据注册表的设置,加载BusEnum.dll,让NusEnum.dll负责加载和初始化所有的内置设备。 控制权交给BusEnum,Device.exe任务完成。,BusEnum.dll,BusEnum.dll称为总线枚举器,主要完成外设的枚举和加载。 Windows CE提供了BusEnum.dll的源代码,在如下的文件夹下 C:WINCE500PUBLICCOMMONOAKDRIVERSBUSENUMBUSENUM BusEnum.dll是可重入的。 仔细分析下其源代码。,BusEnum.dll的加载,Device.exe启动后,会在注册表项 HKEY_LOCAL_MACHI

5、NEDriversRootKey 下读取BusEnum.dll。 通常RootKey的值为DriverBuiltIn。 根据RootKey的值,Device.exe会加载总线枚举器BusEnum.dll。 BusEnum.dll加载是通过ActiveDeviceEx函数加载的。,外设的枚举和加载,BusEnum.dll加载后,ActiveDeviceEx函数调用BusEnum.dll的导出函数Init()。 Init()会根据注册表的设置,会遍历 HKEY_LOCAL_MACHINEDriversBuiltIn 下的所有子键,并加载相应的驱动程序。 驱动程序加载后,会根据加载的顺序在注册表子键

6、 HKEY_LOCAL_MACHINEDriversActive 添加一个子键记录已加载的驱动程序。,ActiveDeviceEx函数,ActiveDeviceEx函数对于加载驱动程序非常重要,根据注册表信息加载驱动程序的过程就是由该函数完成的。 卸载驱动是通过DeactiveDevice完成的。 课程中安排有利用该函数加载驱动程序的完整实例。,ActiveDeviceEx函数原型,接口 HANDLE ActivateDeviceEx( LPCWSTR lpzaDevKey, /指向该设备驱动程序在注 册表中的注册键的路径 LPCVOID lpRegEnts, /REGINI结构数组头指针 D

7、WORD cRegEnts, /REGINI结构数组成员个数 LPVOID lpvParam , /通常为NULL ); 返回 当前驱动程序注册的句柄,内置设备与PnP设备,内置设备必须在生成NK.bin前将设备驱动程序的相关信息加入到注册表下 HKEY_LOCAL_MACHINEDriversBuiltIn 以调用BusEnum.dll实现启动系统时加载。 对于即插即用设备( PnP),BusEnum.dll负责在设备接入时,即时加载该设备的驱动程序。,扩展SD等存储卡,扩展SD卡,定制一个内核,BSP基于BVDMAIN,在Available design templates上选择Mobil

8、e Handheld。 添加USB组件 从Catalog-Core OS-Windows CE Devices-Core OS Services-USB Host Support中添加USB Storage Class Driver。 添加FAT组件 从Catalog-Core OS-Windows CE Devices-File Systems and Data Store-Storage Manager中添加FAT File System。,测试SD卡,重新编译内核,生成新的NK.bin。 如果Windows CE识别了SD卡,在根目录下,能看到“已装入的卷”,如果没有找到,请将SD卡拔了,再试着插上,直到找到SD卡。 编写测试程序,尝试对SD卡进行读写。 再插入你的U盘试试?,扩展CF卡,添加块设备组件 查阅手册 添加CF组件 查阅手册,测试CF卡,重新编译内核,生成新的NK.bin。 如果Windows CE识别了CF卡,在我的设备下,能看到“硬盘”的设备,如果没有找到,请将CF卡拔下,再试着插上,直到找到CF卡。 编写测试程序,尝试对CF卡进行读写。,测试硬盘,可以通过设备的IDE接口,用40芯的接口线,接入一个硬盘。 也可以通过USB口,接入一个移动硬盘。 在在我的设备下,能看到“硬盘”的设备。 尝试去拷贝硬盘下的文件。,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号