完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
esp32c3项目采用wss_server 例程,运行后连接WiFi正常,但是如果之后把wifi断开的话,esp32c3会重启,监视器显示“assert failed: tlsf_free tlsf.c:1119 (!block_is_free(block) && "block already marked as free")”,请问这是什么原因造成esp32c3重启。如果想断开wifi之后esp32c3不重启,要修改哪里?
|
|
相关推荐
1个回答
|
|
根据您提供的信息,当WiFi断开时,ESP32-C3重启的原因可能是由于内存管理问题导致的断言失败。这个断言失败提示“block already marked as free”,意味着某个内存块已经被标记为已释放,但仍然被尝试访问或释放。
要解决这个问题,您可以尝试以下步骤: 1. 首先,检查您的代码中是否有内存泄漏或错误的内存管理操作。确保在使用完内存后正确释放它,并避免重复释放同一内存块。 2. 检查ESP32-C3的固件版本,确保您使用的是最新版本。有时候,固件中的bug可能会导致这类问题。您可以在Espressif的官方网站上找到最新的固件版本。 3. 如果问题仍然存在,您可以尝试修改ESP-IDF框架中的TLSF内存管理库。在`esp-idf/components/heap/src/heap_tlsf.c`文件中,找到第1119行的断言。您可以暂时禁用这个断言,以防止设备重启。但请注意,这只是一个临时解决方案,您应该在找到根本原因并修复问题后重新启用断言。 4. 如果您不熟悉内存管理或TLSF库,您可以考虑寻求社区的帮助,例如Espressif的官方论坛或ESP32相关的开发者社区。 5. 另外,您可以尝试使用其他WiFi连接库或示例程序,看看问题是否仍然存在。这有助于确定问题是否与特定的库或代码有关。 总之,要解决ESP32-C3在WiFi断开后重启的问题,您需要检查代码中的内存管理,确保使用最新固件,并考虑修改TLSF内存管理库或寻求社区帮助。 |
|
|
|
只有小组成员才能发言,加入小组>>
140 浏览 0 评论
1158 浏览 1 评论
584浏览 6评论
482浏览 5评论
有没有办法在不使用混杂模式的情况下实现Wifi驱动程序接收缓冲区访问中断呢?
467浏览 5评论
466浏览 4评论
441浏览 4评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-25 13:52 , Processed in 0.927765 second(s), Total 79, Slave 63 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号