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

终于搞定STM32H743网络了,分享调试经验及注意事项  

[复制链接]
switcc 发布时间:2018-3-13 20:03
阅读主题, 点击返回1楼
1 收藏 18 评论37 发布时间:2018-3-13 20:03
37个回答
芒果干 回答时间:2020-6-17 16:33:53
按楼主给的
芒果干 回答时间:2020-6-17 16:40:04
终于搞定,感谢楼主
start update 回答时间:2020-7-20 10:36:13
第六项 #define LWIP_RAM_HEAP_POINTER (0x30044000)  , lwipopt.h中没有这么一句啊。这个内存是谁来分配的,哪里有用到这段内存的相关项
秋而实之 回答时间:2020-11-3 08:57:30
前人栽树,后人乘凉,谢谢
switcc 回答时间:2020-11-3 19:26:11
没想到当年写的帖子还帮到了一些朋友,部分加QQ的没有通过是因为楼主已经不再搞相关的了,所以没通过。
heeraebf7d 回答时间:2021-1-21 13:54:05
您好,我用的H742,LWIP1.4.1+LAN8742我按照您这改的,我这还是ping不同,请问您还有其他建议吗
HankZhang528 回答时间:2022-3-24 17:09:44

在大数据量通信交互时,会造成TCP链接中断,抓包显示服务器端有RST,ACK异常,同时ping大包ping不通。经过调试分析,原因是定义的DMA描述定义和RX_buff不够,同时ETHIN的优先级较低导致Lwip内存访问异常。

修改方法:

1.ETH_RX_DESC_CNT 和 ETH_TX_DESC_CNT默认个数是4,根据通信负荷需要扩大,我这里分别扩大到16;

2.修改ETH_DMADescTypeDef

RX:0x30040000

TX:0x30040180

Rx_buff:0x30040400

3.修改MPU的配置

 MPU_InitStruct.Enable = MPU_REGION_ENABLE;

  MPU_InitStruct.BaseAddress = 0x30040000;

  MPU_InitStruct.Size = MPU_REGION_SIZE_256B; //从256B 修改为 1K

  MPU_InitStruct.AccessPermission = MPU_REGION_FULL_ACCESS;

  MPU_InitStruct.IsBufferable = MPU_ACCESS_BUFFERABLE;

  MPU_InitStruct.IsCacheable = MPU_ACCESS_NOT_CACHEABLE;

  MPU_InitStruct.IsShareable = MPU_ACCESS_NOT_SHAREABLE;

  MPU_InitStruct.Number = MPU_REGION_NUMBER0;

  MPU_InitStruct.TypeExtField = MPU_TEX_LEVEL0;

  MPU_InitStruct.SubRegionDisable = 0x00;

  MPU_InitStruct.DisableExec = MPU_INSTRUCTION_ACCESS_ENABLE;

4.串口打印可能有影响,视情况关闭;

5.将ETHIN 和 Lwip的任务优先级提高

iqss2005 回答时间:2024-7-30 16:38:49

HankZhang528 发表于 2022-3-24 17:09
在大数据量通信交互时,会造成TCP链接中断,抓包显示服务器端有RST,ACK异常,同时ping大包ping不通。 ...

[md]我这样设后PING不通了

123

所属标签

相似分享

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版