当前位置:
文档之家› 第十三讲 驱动程序概述及模型.
第十三讲 驱动程序概述及模型.
键盘驱动 触摸屏驱动 打印机驱动 显示驱动
文件系统驱动
2018/10/11
Device.exe在Windows
CE中称做设备管理器。 负责加载和管理Windows CE下绝大多数的设备 驱动程序,包括网卡驱动、电池驱动、声卡驱 动、串口驱动、USB设备驱动及PCMCIA驱动 等; GWES.exe通常是一些与图形界面相关的I/O设 备驱动。例如鼠标键盘驱动、显卡的驱动及触 摸屏驱动等。 FileSys.exe在系统中负责管理Windows CE中的 对象存储和文件系统。故FileSys.exe须负责加 载所有的文件系统驱动程序。如FAT文件系统驱 动和CDFS文件系统驱动等。
5.2.3.2
分层驱动程序
分两层:上面一层是模型设备驱动(Model Device Driver,MDD),下面一层是平台相关驱动(Platform Dependence Driver,PDD) MDD层包含某一类型的驱动程序所通用的代码;PDD 层包含特定的硬件或平台专用的代码。 操作系统访问硬件时,MDD层会调用特定的PDD函数 PB会自带某类型驱动的MDD代码,无须修改;只须修 改PDD层的代码。
5.1.2 何时编写驱动程序
操作系统没有内置支持的硬件
扩展已有驱动的功能 提供软件层面的服务
伪驱动(Pseudo Driver):所谓的伪驱动,就是不是 真正意义上的驱动;而挂着驱动的名号,却又是因为和 底层驱动有着千丝万缕的联系.
5.1.3 驱动程序模型
为简化驱动程序的编写,把驱动程序分层 提取某一类外设的共性,作为独立的一层,并
了解驱动程序的模型
不同的操作系统会提供不同的驱动模型
北京理工大学珠海学院 计算机教研室 8
2018/10/11
5.2 Windows CE驱动程序
5.2.1 Windows CE驱动程序开发简介
驱动程序的两种形式
.LIB库文件,随操作系统的启动和关闭进行加载和 卸载; 操作系统启动后对硬件进行延迟加载。
第五章 驱动程序设计
2018/10/11
北京理工大学珠海学院 计算机教研室
1
教学目的
Windows CE5.0驱动程序设计的基本概念; 掌握Windows CE5.0动态链接库的编制方
法;掌握Windows CE5.0动态链接库的静
态加载方法
2018/10/11
北京理工大学珠海学院 计算机教研室
Windows
ห้องสมุดไป่ตู้
CE的所有驱动程序都以用户态下的 DLL文件形式存在,运行在用户态。
2018/10/11
北京理工大学珠海学院 计算机教研室
9
驱动程序作为用户态DLL的优点:
给操作系统和驱动程序带来了很大的灵活性,动态 加载所需的驱动程序,可实现外设的即插即用; 增强系统的稳定性; 给驱动开发人员提供便利。
驱动程序 接口
2018/10/11 北京理工大学珠海学院 计算机教研室 5
应用程序
Send()
系统调用
操作系统 SendPackage() 网卡驱动程序1 网卡驱动程序2 MySendPackage2() 网卡2
驱动程序接口
MySendPackage1() 网卡1
硬件操作
图5.1 驱动程序模型
2018/10/11 北京理工大学珠海学院 计算机教研室 6
2
项目9:驱动程序的编制 本节课程主要知识点
驱动程序模型 动态链接库 动态链接库的特点与实现(重点) 动态链接库的加载 动态链接库的静态加载(难点)
2018/10/11
北京理工大学珠海学院 计算机教研室
3
教学重点
驱动程序的基本概念 动态链接库
教学难点
动态链接库的编制及静态加载方法
5.2.2 Windows CE驱动程序的宿主
DLL无法单独被加载和运行,必须先有一个
EXE进程将DLL加载到自己的地址空间 Windows CE中有3个系统进程会加载和执行驱 动程序的DLL,分别是Device.exe, GWES.exe,FileSys.exe
2018/10/11 北京理工大学珠海学院 计算机教研室 10
2018/10/11 北京理工大学珠海学院 计算机教研室 14
2018/10/11
北京理工大学珠海学院 计算机教研室
4
5.1驱动程序基本知识
5.1.1 驱动程序的功能
驱动程序是操作系统与硬件交互的方式,是连
接硬件与操作系统之间的桥梁; 独立的“黑盒子”,定义好的编程接口,隐藏 设备工作的细节; 驱动程序的作用是实现这组接口,并映射到具 体的对硬件的某项操作上。
单体驱动程序
即所有的驱动程序代码(包括中断处理、I/O操作及硬 驱动程序代码相对紧凑, 件控制等)都被放在一起。 对于效率要求较高的场 会暴露DDI接口(Device合,可以选择。同时此 Driver Interface)给操作系统。 模型相对清晰 DDI函数是操作系统与驱动程序交互的接口协议。
Device.exe
GWES.exe
FileSys.exe
鼠标驱动 网卡 电池 声卡 串口 NLED USB HOST HID ATADisk Printer SerCard rNDIS Mass Storage 图5.2 系统进程与其加载的驱动程序
北京理工大学珠海学院 计算机教研室 11
PCMCIA Host
提供通用的代码和库
2018/10/11 北京理工大学珠海学院 计算机教研室 7
5.1.4 编写驱动程序的几个要素
了解驱动程序所针对的硬件(Datasheet) 了解目标操作系统下驱动的工作机制
驱动程序的加载和卸载; 驱动程序的初始化工作; 外设I/O的访问; 中断的处理; DMA的处理; 内存的使用以及异步操作的进行方式等。
2018/10/11 北京理工大学珠海学院 计算机教研室 12
5.2.3 分层驱动程序与单体驱动程序
GWES
DDI函数
DDI函数
分层驱动程序 MDD DDSI函数 PDD
单体驱动程序
硬件
图5.3 单体驱动程序与分层驱动程序
2018/10/11 北京理工大学珠海学院 计算机教研室 13
5.2.3.1