完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
使用arduino开发,当app程序大于3M时,ESP32不断重启复位,提示如下:
rst:0x3 (SW_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT) configsip: 0, SPIWP:0xee clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00 mode:DIO, clock div:2 load:0x3fff0018,len:4 load:0x3fff001c,len:1216 ho 0 tail 12 room 4 load:0x40078000,len:10944 load:0x40080400,len:6360 entry 0x400806b4 只要程序小于3M就没问题 论坛上说把CPU频率改为40M,试了一下,不管用。 我的分区信息如下: # Name, Type, SubType, Offset, Size, Flags nvs, data, nvs, 0x9000, 0x5000, otadata, data, ota, 0xe000, 0x2000, app0, app, ota_0, 0x10000, 0x600000, spiffs, data, spiffs, 0x610000,0x1F0000, |
|
相关推荐
1个回答
|
|
首先,我们需要了解ESP32的内存结构。ESP32有两个主要的存储区域:IRAM(指令RAM)和DRAM(数据RAM)。当程序大小超过3M时,可能是由于以下原因导致ESP32不断重启复位:
1. 程序闪存空间不足:ESP32的闪存空间有限,如果程序大小超过了可用空间,设备可能会无法正常运行。请检查您的程序大小和ESP32的闪存空间。 2. 内存分配问题:当程序大小较大时,可能需要更多的内存来存储变量和数据结构。如果内存分配不足,设备可能会因为内存溢出而重启。 3. 程序错误:程序中可能存在错误,导致设备在运行过程中出现异常,从而触发重启。 为了解决这个问题,您可以尝试以下方法: 1. 优化程序:检查程序中的代码,看看是否有可以优化的地方,例如减少全局变量的使用,使用更高效的数据结构等。 2. 调整分区表:根据您的分区信息,您可以尝试调整分区表,为程序分配更多的空间。例如,您可以增加app的分区大小,或者调整其他分区的大小以适应程序需求。 3. 降低CPU频率:虽然您已经尝试过将CPU频率改为40M,但可能需要进一步调整。您可以尝试将CPU频率降低到更低的值,例如20M或10M,以减少功耗和热量产生,从而降低重启的可能性。 4. 使用外部存储器:如果ESP32的内置存储空间不足以满足程序需求,您可以考虑使用外部存储器,如SD卡或SPI Flash,以扩展存储空间。 5. 检查硬件问题:如果以上方法都无法解决问题,您可能需要检查ESP32硬件是否存在问题,如焊接不良、电源不稳定等。 总之,解决ESP32不断重启复位的问题需要从多个方面进行排查和优化。希望以上建议对您有所帮助。 |
|
|
|
只有小组成员才能发言,加入小组>>
196个成员聚集在这个小组
加入小组480 浏览 1 评论
1762 浏览 2 评论
为blufi_device设置自定义名称,但是无法修改,为什么?
382浏览 4评论
请问ESP32-S2-WROOM怎么获得ESP32-S2外接FLASH的唯一序列号?
176浏览 3评论
ESP-Jumpstart例程中第5个工程:5_cloud连接报错是哪里的问题?
222浏览 2评论
用AT+CIPSNTPCFG=1,8,\"cn.ntp.org.cn\",\"ntp.sjtu.edu.cn\"更新不了时间怎么处理?
575浏览 2评论
265浏览 2评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-3-5 04:58 , Processed in 0.810851 second(s), Total 79, Slave 62 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191