ESP32_启动日志分析
ESP32_启动日志分析
- 一、看出flash的配置模式
- 1、原始日志
- 2、分析日志
- 3、根据你用的模组进行修改
- 4、在工程中修改
- 二、看出分区表信息
- 1、原始日志(分区表信息)
- 2、分析日志
- 3、在工程中修改
- 三、PSRAM 信息
- 1、原始日志(PSRAM 初始化信息)
- 2、分析日志
- 3、原始日志(PSRAM 内存分配)
- 4、分析日志
- 四、RTC时钟
- 1、原始日志
- 2、分析日志
- 五、其他
- 1、原始日志
- 2、分析日志
前言:
其实从启动日志里面是可以直接发现一些问题的,尤其是关于flash和ram的一些信息,以及配置的一些模式是否正常,都可以从中看得出来。
一、看出flash的配置模式
1、原始日志
I (35) qio_mode: Enabling default flash chip QIO
I (40) boot.esp32s3: Boot SPI Speed : 80MHz
I (45) boot.esp32s3: SPI Mode : QOUT
I (50) boot.esp32s3: SPI Flash Size : 16MB
2、分析日志
Flash 模式:QOUT(Quad Output) 含义:使用四线SPI(Quad I/O)模式进行数据输出,但地址和命令仍通过单线传输。
性能:比QIO(Quad I/O)稍慢(约15%),但比DIO(Dual I/O)和DOUT(Dual Output)快。
适用场景:适用于需要较高速度但不需要全四线模式的场景(如某些Flash芯片仅支持QOUT)。
验证:确认你的Flash芯片(如Boya品牌)是否支持QOUT模式。若不支持,需在menuconfig中改为QIO或DIO。 Flash
速度:80MHz 说明:Flash时钟频率直接影响读写速度。ESP32-S3支持最高80MHz的SPI频率。
优化建议:若Flash芯片支持更高的频率(如160MHz),可尝试调整menuconfig中的SPI Flash Clock
Frequency以提升性能。
3、根据你用的模组进行修改
4、在工程中修改
二、看出分区表信息
1、原始日志(分区表信息)
I (60) boot: Partition Table:
I (63) boot: ## Label Usage Type ST Offset Length
I (71) boot: 0 nvs WiFi data 01 02 00009000 00006000
I (78) boot: 1 phy_init RF data 01 01 0000f000 00001000
I (86) boot: 2 factory factory app 00 00 00010000 00200000
I (93) boot: 3 storage Unknown data 01 81 00210000 00800000
I (101) boot: End of partition table
I (105) esp_image: segment 0: paddr=00010020 vaddr=3c070020 size=126ae8h (1207016) map
I (315) esp_image: segment 1: paddr=00136b10 vaddr=3fc97300 size=03110h ( 12560) load
I (318) esp_image: segment 2: paddr=00139c28 vaddr=40374000 size=063f0h ( 25584) load
I (326) esp_image: segment 3: paddr=00140020 vaddr=42000020 size=6d95ch (448860) map
I (405) esp_image: segment 4: paddr=001ad984 vaddr=4037a3f0 size=0ce44h ( 52804) load
I (416) esp_image: segment 5: paddr=001ba7d0 vaddr=600fe000 size=00068h ( 104) load
I (416) esp_image: segment 6: paddr=001ba840 vaddr=600fe068 size=00008h ( 8) load
I (430) boot: Loaded app from partition at offset 0x10000
2、分析日志
1、打印分区表内容
2、app程序启动地址,这点在OTA升级中很关键,我这个程序启动地址是0x10000
3、在工程中修改
三、PSRAM 信息
1、原始日志(PSRAM 初始化信息)
octal_psram: vendor id : 0x0d (AP)
octal_psram: dev id : 0x02 (generation 3)
octal_psram: density : 0x03 (64 Mbit)
octal_psram: good-die : 0x01 (Pass)
esp_psram: Found 8MB PSRAM device
esp_psram: Speed: 80MHz
2、分析日志
PSRAM 模式:Octal(八线SPI)
说明:使用八线SPI模式(数据线+命令线+地址线),速度比Quad模式快。
硬件要求:确保PSRAM芯片(如AP品牌)支持Octal模式,并且开发板的GPIO引脚正确连接。
验证:ESP32-S3 N16R8等模组通常集成Octal PSRAM,若使用外部PSRAM,需确认硬件兼容性。
PSRAM 大小:8MB
用途:扩展堆内存,用于动态分配大对象(如图像缓冲区、AI模型权重)。
性能:PSRAM访问速度低于内部SRAM,但远高于Flash。避免高频访问PSRAM中的数据。
3、原始日志(PSRAM 内存分配)
heap_init: Initializing. RAM available for dynamic allocation:
At 3FCA8830 len 00040EE0 (259 KiB): DRAM
At 600FE070 len 00001F78 (7 KiB): RTCRAM
esp_psram: Adding pool of 5773K of PSRAM memory to heap allocator
4、分析日志
内部DRAM:约259KB,用于栈、堆和关键数据。
RTCRAM:7KB,用于深度睡眠模式下的低功耗内存。
PSRAM:5773KB(约5.6MB),通过heap_caps_malloc(MALLOC_CAP_SPIRAM)分配。
关键点:
PSRAM 已成功启用,可用于扩展堆内存。
若应用需要更多内存,可进一步优化PSRAM分配策略(如减少内部DRAM的使用)。
四、RTC时钟
1、原始日志
W (1250) clk: 32 kHz XTAL not found, switching to internal 150 kHz oscillator
2、分析日志
32kHz 外部晶振缺失,使用内部150kHz振荡器可能导致定时精度下降,若硬件未焊接32kHz晶振,需在开发板上添加;若已有,检查焊接和电路设计
五、其他
1、原始日志
esp_psram: Reserving pool of 32K of internal memory for DMA/internal allocations
2、分析日志
内存预留,为DMA和内部操作预留32KB内部内存