资料介绍
Windows_CE下驱动程序开发基础_
[pic] Windows CE下驱动程序开发基础
我想即使读者看过微软的关于驱动开发的培训教材和CE帮助文档中的驱动部分,头脑中
仍然一片茫然。要想真正了解驱动程序必须结合一些驱动程序源码,在此我以串口驱动
程序(COM16550)中初始化过程为线索简单讲一讲驱动开发的基础知识。
WindowsCE下的串口驱动程序能够处理所有I/O行为类似串口的设备,包括基于16450、
16550
UART(通用异步收发芯片)的设备和一些采用DMA的设备,常见的有9针串口、红外I/O口、
Modem等。在%_WINCEROOT%\Public
\Common\OAK\Drivers\Serial目录下,COM_MDD2子目录包含新的串口驱动MDD层函数代码
。COM16550子目录包含串
口驱动PDD层代码。SER16550子目录包含的一系列函数专用于控制与16550兼容的UART,
这样PDD层的主要工作就是调用SER16550中
的函数。还有一个ISR16550子目录包含的是串口驱动程序专用的可安装ISR(中断服务例
程),而很多硬件设备驱动程序采用CE默认的可安装ISR
giisr.dll。一般串口设备相应的注册表设置例子及意义如下:
以下是引用片段:
[HKEY_LOCAL_MACHINE\Drivers\BuiltIn\Serial_1]
"SysIntr"=dword:13 串口1的中断ID为十进制13
"IoBase"=dword:02F8 串口1的IO空间首地址为十六进制2F8
"IoLen"=dword:8 串口1的IO空间长度为8个字节
"DeviceArrayIndex"=dword:0 串口1的索引,是1的由来
"Order"=dword:0 串口1驱动的加载顺序
"DeviceType"=dword:0 串口1的设备类型