因为要用多串口扩展卡,需要更改注册表的设置,我目前的设置如下:
; @CESYSGEN IF CE_MODULES_SERIAL
IF BSP_NOSERIAL !
[HKEY_LOCAL_MACHINE/Drivers/BuiltIn/Serial1]
"SysIntr"=dword:13 ;10H+3
"IoBase"=dword:320 ;串口空间首地址
"IoLen"=dword:8
"DeviceArrayIndex"=dword:0 ;串口索引
"Prefix"="COM"
"IClass"="{CC 5195AC -BA49 -48a 0-BE17-DF6D1B0173DD}"
"Dll"="Com16550.Dll"
"Order"=dword:0
"Priority"=dword:0
; Turn on follows for Installable ISR (isr16550 supporting SOFTWARE FIFO
; "Irq"=dword:3
; "IsrDll"="isr16550.dll"
; "IsrHandler"="ISRHandler"
[HKEY_LOCAL_MACHINE/Drivers/BuiltIn/Serial1/Unimodem]
"Tsp"="Unimodem.dll"
"DeviceType"=dword:0
"FriendlyName"=LOC_FRIENDLYNAME_SERIAL
"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_NOSERIAL !
IF BSP_SERIAL2
[HKEY_LOCAL_MACHINE/Drivers/BuiltIn/Serial2]
"SysIntr"=dword:14
"IoBase"=dword:330
"IoLen"=dword:8
"DeviceArrayIndex"=dword:1
"Prefix"="COM"
"IClass"="{CC 5195AC -BA49 -48a 0-BE17-DF6D1B0173DD}"
"Dll"="Com16550.Dll"
"Order"=dword:0
"Priority"=dword:0
[HKEY_LOCAL_MACHINE/Drivers/BuiltIn/Serial2/Unimodem]
"Tsp"="Unimodem.dll"
"DeviceType"=dword:0
"FriendlyName"=LOC_FRIENDLYNAME_SERIAL2
"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_SERIAL2
IF BSP_SERIAL3
[HKEY_LOCAL_MACHINE/Drivers/BuiltIn/Serial3]
"SysIntr"=dword:15
"IoBase"=dword:340
"IoLen"=dword:8
"DeviceArrayIndex"=dword:2
"Prefix"="COM"
"IClass"="{CC 5195AC -BA49 -48a 0-BE17-DF6D1B0173DD}"
"Dll"="Com16550.Dll"
"Order"=dword:0
"Priority"=dword:0
[HKEY_LOCAL_MACHINE/Drivers/BuiltIn/Serial3/Unimodem]
"Tsp"="Unimodem.dll"
"DeviceType"=dword:0
"FriendlyName"=LOC_FRIENDLYNAME_SERIAL3
"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_SERIAL3
IF BSP_SERIAL4
[HKEY_LOCAL_MACHINE/Drivers/BuiltIn/Serial4]
"SysIntr"=dword:16
"IoBase"=dword:280
"IoLen"=dword:8
"DeviceArrayIndex"=dword:3
"Prefix"="COM"
"IClass"="{CC 5195AC -BA49 -48a 0-BE17-DF6D1B0173DD}"
"Dll"="Com16550.Dll"
"Order"=dword:0
"Priority"=dword:0
[HKEY_LOCAL_MACHINE/Drivers/BuiltIn/Serial4/Unimodem]
"Tsp"="Unimodem.dll"
"DeviceType"=dword:0
"FriendlyName"="Serial Cable on COM4:"
"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
IF BSP_SERIAL5
[HKEY_LOCAL_MACHINE/Drivers/BuiltIn/Serial5]
"SysIntr"=dword:17
"IoBase"=dword:290
"IoLen"=dword:8
"DeviceArrayIndex"=dword:4
"Prefix"="COM"
"IClass"="{CC 5195AC -BA49 -48a 0-BE17-DF6D1B0173DD}"
"Dll"="Com16550.Dll"
"Order"=dword:0
"Priority"=dword:0
[HKEY_LOCAL_MACHINE/Drivers/BuiltIn/Serial5/Unimodem]
"Tsp"="Unimodem.dll"
"DeviceType"=dword:0
"FriendlyName"="Serial Cable on COM5:"
"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_SERIAL5
IF BSP_SERIAL6
[HKEY_LOCAL_MACHINE/Drivers/BuiltIn/Serial6]
"SysIntr"=dword:19
"IoBase"=dword: 2A 0
"IoLen"=dword:8
"DeviceArrayIndex"=dword:5
"Prefix"="COM"
"IClass"="{CC 5195AC -BA49 -48a 0-BE17-DF6D1B0173DD}"
"Dll"="Com16550.Dll"
"Order"=dword:0
"Priority"=dword:0
[HKEY_LOCAL_MACHINE/Drivers/BuiltIn/Serial6/Unimodem]
"Tsp"="Unimodem.dll"
"DeviceType"=dword:0
"FriendlyName"="Serial Cable on COM6:"
"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_SERIAL6
IF BSP_SERIAL7
[HKEY_LOCAL_MACHINE/Drivers/BuiltIn/Serial7]
"SysIntr"=dword:1b
"IoBase"=dword:238
"IoLen"=dword:8
"DeviceArrayIndex"=dword:6
"Prefix"="COM"
"IClass"="{CC 5195AC -BA49 -48a 0-BE17-DF6D1B0173DD}"
"Dll"="Com16550.Dll"
"Order"=dword:0
"Priority"=dword:0
[HKEY_LOCAL_MACHINE/Drivers/BuiltIn/Serial7/Unimodem]
"Tsp"="Unimodem.dll"
"DeviceType"=dword:0
"FriendlyName"="Serial Cable on COM7:"
"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_SERIAL7
IF BSP_SERIAL8
[HKEY_LOCAL_MACHINE/Drivers/BuiltIn/Serial8]
"SysIntr"=dword: 1c
"IoBase"=dword:230
"IoLen"=dword:8
"DeviceArrayIndex"=dword:7
"Prefix"="COM"
"IClass"="{CC 5195AC -BA49 -48a 0-BE17-DF6D1B0173DD}"
"Dll"="Com16550.Dll"
"Order"=dword:0
"Priority"=dword:0
[HKEY_LOCAL_MACHINE/Drivers/BuiltIn/Serial8/Unimodem]
"Tsp"="Unimodem.dll"
"DeviceType"=dword:0
"FriendlyName"="Serial Cable on COM8:"
"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_SERIAL8
; @CESYSGEN ENDIF CE_MODULES_SERIAL
另外在cepc.bat添加环境变量BSP_SERIAL4,BSP_SERIAL5,BSP_SERIAL6,BSP_SERIAL7,BSP_SERIAL8,前三个串口在catalog已经添加了。
目前存在的问题是上面的设置只有5个能用,其中用到5、6、11这三个中断号的串口都不能收数据,想了几天也没有结果。还有一个问题就是我用中断号10的时候系统启动后发现注册表BuiltIn/active下跟中断10对应的串口没有加载,直接对应到下一个串口了,这个也一直没想明白,不知这个中断号是不是被其他设备占用了。希望哪位知道可以告诉我,谢谢!