Windows CE下驱动开发基础(1)
Windows CE下的串口驱动程序能够处理所有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的设备类型 |
"DevConfig"=hex: 10,00 .... | 串口1在与Modem设备通讯时的配置,如波特率、奇偶校检等 |
"FriendlyName"="COM1:" | 串口1在拨号程序中显示的名字 |
"Tsp"="Unimodem.dll" | 串口1 被用于与Modem设备通讯的时候要加载的TSP(TAPI Service provider)DLL |
"Prefix"="COM" | 串口1的流接口的前缀 |
"Dll"="com16550.Dll" | 串口1的驱动程序DLL |