使用WCH307开发产品,出现外置百兆PHY网络传输一段时间后进入DMA RBUS异常中断

在使用RTT开发过程中我们有发现TCP网络在外置百兆PHY进行传输时,会出现持续进入DMA RBUS异常中断的情况,与之共同出现的还有TCP调用write失败,其他网络功能失效,验证发现设备未死机。

请问这种情况出现的原因有哪些?如何排查?怎样解决?

补充:我们在10M使用内置PHY的产品中无此问题,两者的应用层代码等同于平移。


手册中ETH DMA的TBUS是否为异常中断?

以及ETH?DMA?ETS中断发生了应该怎么处理?发现初始化完成后就会进这个中断

image.png

                r_w = tcp_write(g_tcp_cli_list[index_list[i]].tcp_conn_pcb, snd_buf, snd_len, 0);
                if (r_w == ERR_OK)
                {
                    r_o = tcp_output(g_tcp_cli_list[index_list[i]].tcp_conn_pcb);
                }

                if ((r_w != ERR_OK) || (r_o != ERR_OK))
                {
                    rt_kprintf("<%d> w <%d>, o <%d>\n", index_list[i], r_w, r_o);
                }

write失败是通过打印w<-1>,o<0>查看到的


我也遇到相同问题,请问是怎么解决的?

j_0001.gif


您好,带系统的程序要把网络接收任务的优先级调高,一直进入RBUS说明数据没处理,没有可以使用的缓存。处理RBUS置位操作如图所示:image.png


只有登录才能回复,可以选择微信账号登录