怎样配置ISA多串口卡的驱动

 

    在需要扩充有限的串口情况下,可以利用ISA多串口卡作为实施方案,这样可以避免重新编写驱动程序和为只有卡而没有BSP开发包苦恼。当然,这种方法也有不足的地方,就是一般不能共享中断,资源有限,限制不能扩展比较多的串口。在PB中,自带了一个本机样本串口驱动程序,利用该驱动能够配置3个串口,除去用着调试用的串口(3F8H),分别为(2F8H,3E8H,2E8H),一般主板支持2个串口,另外一个就必须另外添加硬件来满足。

     如果还想配置一个串口使用,又不想更改(3F8H)的作用,可以找一个ISA多串口卡,要求该卡可以通过调线自动选择除去这四个地址外的地址,例如250H,中断也可以通过跳线选择。一般IRQ3、IRQ4分配给了2F8H、3E8H,IRQ5分配给2E8H。这样第四个串口可以选择250H、IRQ7作为硬件资源。

     在PB中需要作如下修改:

 1、在工程设置中添加编译环境信息:

Variable value
BSP_SERIAL4  1

 2、在platform.reg修改注册表两处:

[HKEY_LOCAL_MACHINE/Drivers/Resources/IO]
"Identifier"=dword:2
"Minimum"=dword:0
"Space"=dword:10000
IF BSP_NOSERIAL
"Ranges"="0-0x5F,0x65-0x277,0x284-0x38F,0x392-0x3DF,0x3E2-0xFFFF"
ENDIF ; BSP_NOSERIAL
IF BSP_NOSERIAL !
"Ranges"="0-0x5F,0x65-0x277,0x284-0x2F7,0x300-0x38F,0x392-0x3DF,0x3E2-0xFFFF"
ENDIF ; BSP_NOSERIAL !
IF BSP_SERIAL2
"Ranges"="0-0x5F,0x65-0x277,0x284-0x2F7,0x300-0x38F,0x392-0x3DF,0x3E2-0x3E7,0x3F0-0xFFFF"
ENDIF ; BSP_SERIAL2
IF BSP_SERIAL3
"Ranges"="0-0x5F,0x65-0x277,0x284-0x2E7,0x2F0-0x2F7,0x300-0x38F,0x392-0x3DF,0x3E2-0x3E7,0x3F0-0xFFFF"
ENDIF ; BSP_SERIAL3
IF BSP_SERIAL4
"Ranges"="0-0x5F,0x65-0x277,0x284-0x2E7,0x2F0-0x2F7,0x300-0x38F,0x392-0x3DF,0x3E2-0x3E7,0x3F0-0xFFFF"
ENDIF ; BSP_SERIAL4

 

 

IF BSP_SERIAL4
[HKEY_LOCAL_MACHINE/Drivers/BuiltIn/Serial4]
"SysIntr"=dword:17
"IoBase"=dword:0250
"IoLen"=dword:8
"DeviceArrayIndex"=dword:2
"Prefix"="COM"
"Dll"="Com16550.Dll"
"Order"=dword:0

[HKEY_LOCAL_MACHINE/Drivers/BuiltIn/Serial4/Unimodem]
"Tsp"="Unimodem.dll"
"DeviceType"=dword:0
"FriendlyName"=LOC_FRIENDLYNAME_SERIAL4
"DevConfig"=hex: 10,00, 00,00, 05,00,00,00, 10,01,00,00, 00,4B,00,00, 00,00, 08, 00, 00, 00,00,00,00
ENDIF BSP_SERIAL4

     至于注册表中的各项信息的含义可参考Windows CE下驱动程序开发基础

 3、在intltrns文件夹中的cepc.str添加如下信息:

//------------------------------------------------------------------------------
// [HKEY_LOCAL_MACHINE/Drivers/BuiltIn/Serial4]
#define LOC_FRIENDLYNAME_SERIAL4 "COM4 上的串行电缆:"

    然后重新编译,就OK了!

你可能感兴趣的:(WinCE学习)