[已解决] 为什么 app程序大于3M时,ESP32不断重启复位

tiger322
Posts: 6
Joined: Mon Aug 22, 2022 12:47 am

[已解决] 为什么 app程序大于3M时,ESP32不断重启复位

Postby tiger322 » Mon Aug 22, 2022 12:57 am

使用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,
Last edited by tiger322 on Fri Aug 26, 2022 11:33 am, edited 1 time in total.

ESP_Gargamel
Posts: 786
Joined: Wed Nov 14, 2018 8:45 am

Re: 为什么 app程序大于3M时,ESP32不断重启复位

Postby ESP_Gargamel » Mon Aug 22, 2022 10:20 am

能否把 log 都放开?现在这些看不出问题。

tiger322
Posts: 6
Joined: Mon Aug 22, 2022 12:47 am

Re: 为什么 app程序大于3M时,ESP32不断重启复位

Postby tiger322 » Mon Aug 22, 2022 1:23 pm

LOG就是不断地重复这一段:
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

ESP_Gargamel
Posts: 786
Joined: Wed Nov 14, 2018 8:45 am

Re: 为什么 app程序大于3M时,ESP32不断重启复位

Postby ESP_Gargamel » Tue Aug 23, 2022 8:24 am

暂时编不出 3M 的固件,麻烦发个 app bin 上来看一下。

tiger322
Posts: 6
Joined: Mon Aug 22, 2022 12:47 am

Re: 为什么 app程序大于3M时,ESP32不断重启复位

Postby tiger322 » Wed Aug 24, 2022 12:36 am

完整的LOG如下:
[Starting] Opening the serial port - COM5
[Info] Opened the serial port - COM5
ets Jul 29 2019 12:21:46

rst:0x1 (POWERON_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
ets Jul 29 2019 12:21:46

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
ets Jul 29 2019 12:21:46

然后一直重复这一段:rst:0x3 (SW_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)

app 的 bin文件在这是,麻烦你看一下:链接: https://pan.baidu.com/s/1NuFOKGvtOj3yjs ... g?pwd=8888 提取码: 8888

ESP_Gargamel
Posts: 786
Joined: Wed Nov 14, 2018 8:45 am

Re: 为什么 app程序大于3M时,ESP32不断重启复位

Postby ESP_Gargamel » Wed Aug 24, 2022 6:09 am

你的程序没什么问题,可以正常跑起来。
所以问题应该是出在你使用的 bootloader 上。你的 bootloader 是哪来的?Arduino 自带的?什么配置下的 bootloader?

tiger322
Posts: 6
Joined: Mon Aug 22, 2022 12:47 am

Re: 为什么 app程序大于3M时,ESP32不断重启复位

Postby tiger322 » Wed Aug 24, 2022 1:20 pm

我没有修改配置过Bootloader,应该是Arduino 自带的,我应该怎么修改它,是不是使用flash_download_tool工具烧Bootloader?

但我看了一下build文件夹,只有eInkInfoPad.ino.partitions.bin,没有Bootloader.bin。
是不是只烧录eInkInfoPad.ino.partitions.bin和app程序就可以了

另外,麻烦您把上面的代码删除吧,里面有我的账号key。再次感谢!

ESP_Gargamel
Posts: 786
Joined: Wed Nov 14, 2018 8:45 am

Re: 为什么 app程序大于3M时,ESP32不断重启复位

Postby ESP_Gargamel » Thu Aug 25, 2022 2:24 am

问题应该在使用的 partition 上,烧录进去的 partition 中 app 应该是 size 小于 3M 的。
你是否使用的 Arduino?Flash Size 和 Partition Scheme 选得是什么?是否直接使用的 Arduino 烧录的?
你可以用附件中的 partition bin,烧录到 0x8000 试一下。
Attachments
partition-table.bin.zip
(283 Bytes) Downloaded 638 times

tiger322
Posts: 6
Joined: Mon Aug 22, 2022 12:47 am

Re: 为什么 app程序大于3M时,ESP32不断重启复位

Postby tiger322 » Thu Aug 25, 2022 2:56 am

刷了你的partition bin,问题解决,感谢!

问题还是出在自定义分区上,我自定义的一个分区文件app6M_8MB.csv
然后在boards.txt文件中也添加了以下行:
esp32.menu.PartitionScheme.app6M_8MB=8M Flash (6MB APP/1.5MB FATFS)
esp32.menu.PartitionScheme.app6M_8MB.build.partitions=app6M_8MB
esp32.menu.PartitionScheme.app6M_8MB.upload.maximum_size=6291456

但不知为什么,使用的还是默认的 default_8MB.csv 分区

tiger322
Posts: 6
Joined: Mon Aug 22, 2022 12:47 am

Re: 为什么 app程序大于3M时,ESP32不断重启复位

Postby tiger322 » Thu Aug 25, 2022 8:07 am

试了下,在工程所在文件夹放一个partitions.csv,就可以了

Who is online

Users browsing this forum: Baidu [Spider] and 51 guests