上电后到app _main的时间较长,如何优化

DJZ1992
Posts: 72
Joined: Fri Jul 09, 2021 9:15 am

上电后到app _main的时间较长,如何优化

Postby DJZ1992 » Wed Dec 29, 2021 2:21 am

如题,在app_main内打印,通过串口查看时间,测试结果如下:

SPI FLASH设为40MHZ,boot和app都为LOGI级
首次启动,12.651启动 -》13.998进入app_mian,用时1347ms
深度睡眠唤醒,17.462-》18.910,用时1448ms

SPI FLASH设为40MHZ,boot和app都为LOGI级,设置深度睡眠唤醒时调过固件验证功能
首次启动,49.437 -》50.803,用时1366ms
深睡唤醒,02.111-》03.197,用时1086ms

SPI FLASH设为40MHZ,boot和app都为LOGE级,设置深度睡眠唤醒时调过固件验证功能
首次启动,42.300 -》43.470,用时1170ms
深睡唤醒,54.570-》55.482,用时912ms

SPI FLASH设为80MHZ,boot和app都为LOGE级,设置深度睡眠唤醒时调过固件验证功能
首次启动,11.068 -》12.200,用时1132ms
深睡唤醒,23.296-》24.209,用时913ms

深度睡眠调过固件检测可以减少260ms左右的时间
LOGE比LOGI可以减少180ms左右的进入app_main 的时间
SPI FLASH的变化, 影响貌似不明显

这么来看,最快还是得靠近1s,跟CSDN上官方说的几十ms,差距很大,该如何优化?
微信截图_20211229102105.png
微信截图_20211229102105.png (108.58 KiB) Viewed 11507 times

ESP_ICY
Posts: 404
Joined: Mon Aug 23, 2021 11:10 am

Re: 上电后到app _main的时间较长,如何优化

Postby ESP_ICY » Wed Dec 29, 2021 12:10 pm

降低 Bootloader log verbosity 的等级到 no out put,降低 Component config → Log output 到 no output

DJZ1992
Posts: 72
Joined: Fri Jul 09, 2021 9:15 am

Re: 上电后到app _main的时间较长,如何优化

Postby DJZ1992 » Thu Dec 30, 2021 2:31 am

你好,降低LOG到不输出后,在app_main里初始化串口输出一个信息
从下图来看,app_main实际上运行的时间还是在启动后1s多
微信截图_20211230102933.png
微信截图_20211230102933.png (6.82 KiB) Viewed 11433 times
是否是我的测试方法有错。到达app_main的时间该如何测试?
entry 0x40080620这一句是不是意味着已经跳转到APP?

DJZ1992
Posts: 72
Joined: Fri Jul 09, 2021 9:15 am

Re: 上电后到app _main的时间较长,如何优化

Postby DJZ1992 » Thu Dec 30, 2021 2:32 am

ESP_ICY wrote:
Wed Dec 29, 2021 12:10 pm
降低 Bootloader log verbosity 的等级到 no out put,降低 Component config → Log output 到 no output
你好,降低LOG到不输出后,在app_main里初始化串口输出一个信息
从下图来看,app_main实际上运行的时间还是在启动后1s多
微信截图_20211230102933.png
微信截图_20211230102933.png (6.82 KiB) Viewed 11433 times
是不是测试方法有错?
entry 0x40080620是代表已经跳转到APP吗?

DJZ1992
Posts: 72
Joined: Fri Jul 09, 2021 9:15 am

Re: 上电后到app _main的时间较长,如何优化

Postby DJZ1992 » Thu Dec 30, 2021 3:07 am

ESP_ICY wrote:
Wed Dec 29, 2021 12:10 pm
降低 Bootloader log verbosity 的等级到 no out put,降低 Component config → Log output 到 no output
I (291) psram: This chip is ESP32-D0WD
。。。
I (1193) spiram: SPI SRAM memory test OK


1s主要的还是外部的ram费时。
另外291毫秒之前的时间已经挺长的了,跟几十个ms比大很多。不知道该如何优化
Attachments
微信截图_20211230110414.png
微信截图_20211230110414.png (47.91 KiB) Viewed 11424 times

ESP_YJM
Posts: 300
Joined: Fri Feb 26, 2021 10:30 am

Re: 上电后到app _main的时间较长,如何优化

Postby ESP_YJM » Thu Dec 30, 2021 3:42 am

1. 打开 CONFIG_BOOTLOADER_SKIP_VALIDATE_ON_POWER_ON,方法 idf.py menuconfig->Bootloader config->Skip image validate ...
2. GPIO15 接 GND 屏蔽上电 ROM 打印。
3. 关闭二级引导打印, idf.py menuconfig->Bootloader config->bootloader log 改为 No output
4. 关闭主程序日志:idf.py menuconfig->Component config->log output->Default log 改为 No output

DJZ1992
Posts: 72
Joined: Fri Jul 09, 2021 9:15 am

Re: 上电后到app _main的时间较长,如何优化

Postby DJZ1992 » Thu Dec 30, 2021 5:30 am

ESP_YJM wrote:
Thu Dec 30, 2021 3:42 am
1. 打开 CONFIG_BOOTLOADER_SKIP_VALIDATE_ON_POWER_ON,方法 idf.py menuconfig->Bootloader config->Skip image validate ...
2. GPIO15 接 GND 屏蔽上电 ROM 打印。
3. 关闭二级引导打印, idf.py menuconfig->Bootloader config->bootloader log 改为 No output
4. 关闭主程序日志:idf.py menuconfig->Component config->log output->Default log 改为 No output
感谢!
实测发现关闭各级打印确实可以大幅度缩短启动时间。
另外PSRAM的初始化占用的时间很长。但是不在boot内初始化,在应用程序内需要的时候才初始化,该如何操作?有没有文档说明

DJZ1992
Posts: 72
Joined: Fri Jul 09, 2021 9:15 am

Re: 上电后到app _main的时间较长,如何优化

Postby DJZ1992 » Thu Dec 30, 2021 5:35 am

DJZ1992 wrote:
Thu Dec 30, 2021 5:30 am
ESP_YJM wrote:
Thu Dec 30, 2021 3:42 am
1. 打开 CONFIG_BOOTLOADER_SKIP_VALIDATE_ON_POWER_ON,方法 idf.py menuconfig->Bootloader config->Skip image validate ...
2. GPIO15 接 GND 屏蔽上电 ROM 打印。
3. 关闭二级引导打印, idf.py menuconfig->Bootloader config->bootloader log 改为 No output
4. 关闭主程序日志:idf.py menuconfig->Component config->log output->Default log 改为 No output
感谢!
实测发现关闭各级打印确实可以大幅度缩短启动时间。
另外PSRAM的初始化占用的时间很长。
但是不在boot内初始化,在应用程序内需要的时候才初始化,该如何操作?有没有文档说明
不勾选● CONFIG_SPIRAM_BOOT_INIT?

ESP_YJM
Posts: 300
Joined: Fri Feb 26, 2021 10:30 am

Re: 上电后到app _main的时间较长,如何优化

Postby ESP_YJM » Thu Dec 30, 2021 6:26 am

你可以试一下 disable CONFIG_SPIRAM_MEMTEST

Who is online

Users browsing this forum: No registered users and 80 guests