- 1、本文档共100页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
《 第八章WinCE设备驱动开发终稿.ppt
嵌入式系统开发应用基础 李 登 峰 内置驱动程序的模型 图中,内置驱动程序可以采用单层和分层结构来编写,图中最顶端的是GWES它负责直接加载内置驱动程序,不是通过设备管理器加载的。 流接口的设备驱动模型 图中,流接口驱动可以分为单层或分层模型实现,它们都通过设备管理器加载的。所有驱动的管理、设备管理都是流驱动和实现所需的流驱动接口。 设备管理器在第五章已经详细介绍过,这里再提一下设备的初始化过程: (1)当系统冷启动后,首先运行操作系统内核NK.exe; (2)NK.EXE根据注册表[HKEY_LOCAL_MACHINE\init]下的内容陆续启动一些其它的进程,此时Device.exe进程被启动; (3)Device.exe进程被启动后,进行一系列自身的初始化工作,按照顺序会先初始化本身的一些数据结构,再初始化I/O资源管理器和电源管理器,以便完成设备管理功能 (4)Device.exe根据注册表的设置,加载BusEnum.Dll,Device.exe本身的初始化结束。 (5)Device.exe在注册表[HKEY_LOCAL_MACHINE\Driver\RootKey]下读取总线枚举器的位置。 (6)根据RootKey的值,Device.exe会加载总线枚举器。 (7)BusEnum.dll中的Init函数会遍历[HKEY_LOCAL_MACHINE\Driver\BuiltIn]下的每一个子键。并读取这些子键下的注册信息,并加载驱动程序。 (8)设备初始化结束。 在第(7)步中,Init函数读取这些子键的信息而后加载驱 动,那么这些子键的注册信息都代表什么意义,这里有一个 简单的例子: [HKEY_LOCAL_MACHINE\Drivers\BuiltIn\LED] Dll = Led.dll Prefix=LED Index = dword:1 Order = dword:0 FriendlyName = LED Driver “DLL”=”Led.dll”:表示此驱动程序编译后为Led.dll。 Prefix=LED:设备名称的前缀,它表明Led.dll的导出函 数命名是以LED开头的,如LED_Init()等。 Index = dword:1:指定驱动程序的索引,这里等 于1,说明在使用CreateFile()函数打开程序时,第一个参数 为LED1(即设备的名称)。Prefix项与Index项组成了设备的 名称,在第五章设备管理里关于设备名称管理相关内容中有 介绍。Order = dword:0:驱动的加载顺序,数字越小则越 早被加载,它有助于解决驱动之间的依赖关系。 FriendlyName = LED Driver:顾名思义,它是一个更友 好的名称,帮助使用者更好地理解驱动的作用。 以上列出的项不是必须选项,某些驱动不必包含所有项,另 外,某些功能更多的驱动还会有更多的表项来进行配置。 1)使用CEDDK函数 流接口驱动函数 在上一节中,我们讲了有关WinCE设备驱动的知识,最后还详细讲解了流接口驱动的开发,那么这一节我们就在实验板上实际开发一个流接口驱动,通过动手开发驱动来真正掌握流接口驱动的开发。 第一小节介绍对板上GPIO一个引脚开发一个驱动程序; 第二小节介绍开发一个连接在GPIO上的设备的驱动;最后一节则为综合实例,利用前面两节开发的驱动完成一个温度控制系统。 通过这样的学习步骤,全面掌握流接口驱动的开发和应用。 DS18B20可以从VDD供电,也可直接从数据线DQ供电,因此VDD为可选的电源引脚,它的测温范围为-55℃ ~ +125℃,在-10℃ ~ +85℃范围内它的精度为±0.5℃。典型温度转换时间为200ms。它的温度分辨率可编程确定为9~12位,上电默认为12位。12位分辨率时其数据格式如表所示: 12位分辨率时其数据格式 DS18B20接线图 BOOL GPF_Deinit(DWORD hDeviceContext) { BOOL bRet = TRUE; RETAILMSG(1,(TEXT(USERGPF: GPF_Deinit\r\n))); return TRUE; } BOOL GPFGpioInit() { RETAILMSG(1,(TEXT(GPF_Gpio_Setting\r\n))); //设定GPF0为输出 s2440IOP-rGPFCON = (s2440IOP-rGPFCON ~(3 0)) | (10); return TRUE; } DWORD GPF_Init(DWORD dwContext) { RETAILMSG(1,(TEXT(GPF_Init\r\n))); Virtual
您可能关注的文档
- 尿毒清载药血清对内皮细胞氧化应激和凝血纤溶影响.ppt
- 荷载与结构设计_受弯构件.ppt
- 第章“类与对象”c++课件.ppt
- C与数据结构_第次课--绪论.ppt
- 第二部分__企业各种能力分析.ppt
- 翻译在广告中应用Translation_on_Ads.ppt
- 年_品质_经营战略_中文.pptx
- 实验-几种ls系列集成电路逻缉功能验证.ppt
- 超高层酒店测量技术.ppt
- 京东商城与当当网的对比.ppt
- Unit 4 Section B 3a-self check(课件)八年级英语下册(人教版).pptx
- 医院培训课件:《食管癌护理查房》.pptx
- Unit 5 Topic 3 Section B(课件)八年级英语下册(仁爱版).pptx
- 五年级 语文 下册 第二单元 第2课《草船借箭》课件 (第1课时).pptx
- 五年级 语文 下册 第一单元《古诗三首》之《四时田园杂兴》(其三十一)课件.pptx
- Unit 14 Section A 3a-3c 阅读课 九年级英语全一册课件(人教版新目标).pptx
- 五年级 语文 下册《景阳冈》课件 (第1课时).pptx
- 五年级 语文 下册《金字塔》课件 (第1课时).pptx
- 变电站值班员考试题库_解释题.docx
- 清华实用新型发明外观设计500 cns.pdf
文档评论(0)