【STM32F407+DP83848】服务器压力测试
本帖最后由 xiaoshen-372360 于 2019-7-10 16:09 编辑最近在做一个关于STM32F407的Modbus-TCP程序,STM32做服务器,IP固定,在做测试的时候发现了如下问题
测试时间超过2天到3天的时候会出现协议栈死掉的情况,Ping不通 也连不上。
测试环境说明:
我们是这样测试的,电脑通过交换机链接STM32,电脑端使用ModbusPULL测试,测试时间是500ms 收发一次数据,每次读取125个寄存器,每次STM32 返回258个字节,与此同时电脑端开5个Ping 窗口,同时Ping STM32,Ping的字节数为1450,测试两天后出现STM32无法通信,且无法ping通的现象,
查看寄存器后,发现在以太网的DMA寄存器出错了,DMASR寄存器数值变为:0x0066040A(正常运行的时候为:0x00660404)
查看手册后发现是jabber超时。
但是,虽然定位到问题,但是这个问题如何产生的呢?还是不清除,所以小弟请教一下大侠们,为啥会出现这个现象。出现这个问题应该怎么解决呢?
HAL库的话加一行代码试试
while(RESET != ((heth->Instance)->DMAOMR & ETH_DMAOMR_FTF));
加在下图所示位置
songshiqun2010 发表于 2019-7-11 09:05
HAL库的话加一行代码试试
while(RESET != ((heth->Instance)->DMAOMR & ETH_DMAOMR_FTF));
加在下图所示位 ...
没用hall库,用的标准库做的 xiaoshen-372360 发表于 2019-7-11 11:31
没用hall库,用的标准库做的
标准库又如何 原理是一样的。
songshiqun2010 发表于 2019-7-11 09:05
HAL库的话加一行代码试试
while(RESET != ((heth->Instance)->DMAOMR & ETH_DMAOMR_FTF));
加在下图所示位 ...
请问一下为啥要加这一句呢?我看1.4的LWIP的库也没有加这一句。
今天来签到了。 songshiqun2010 发表于 2019-7-11 11:47
谢谢了,我去试试看。你原来也遇到这个问题了?
页:
[1]