请教:QNX是否支持多串口板的中断共享

各位大侠:
小弟现在做一个数据采集系统,需要13个串口,采用了美国RTD公司的IDAN-CM310多串口板(该板说明书上说支持中断共享),但是,我在调试过程中(已经正确加载了驱动devc-ser8250),发现有时候某个串口只能收不能发,有时候该串口只能发不能收,有时候收发都不能,我已经排除中断冲突(用中断共享)的问题,请各位大侠指教。

你是用一个 devc-ser8250来支持13个串口的吗?你的命令行是什么样子的?

可以试试用几个devc-ser8250分别支持不同的串口。

单块的IDAN-CM310共有4 个 16C550 RS232/422/485 串行端口,支持中断共享,为了达到我的使用需求,我用了3块IDAN-CM310,命令行如下:
devc-ser8250 -u3 3e8,15 -u4 2e8,15 -u5 280,15 -u6 288,15
devc-ser8250 -u7 290,7 -u8 298,7 -u9 2A0,7 -u10 2A8,7
devc-ser8250 -u11 100,9 -u12 108,9 -u13 110,9 -u14 118,9
我能确认,各串口的基地址都没有问题,15、7、9三个中断号在我的系统中也没被占用。
在rc.local中加入以下命令行后,打开/dev,系统能正常加载串口。但是,当用ps -ef|more,我发现,系统会出现两种情况:
(1)有的时候系统能自己找到com3和com4.也就是说,会出现:
devc-ser8250 -u3 3e8,15 -u4 2e8,15
devc-ser8250 -u3 3e8,15 -u4 2e8,15 -u5 280,15 -u6 288,15
devc-ser8250 -u7 290,7 -u8 298,7 -u9 2A0,7 -u10 2A8,7
devc-ser8250 -u11 100,9 -u12 108,9 -u13 110,9 -u14 118,9
这时,系统多半不能正常工作(也有正常工作的时候,但很快就变得不正常)。
(2)系统自己找不到com3和com4时
这时,我统计,系统正常工作的时间要长于以上情况。
这里面究竟出了什么问题,请xTang 指教。

我没理解 "系统能自己找到com3和com4“ 以及 ”找不到“的区别。

你那三行命令,启动后就会生成 /dev/ser3 … /dev/ser14 这样12个串口。你是说有的时候 /dev/ser3, /dev/ser4 没有出现?

如果开机,启动所有串口,但不跑程序,系统会死吗?
如果不启动 3,4,5,6 那块卡(把它拔了),系统会死吗?

我的意思是:只是插入3块多串口板,但在rc.local里面不添加任何命令语句,然后启动系统,会出现两种情况:(1)系统在启动的过程中有时候能够并且只能够自动检测到离CPU最近的那块串口板上的前两个串口,并加载为com3和com4;(2)更多的时候3块多串口板上的串口在系统启动的过程中都不能够被系统自动检测到。
这样,当在rc.local里面加入我的3个命令语句后,如果遇到第一种情况,com3和COM4分别被系统自动加载了1遍和我的命令语句加载了1遍,也即加载了2遍,这时候,读写串口的时候不会死机,但3块串口板上的所有串口都不能正常工作(只能读,只能写,或读写都不能),CPU上的COM1和COM2却能正常工作;如果遇到第2种情况,多串口板上的串口被我的命令加载了1遍,这时候,3块串口板上的所有串口偶尔能正常工作。
顺便说一下,IDAN-CM310是ISA总线的PC104插件板。

顺便说一下,我查了一下VxWorks 5的串口驱动资料,有人说VxWorks 5的串口驱动不支持中断共享和基于16c550的较大的FIFO.

在rc.local里,把系统启动的devc-ser8250 也杀掉。

慢慢一行行地加载。启动3,4,5,6号端口,看它们能不能正常使用;再来7,8,9,10,看有没有问题。。。

谢谢xtang的指点。尝试了单独加载一块多川口卡,但是通信异常现象仍然存在,郁闷坏了。

如果单卡单口呢?是不是还是有异常?另外通信异常到底是什么?通信程序本身没有什么问题吧?

也有可能这个硬件不是完全的8250兼容。而是稍有变化,这个,要查硬件手册才能知道了。