完善资料让更多小伙伴认识你,还能领取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不断重启复位的问题需要从多个方面进行排查和优化。希望以上建议对您有所帮助。 |
|
|
|
|
只有小组成员才能发言,加入小组>>
945 浏览 0 评论
1672 浏览 0 评论
请问一下我想用ESP8685直接替换ESP8266而不用写程序,可以让ESP8685直接通过之前ESP8266的外挂的flash运行程序吗
1330 浏览 1 评论
1233 浏览 1 评论
5021 浏览 2 评论
为blufi_device设置自定义名称,但是无法修改,为什么?
1252浏览 4评论
请问ESP32-S2-WROOM怎么获得ESP32-S2外接FLASH的唯一序列号?
927浏览 3评论
2336浏览 3评论
ESP-IDF的VScode插件的build按钮点击会报错的原因?
2526浏览 3评论
ESP-Jumpstart例程中第5个工程:5_cloud连接报错是哪里的问题?
1051浏览 2评论
/9
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-12-2 02:54 , Processed in 0.590870 second(s), Total 75, Slave 57 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖
464
