求大师,vxWorks6.9 I7板子串口3、4(ns16550)中断与其他设备冲突
打赤脚的娃 2018-01-13 10:50:18 I7主板,在BISO下看的串口3、4中断是11和10,在pc.h里将串口3、4中断配置为0x0b和0x0a后出现网络和硬盘都无法正常启动了,不初始化串口3、4或者配置成其他中断时网络和硬盘是正常的。并且任何情况下串口3、4均不可用。求解u
修改如下:
pc.h
#define COM3_INT_LVL 0x0b
#define COM4_INT_LVL 0x0a
#define N_UART_CHANNELS 4
hwconf.h
..............
+const struct hcfResource pentiumi82503Resources[] =
+ {
+ { "regBase", HCF_RES_INT, {(void *)COM3_BASE_ADR} },
+ { "irq", HCF_RES_INT, {(void *)(INUM_TO_IVEC(INT_NUM_COM3))} },
+ { "regInterval", HCF_RES_INT, {(void *)UART_REG_ADDR_INTERVAL} },
+ { "irqLevel", HCF_RES_INT, {(void *)COM3_INT_LVL} },
+ { "clkFreq", HCF_RES_INT, {(void *)PCI_CLK_FREQ} },
+ { "fifoLen", HCF_RES_INT, {(void *)8} }
+ };
+#define pentiumi82503Num NELEMENTS(pentiumi82503Resources)
+
+const struct hcfResource pentiumi82504Resources[] =
+ {
+ { "regBase", HCF_RES_INT, {(void *)COM4_BASE_ADR} },
+ { "irq", HCF_RES_INT, {(void *)(INUM_TO_IVEC(INT_NUM_COM4))} },
+ { "regInterval", HCF_RES_INT, {(void *)UART_REG_ADDR_INTERVAL} },
+ { "irqLevel", HCF_RES_INT, {(void *)COM4_INT_LVL} },
+ { "clkFreq", HCF_RES_INT, {(void *)PCI_CLK_FREQ} },
+ { "fifoLen", HCF_RES_INT, {(void *)8} }
+ };
+#define pentiumi82504Num NELEMENTS(pentiumi82504Resources)
..........
const struct hcfDevice hcfDeviceList[] = {
.........
#ifdef DRV_SIO_NS16550
{ "ns16550", 0, VXB_BUSID_PLB, 0, pentiumi82501Num, pentiumi82501Resources },
{ "ns16550", 1, VXB_BUSID_PLB, 0, pentiumi82502Num, pentiumi82502Resources },
+ { "ns16550", 2, VXB_BUSID_PLB, 0, pentiumi82503Num, pentiumi82503Resources },
+ { "ns16550", 3, VXB_BUSID_PLB, 0, pentiumi82504Num, pentiumi82504Resources },
#endif /* DRV_SIO_NS16550 */
..........
}