移植网络驱动出现问题求助

在移植cirrus ep9315的网络驱动时,出现问题。驱动程序已经可以运行(可以ping通)。当网络负荷变大时(用ping -f -i0.01 192.168…)运行一会儿,大约收发了5000多个包,系统出现异常。请问各位大侠,可能是什么原因?
Shutdown[0,0] S/C/F=11/1/11 C/D=fe006950/fe057170 state(c0)= now lock
QNX Version 6.3.2 Release 2006/03/16-14:15:43EST
[0]PID-TID=1-4? P/T FL=00019001/05020000 “proc/boot/procnto”
armle context[fc45bf34]:
0000: fc434080 00000001 fc434080 00000000 fc5e0348 fc489cb4 01800000 fc5b2498
0020: fc457a28 fc5e02d8 00001000 fc489bcc fc489bd0 fc489bc0 fe02632c fe01c9e0
0040: 8000001f
instruction[fe01c9e0]:
14 00 93 e5 02 00 60 e0 40 02 a0 e1 00 30 93 e5 00 06 83 e0 00 a8 1b e9 10 00
stack[fc489bc0]:
0000: fc489c28 fc489bd0 fe02632c fe01c9c4 02277000 fc457a28 01801000 01800fff
0020: 01000b01 00000181 00000000 fc5b2498 fc4340a0 018c7000 01801000 fc489c5c
0040: fc434090 fc489cb4 00000001 fc5b2498 00000001 fc5e02d8 fc489cb4 fc489c5c
0060: fc489c2c fe0256a0 fe0262d8 00001000 fe0253e8 fc489cb4 000018c9 fc434080

好象是在向系统申请内存时死的.看看你内存的申请/释放有没有什么问题.
也有可能是CACHE管理有问题,很难说.

谢谢 comquter指点,发现是因为mmap_device_io操作的问题。我在网络处理线程中使用了mmap_device_io函数,原来以为它只是一个简单地址映射,可以反复调用。
修改了流程,现在没有系统崩溃的问题了。
但是现在发现ep9315的网络性能好像很差,可能我写的驱动也有问题。

启动qnet后,sloginfo有这样的提示,请问comquter,可能是什么原因?
Dec 07 05:12:17 7 15 0 npm-qnet(L4): en_ionet_tx_pkt(): ion->tx_down() returned -1, errno 255

Dec 07 05:12:17 7 15 0 npm-qnet(L4): l4_tx_pkt(): dp->tx_pkt() failed for L4 0

Dec 07 05:12:17 7 15 0 npm-qnet(L4): l4_tx_timeout(): l4_tx_pkt() raw failed

Dec 07 05:12:18 7 15 0 npm-qnet(L4): en_ionet_tx_pkt(): ion->tx_down() returned -1, errno 255

Dec 07 05:12:18 7 15 0 npm-qnet(L4): l4_tx_pkt(): dp->tx_pkt() failed for L4 0

Dec 07 05:12:18 7 15 0 npm-qnet(L4): l4_tx_timeout(): l4_tx_pkt() raw failed

发包失败,查查你的驱动的发包函数,返回出错是 ENOBUF

xtang乃qnet专家,问问他吧.
网络性能差到什么程度,感觉发送能到2MB/s,接受能到5MB/s就不错了.

谢谢二位指点。是我的发送部分出的错,现在qnet、tcpip也可以工作。但是网络负荷大了,ep9315的emac还是会出错。slay掉io-net,再运行,网络可以恢复工作,在驱动程序中进行重新初始化,不能使网络恢复。
我用ping -f -s 60960 192.168.1.99想目标机发送报文大约一个小时,ep9315的emac会出现fifo溢出问题,这是驱动程序重新初始化网络接收部分,但是,接收不工作。实在不行,我就建立一个守护进程,处理网络驱动故障问题。好在网络负荷很大的时候才会出现问题。呵呵

接收fifo溢出,可以试试增加接收receive descript ring 的大小。

所有的devn-都有一个标准的参数 receive=, 把它设成 receive=1024再试试。:)

会消耗很多内存。