QNX6.5串口问题

现在在做一个QNX的项目,需要用到12个串口,其中一个板上8个串口,另一个板上4个串口。
在rc.local文件中添加如下命令:
devc-ser8250 -u3 100,5
devc-ser8250 -u4 108,5
devc-ser8250 -u5 110,5
devc-ser8250 -u6 118,5
devc-ser8250 -u7 120,5
devc-ser8250 -u8 128,5
devc-ser8250 -u9 130,5
devc-ser8250 -u10 138,5
devc-ser8250 -u11 140,7
devc-ser8250 -u12 148,7
devc-ser8250 -u13 150,7
devc-ser8250 -u14 158,7
如上,8串口的板子基地址跳0x300,共享中断5;4串口的板子基地址跳0x240,共享中断7.
由于主板上有两个串口,默认为串口1和2,所以我8串口板上就从串口3开始到串口10,4串口从串口11到串口14
在/dev目录下可以看到ser1/ser2/ser3/…/ser14
测试情况是8串口上的8个串口是可以发送接收的,但是4串口板子上却接收不到数据,原本以为是配置错误,但是按照这种配置方法在DOS系统下测试是可正常发送接收的。
我想是不是由于QNX系统的原因,4串口板上的第一个串口依照我的设置不能正常的识别为串口11还是有其他需要修改的地方?(单个板按照上述配置是可以测试通的,但是合起来4串口的就不行了)

也许你全部写在一行上就行了。。。。

devc-ser8250 -u3 300,5 -u4 308,5 -u5 310,5 … -u11 240,7 -u12 248,7…

我按照你的方法试了,仍然是不行的。
我试了两块相同的串口板是可以测试通过的,现在情况是一个是8串口板,一个是4串口板,两个板子的型号是不一样的

如果不插那个8口串卡,你的4囗串卡能正常启动吗?端口号都是什么?听上去像是你的4口串卡有自己的端口号。

不插8串口板,4串口板是正常的,而且两块4串口板也是OK的。
4串口板硬件上还有2个CAN接口和一个8255兼容的I/O口,板子没有端口号
如果用2块8串口板做测试,也是Ok的。
我猜测是不是我创建的设备并没有与4串口板的串口对应上?

只插一块4串口版,你能用

devc-ser8250 -u11 140,7
devc-ser8250 -u12 148,7
devc-ser8250 -u13 150,7
devc-ser8250 -u14 158,7

来正常启动它们吗?

devc-ser8250 -u11 140,7
devc-ser8250 -u12 148,7
devc-ser8250 -u13 150,7
devc-ser8250 -u14 158,7这样是不可以的。
devc-ser8250 -u1 140,7
devc-ser8250 -u2 148,7
devc-ser8250 -u3 150,7
devc-ser8250 -u4 158,7这样是可以的,不过好像又说明不了什么问题

求xtang先生释疑
两种方式串口基地址和中断设置相同,按道理来说应该与-u后面的数字无关的,但是现在测试情况看不是这样的。
各串口的基地址和中断号是写在EEPROM中的,上电的时候会自动去读取数据并配置

我想不出有什么理由 -u1 -u2 … 可以运行,但 -u11, -u12却不可以, hmm…

Devc-ser8250 –u3 160,7
Devc-ser8250 –u4 168,7
Devc-ser8250 –u5 178,7
Devc-ser8250 –u6 180,7

Devc-ser8250 –u7 100,5
Devc-ser8250 –u8 108,5
Devc-ser8250 –u9 110,5
Devc-ser8250 –u10 118,5
Devc-ser8250 -u11 120,5
Devc-ser8250 –u12 128,5
Devc-ser8250 –u13 130,5
Devc-ser8250 –u14 138,5
我将4串口板和8串口板调换了一下位置,将4串口板的驱动加载在了前面部分,8串口板的驱动放在后面
测试情况很奇怪,4串口板及8串口板的前4个串口是可以正常的发送和接收数据,而8串口板的后4个串口就有问题了
为什么u后面的参数只要超过10就会出现问题,我很纳闷。
是不是驱动本身解析有问题造成的?Devc-ser8250 -u11 120,5定义的串口并没有实际的与我硬件上的对应串口建立正常的物理连接?

我没有那么多串口可以试,但是我试了把系统标准的devc-ser8250杀掉,然后加 -u 11 启动,似乎也没有什么问题…

谢谢xtang的回复,我按照你的方法,将系统进程杀掉,现在终于可以了。