你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

【STM32F407+DP83848】服务器压力测试

[复制链接]
shenxiaolin_mai 提问时间:2019-7-10 16:05 /
本帖最后由 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通的现象,
1.jpg
查看寄存器后,发现在以太网的DMA寄存器出错了,DMASR寄存器数值变为:0x0066040A(正常运行的时候为:0x00660404)
查看手册后发现是jabber超时。
2.png

但是,虽然定位到问题,但是这个问题如何产生的呢?还是不清除,所以小弟请教一下大侠们,为啥会出现这个现象。出现这个问题应该怎么解决呢?



收藏 2 评论7 发布时间:2019-7-10 16:05

举报

7个回答
byronsong 回答时间:2019-7-11 09:05:25
HAL库的话加一行代码试试
while(RESET != ((heth->Instance)->DMAOMR & ETH_DMAOMR_FTF));
加在下图所示位置

微信图片_20190711090406.png


评分

参与人数 1蝴蝶豆 +2 收起 理由
STMCU + 2

查看全部评分

shenxiaolin_mai 回答时间:2019-7-11 11:31:52
songshiqun2010 发表于 2019-7-11 09:05
HAL库的话加一行代码试试
while(RESET != ((heth->Instance)->DMAOMR & ETH_DMAOMR_FTF));
加在下图所示位 ...

没用hall库,用的标准库做的
byronsong 回答时间:2019-7-11 11:37:18
xiaoshen-372360 发表于 2019-7-11 11:31
没用hall库,用的标准库做的

标准库又如何 原理是一样的。
微信截图_20190711113600.png

shenxiaolin_mai 回答时间:2019-7-11 11:39:59
songshiqun2010 发表于 2019-7-11 09:05
HAL库的话加一行代码试试
while(RESET != ((heth->Instance)->DMAOMR & ETH_DMAOMR_FTF));
加在下图所示位 ...

请问一下为啥要加这一句呢?我看1.4的LWIP的库也没有加这一句。
byronsong 回答时间:2019-7-11 11:47:42
微信截图_20190711114648.png
无薪税绵 回答时间:2019-7-11 12:05:25
今天来签到了。
shenxiaolin_mai 回答时间:2019-7-11 12:34:06

谢谢了,我去试试看。你原来也遇到这个问题了?
关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新和工艺
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版