Windows_CE下驱动程序开发基础_[pic] Windows CE下驱动程序开发基础我想即使读者看过微软的关于驱动开发的培训教材和CE帮助文档中的驱动部分,头脑中仍然一片茫然。要想真正了解驱动程序必须结合一些驱动程序源码,在此我以串口驱动程序(COM16550)中初始化过程为线索简单讲一讲驱动开发的基础知识。 WindowsCE下的串口驱动程序能够处理所有I/O行为类似串口的设备,包括基于16450、16550UART(通用异步收发芯片)的设备和一些采用DMA的设备,常见的有9针串口、红外I/O口、Modem等。在%_WINCEROOT%\Public\Common\OAK\Drivers\Serial目录下,COM_MDD2子目录包含新的串口驱动MDD层函数代码。COM16550子目录包含串口驱动PDD层代码。SER16550子目录包含的一系列函数专用于控制与16550兼容的UART,这样PDD层的主要工作就是调用SER16550中的函数。还有一个ISR16550子目录包含的是串口驱动程序专用的可安装ISR(中断服务例程),而很多硬件设备驱动程序采用CE默认的可安装ISRgiisr.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的设备类型……