esp32s3 nvs 存储过程中使用malloc和free函数的一点困惑

我的项目中,大量使用了malloc()和free()函数,在使用nvs存储之前没有出现问题。

esp32厂家nvs的blob存储的例程中,有使用malloc()和free(),我参照例程写了自己的blob存储函数f,一开始是可以正常使用的,后来增加了几个键值对以后开始出现panic重启,系统重启前的提示是assert failure,free()在heap上outside the area了。而在增加键值对以前,这个f函数一直是正常使用的。

上网查找,发现厂家论坛有提到需要更新github等内容,我把f函数中需要malloc()和free()的一段char*改为一个静态char* 就一切正常了。

nvs存储中的malloc和free需要反复使用,而我在该工程其它地方使用的malloc和free是关于链表操作的,相对来说没有想nvs那么多曲折分枝。是不是因为这个原因,其它地方的链表操作可以正常使用malloc和free而在nvs存储中不能正常使用?

 

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值