T03.设备驱动开发__.ppt

  1. 1、本文档共51页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
T03.设备驱动开发__.ppt

Agenda WinCE驱动介绍 本机驱动程序 流接口驱动程序 内置驱动 可安装的驱动 需要时加载的驱动 如何安装驱动 中断处理 驱动程序模型 驱动程序的内存管理 设备管理程序 WinCE驱动介绍 所有驱动都是动态链接库 驱动实现中可以调用所有标准的API 本机驱动程序 用于低级、内置设备 提供一组定制的接口 可通过移植、定制微软提供的驱动样例来实现 Display, Battery, Keyboard, Touch, LED 本机驱动模型 单片驱动程序 直接将硬件设备的功能传递给操作系统 分层驱动程序 模型设备驱动程序(MDD) 依赖平台的设备驱动程序(PDD) 流接口驱动程序 基本的设备驱动类型 实现一组固定的流接口函数 所有的CE设备皆可使用此模型实现 流接口驱动程序由设备管理程序的特殊应用程序加载、管理和卸载、与具有单独目的接口的内部设备驱动程序相比.所有流接口驱动程序使用同一个接口并调用同一个函数集——流接口函数 流接口驱动程序的主要任务是把外设的使用传递给应用程序,这是通过把设备表示为文件系统的一个特殊文件实现 内置驱动 可以都是本机驱动 系统启动后由GWES加载 使用定制接口 一般用于在系统启动时必须加载的驱动 Keyboard Mouse Touch Screen Display Battery Notification LED 可安装的驱动 一般指流接口驱动 由设备管理器在系统启动或者插入动态时加载 使用流接口驱动架构 混合驱动 支持流接口和用户定义接口 一般包括 本机驱动:PCMCIA Host Controller;USB Host Controller driver;NDIS.DLL 流接口驱动:Audio driver;Serial port driver; Parallel port driver;Port Monitor 需要时加载的驱动 PC Card Client drivers USB Client drivers NDIS Miniport drivers 如何安装驱动程序 本机驱动 连接CE设备 把驱动DLL拷贝到\Windows目录 设置注册表键值 流接口驱动 与基于Windows CE的平合连接.或检测到连接 把流接口驱动DLL拷贝到\WINDOWS目录下 如果需要的话 为驱动程序建立注册键和注册值 中断处理 介绍 中断模型 中断处理相关的函数 典型的IST 中断ID 处理一个中断 介绍 中断服务例程 内核模式的中断服务例程(ISR) 短小的汇编语言代码 返回中断号给内核 用户模式的中断服务例程(ISP) 接收中断通知,并进行中断的处理 256个优先级, 0最高 高优先级的ISR和IST可以中断低优先级的ISR和IST 四个范围 0-96:高优先级实时任务 97-152:缺省的CE驱动 153-247:比普通的用户级任务高的任务 248-255:非实时的用户应用 中断模型 中断模型(Continued) 中断模型(Continued) 该图的最低层为硬件和中断控制器的状态。次低层是中断服务过程中的内核交互。OAL 描述了BSP 的职责。最顶层阐述了中断服务所需的应用程序或驱动程序线程交互。 过程 生成了一个异常-处理器加载内核 ISR 向量-禁用所有处理器上的所有具有相同和较低优先级的中断-特定中断注册的 OAL ISR-直接处理/遍历-执行ISR-返回该设备的名为 SYSINTR 的映射中断-驱动程序或应用程序的 IST 运行 -InterruptDone( ) 通知完成-重新启用指定的中断 中断处理相关的函数 OEMInterruptEnable() 允许设备产生特定的中断 OEMInterruptDisable() 禁止特定的硬件中断 OEMInterruptDone() 中断处理完成的信号 OEMInterruptHandler() 当中断发生时由内核调用 InterruptInitialize () 内核初始化硬件中断。 允许设备驱动注册一个事件并使能中断。 WaitForSingleObject() CreateEvent () 典型的IST struct ISTData // Declare the Strucure to pass to the IST { HANDLE hThread; // IST Handle DWORD sysIntr; // Logical ID HANDLE hEvent; // handle to the event to wait for interrupt volatile BOOL abort; // flag to test to exit the I

文档评论(0)

2752433145 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档