STM32CUBEMX 6.5 LWIP 内存失败PING失败

STM32爬坑避雷日记

记录一次LWIP遇到的问题(STM32F407+DP83848)

首先重装了系统,然后信心满满的安装了最高版本STM32CUBEMX6.5,结果lwip不好使

第一次搞了一天,看完了百度所有相关教程,就是不行,怀疑软件BUG,果断放弃,重新拾起v6.3,项目正常进行…

(省略配置教程,懒得贴) 种种原因,我想再次反思这个问题,首先确定,内存出了问题v6.5将“LWIP_RAM_HEAP_POINTER”配置为0x30044000,这在F407估计是行不通了,去掉“lwipopts.h”中的注释

///*----- Default Value for H7 devices: 0x30044000 -----*/
//#define LWIP_RAM_HEAP_POINTER 0x30044000
///*----- Value supported for H7 devices: 1 -----*/
//#define LWIP_SUPPORT_CUSTOM_PBUF 1

(看样子8层是给H743用的),在翻翻代码

 /** If you want to relocate the heap to external memory, simply define
 * LWIP_RAM_HEAP_POINTER as a void-pointer to that location.
 * If so, make sure the memory at that location is big enough (see below on
 * how that space is calculated). */
#ifndef LWIP_RAM_HEAP_POINTER
/** the heap. we need one struct mem at the end and some room for alignment */
LWIP_DECLARE_MEMORY_ALIGNED(ram_heap, MEM_SIZE_ALIGNED + (2U * SIZEOF_STRUCT_MEM));
#define LWIP_RAM_HEAP_POINTER ram_heap
#endif /* LWIP_RAM_HEAP_POINTER */

没有外部RAM,注释掉就对了,继续测试,直接上UDP例程(祖上传的),明显可以通讯了,但是好像PING不通,还是有问题

版本答案

根据大佬们的描述,关闭“Checksum”选项卡中的CHECKSUM_CHECK_ICMP 和CHECKSUM_GEN_ICMP 再次下载,终于终于可以ping通了,到这里只是解决了问题,但是问题仍不清晰,所以没有必要情况,还是用低版本吧

  • 5
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值