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

终于搞定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管理
行使您的权利
官方最新发布
STM32Cube扩展软件包
意法半导体边缘AI套件
ST - 理想汽车豪华SUV案例
ST意法半导体智能家居案例
STM32 ARM Cortex 32位微控制器
关注我们
st-img 微信公众号
st-img 手机版