各位先生:你们好。
我用uIP移植到C6424上,发现EMAC的传输数据有这样一个问题想请问你们有没遇到过。
问题是这样的:
一、为什么收发数据包必须是60字节.(接收不够60字节EMAC强制添0;发送不够60自己发送无效)
测试过程 1)在PC机上:ping xx,xx,xx,xx DSP6424,PC发出的ARP广播包为42字节,但是发到DSP后,强制为接收60字节(42字节为电脑PC发送数据,18字节全是0)这是为什么?
测试过程2 DSP应答ARP时,uIP需要把应答的42字节回送到PC机,但是DSP是发送不出去的。因为不够60自己,所以我用了一个笨办法,添加0到60字节才能回送出去。
二、我若想让DSP的EMAC不停发送数据,有什么标志判断上次是否完成?
测试过程:我使用MACINVECTOR测试发送通道标志为1,表示数据已经发送再发送下一个数据。但是这样有一个问题,首次发送MACINVECTOR为0,这样代码就不会进入发送程序,你们是如何处理的?
if(MACINVECTOR & 0x00000001) //为1表示上次数据发送成功
{ send(a) } //发送数据
非常感谢大家给我提示。
shuang li1:
你好,应该是协议规定最小包是64字节(加上包头包尾,去掉包头包尾就是60字节)。我现在也在调试6424的网口,然后用bios和ndk,但是程序始终调不通,想请教一些问题。你使用6424的网口调试的时候是把程序load到哪的呢,片内ram,ddr2还是sram呢?希望能交流一下,蛮急的。留下我的QQ 希望能得到一些指导,931400503。非常感谢