TI中文支持网
TI专业的中文技术问题搜集分享网站

starterware下定时发ip包,结果cpsw的bd耗尽,请教下原因

用DMTimer定时为5ms,每次发一个以太包。

初始化一块全局变量用来当做buf,调用lwip的初始化buf的函数,和发ip包的函数,由于是自己申请的全局变量,也不会释放。

初始时显示有203个bd,也就是0xcc,发过233个包后,显示cpsw的bd耗尽,发不出去了

看了下,bd增加是在以cpsw发包的中断中。

DMTimer的定时中断优先级是0,cpsw的发包的中断的优先级也是0。把前者优先级降低,改为1后也无效。

lei lu1:

用jtag跟踪后,发展是cpsw的dma操作后,eoq字段没有设置为1造成的bd耗尽,而这个设置是emac也就是硬件来设置的。请问在什么情况下会导致硬件不设置eoq字段了呢,而且是在正常发送19包以后?

lei lu1:

回复 lei lu1:

或者说,想把一块静态存储区的内容用ip包发包发出去,有什么简单高效的方法?

lei lu1:

回复 lei lu1:

我试了下原有的函数etharp_raw它的参数除了netif的指针,其他都是协议中的字段,不涉及任何buf或bd的参数,因为都在在内部完成的。结果发了一百多个包后,现象和上面一样。没有设置eoq字段而导致bd耗尽。

赞(0)
未经允许不得转载:TI中文支持网 » starterware下定时发ip包,结果cpsw的bd耗尽,请教下原因
分享到: 更多 (0)