同样的硬件用Arduino例子测试(驱动:Arduino_GFX、Arduino_ESP32RGBPanel、Arduino_RPi_DPI_RGBPanel),帧率正好是rgb_pannel的两倍,CPU占用率还是很低,arduino是6% cpu used和66 FPS,rgb_pannel是17%使用的 CPU 和 33FPS ,错误的配置是什么?
rgp_panel:
Execu
ting action: monitor
Serial port COM4
Connecting....
Detecting chip type... ESP32-S3
Running idf_monitor 目录 d:\espressif\frameworks\esp-idf-v5.0.1\examples\peripherals\lcd\rgb_panel
执行 "D:\Espressif\python_env\idf5.0_py3.8_env\Scripts\python.exe D:/Espressif/frameworks/esp-idf-v5.0.1\tools/idf_monitor.py -p COM4 -b 115200 --toolchain- prefix xtensa-esp32s3-elf- --target esp32s3 d:\espressif\frameworks\esp-idf-v5.0.1\examples\peripherals\lcd\rgb_panel\build\rgb_panel.elf --force-color -m 'D:\ Espressif\python_env\idf5.0_py3.8_env\Scripts\python.exe' 'D:/Espressif/frameworks/esp-idf-v5.0.1\tools\idf.py'"...
--- 警告:GDB 无法打开作为 COMx 访问的串行端口
--- 使用 \\.\COM4 代替...
--- idf_monitor on \\.\COM4 115200 ---
--- 退出:Ctrl+] | 菜单:Ctrl+T | 帮助:Ctrl+T 后跟 Ctrl+H ---
ESP-ROM:esp32s3-20210327
Build:Mar 27 2021
rst:0x1 (POWERON),boot:0x8 (SPI_FAST_FLASH_BOOT)
SPIWP:
mode:DIO, clock div:1
load:0x3fce3810,len:0x164c
load:0x403c9700,len:0xbe0
load:0x403cc700,len:0x2ef8
entry 0x403c9900
I (25) boot: ESP-IDF v5.0.1-dirty 第二阶段引导程序
I ( 25) boot: compile time 15:40:34
I (25) boot: chip revision: v0.1
I (27) boot.esp32s3: Boot SPI Speed : 80MHz
I (32) boot.esp32s3: SPI Mode : DIO
I ( 37) boot.esp32s3: SPI 闪存大小:2MB
I (41) boot: Enabling RNG early entropy source...
I (47) boot: Partition Table:
I (50) boot: ## Label Usage Type ST Offset Length
I ( 58) 引导:0 nvs WiFi 数据 01 02 00009000 00006000
I (65) 引导:1 phy_init RF 数据 01 01 0000f000 00001000
I (73) boot: 2 factory factory app 00 00 00010000 00100000
I (80) boot: End of partition table
I (84) esp_image: segment 0: paddr=00010020 vaddr=3c050020 size=2567ch (153212) map
I (120) esp_image: segment 1: paddr=000356a4 vaddr=3fc93600 size=031d8h (12760) load I (
123) esp_image: segment 2: paddr=00038884 vaddr=40374000 size=07794h (30612) load
I (133) esp_image: segment 3: paddr =00040020 vaddr=42000020 size=4cf7ch (315260) map
I (191) esp_image: segment 4: paddr=0008cfa4 vaddr=4037b794 size=07e28h ( 32296) load I (205
) 启动:从偏移量为 0x10000
I ( 205) 的分区加载应用程序) 引导:禁用 RNG 早期熵源...
D (216) 闪存 HPM:带虚拟的 HPM,状态为 3
I (217) octal_psram: vendor id: 0x0d (AP)
I (217) octal_psram: dev id: 0x02 (generation 3)
I (221) octal_psram: density: 0x03 (64 Mbit)
I (226) octal_psram: good-die: 0x01(通过)
I (231)octal_psram:延迟:0x01(固定)
I(237)octal_psram:VCC:0x01(3V)
I(242)octal_psram:SRF:0x01(快速刷新)
I(247)octal_psram:BurstType:0x01 (混合包装)
I (253)octal_psram:BurstLen:0x01(32 字节)
I(259)octal_psram:Readlatency:0x02(10 个周期@固定)
I(265)octal_psram:DriveStrength:0x00(1/1)
D(271) MSPI 时序:调整成功,最好的点是索引 4
I (276) esp_psram:找到 8MB PSRAM 设备
I (280) esp_psram:速度:80MHz
V mmu_psram:指令从闪存 page4 复制到 SPIRAM page0,偏移量:4
V (324) mmu_psram:复制指令后,page_id 为 5
I (325) mmu_psram:指令复制并映射到 SPIRAM
V (325) esp_psram:复制后.text , used page is 5, start_page is 5, psram_available_size is 8060928 B
V mmu_psram: Rodata from flash page1 copy to SPIRAM page5, Offset: -4
V (360) mmu_psram: 复制rodata后,page_id为8
I (360) mmu_psram: Read只有数据复制并映射到 SPIRAM
V (360) esp_psram:复制 .rodata 后,使用的页面为 3,start_page 为 8,psram_available_size 为 7864320 B
V (370) mmu:合并后,剩下 1 个区域
V (374) mmu:发现 laddr 是 0x80000
V (378) esp_psram: 8bit-aligned-region: actual_mapped_len 为 0x780000 字节
V (385) esp_psram: 8bit-aligned-range: 0x780000 B, starting from: 0x3c080000
I (392) cpu_start: Pro cpu up.
I (396) cpu_start: Starting app cpu, entry point is 0x40375404
0x40375404: call_start_cpu1 at D:/Espressif/frameworks/esp-idf-v5.0.1/components/esp_system/port/cpu_start.c:142
I (0) cpu_start:应用 cpu 启动。
V CACHE_ERR:非法错误 intr clr & ena 掩码为:0x3f
V CACHE_ERR:核心 1 访问错误 intr clr & ena 掩码为:0x1f
I (820) esp_psram:SPI SRAM 内存测试 OK
D (820) efuse:在 EFUSE_BLK2__DATA4_REG 中使用 2 bits starting with 0 bit
D (821) efuse: 在 EFUSE_BLK2__DATA4_REG 中使用 8 bits starting with 13 bit
D (836) clk:RTC_SLOW_CLK 校准值:3736973
V CACHE_ERR:非法错误 intr clr & ena 掩码为:0x3f V
CACHE_ERR:核心 0 访问错误 intr clr & ena 掩码为:0x1f
I (844) cpu_start:Pro cpu 启动用户代码
I (848) cpu_start: cpu freq: 160000000 Hz
I (853) cpu_start: 应用信息:
I (857) cpu_start: 项目名称: rgb_panel
I (863) cpu_start: App version: v5.0.1-dirty
I (868) cpu_start:编译时间:2023 年 4 月 2 日 15:40:11
I (874) cpu_start: ELF 文件 SHA256: ce6a4b8e7f314e06...
I (880) cpu_start: ESP-IDF: v5.0.1-dirty
I (885) cpu_start: Min chip rev: v0.0
I (890) cpu_start:最大芯片版本:v0.99
I (895) cpu_start:芯片版本:v0.1
V (900) memory_layout: 保留范围为0x3c075664 - 0x3c07568c
D (906) memory_layout: 检查6个保留内存范围:
D (911) memory_layout: 保留内存范围0x3c000000 - 0x3e000000
D (918) memory_layout: 保留内存范围0x3fc84000 - 360x30
D 924)Memory_layout:保留内存范围0x3FC93600-0x3FC97960
D(930)Memory_layout:保留存储器范围0x3fceee34-0x3fcf0000 d(937)
d(937)memory_layout:
remome_layout:保留存储器范围: .0.1/components/freertos/FreeRTOS-Kernel/portable/xtensa/xtensa_vectors.S:1743
D (943) memory_layout: 保留内存范围 0x600fe000 - 0x600fe010
D (950) memory_layout:构建可用内存区域列表:
V (956) memory_layout:检查内存区域 0x3c000000 - 0x3e000000
V (963) memory_layout:区域 0x3c000000 - 0x3e000000 在保留区域 0x3c000000 - 0x3e000000
V (971) 检查 memory_layout: 0x40374000 - 0x40378000
0x40374000: _WindowOverflow4 位于 D:/Espressif/frameworks/esp-idf-v5.0.1/components/freertos/FreeRTOS-Kernel/portable/xtensa/xtensa_vectors.S:1743
0x40378000: bootloader_flash/framemon:Espressif/Esp-idf-v5.0.1/components/freertos/FreeRTOS-Kernel/portable/xtensa/xtensa_vectors.S:1743 esp-idf-v5.0.1/components/bootloader_support/bootloader_flash/src/bootloader_flash.c:554 (discriminator 4)
V (978) memory_layout: Region 0x40374000 - 0x40378000 inside of reserved 0x40374000 - 0x40383600
0x40374000: _WindowOverflow4 在 D:/Espressif/frameworks/esp-idf-v5.0.1/components/freertos/FreeRTOS-Kernel/portable/xtensa/xtensa_vectors.S:1743
0x40378000: bootloader_flash_execute_command_common 在 D:/Espressif/frameworks/esp-idfs -v5.0.1/components/bootloader_support/bootloader_flash/src/bootloader_flash.c:554 (discriminator 4)
0x40374000: _WindowOverflow4 at D:/Espressif/frameworks/esp-idf-v5.0.1/components/freertos/FreeRTOS-Kernel/portable /xtensa/xtensa_vectors.S:1743
V (987) memory_layout: Examining memory region 0x3fc88000 - 0x3fc90000
V (993) memory_layout: Region 0x3fc88000 - 0x3fc90000 inside of reserved 0x3fc84000 - 0x3fc93600
V (1002) memory_layout: Examining memory region 0x3fc90000 - 0x3fca0000
v(1009)memory_layout:区域开始0x3fc90000-0x3fca0000保留0x3fc84000-0x3fc84000-0x3fc93600 v(
1019
)memory_layout:区域启动0x3fc93600 - 0x3fca0000 ederever nobere nible _loenter_0000 + 0x3fc9333333333333333333333333333333fc933333333fcc93333333fcc93333333fcc93333333fcc93333333fcc93333333fcc93333333fc
in memory_layout: Examining memory region 0x3fca0000 - 0x3fcb0000
D (1042) memory_layout: Available memory region 0x3fca0000 - 0x3fcb0000
V (1048) memory_layout: Examining memory region 0x3fcb0000 - 0x3fcc0000
D (1055) memory_layout: Available memory region 0x3fcb0000 - 0x3fcc0000
V (1062) memory_layout:检查内存区域 0x3fcc0000 - 0x3fcd0000
D (1068) memory_layout:可用内存区域 0x3fcc0000 - 0x3fcd0000
V(1075)MOMEME_LAYOUT:检查内存区域0x3FCD0000-0X3FCE0000
D(1082)MOMEME_LAYOUT:可用内存区域0x3FCD0000-0X3FCE0000
V(1088)Memory_layout:检查存储器区域0x3fce0000 -0x3fce0000 -0x3fce9710 D(109710
D
(109710 D)
1102) memory_layout: Examining memory region 0x3fce9710 - 0x3fcf0000
V (1108) memory_layout: End of region 0x3fce9710 - 0x3fcf0000 overlaps reserved 0x3fceee34 - 0x3fcf0000
D (1118) memory_layout: Available memory region 0x3fce9710 - 0x3fceee34
V (1125) memory_layout: Examining memory region 0x3fcf0000 - 0x3fcf8000
D (1131) memory_layout:可用内存区域 0x3fcf0000 - 0x3fcf8000
V (1138) memory_layout: Examining memory region 0x600fe000 - 0x60100000
V (1145) memory_layout: Start of region 0x600fe000 - 0x60100000 overlaps reserved 0x600fe000 - 0x600fe010
D (1154) memory_layout: Available memory region 0x600fe010 - 0x60100000
I (1161) heap_init: Initializing. 可用于动态分配的 RAM:
D (1168) heap_init:新堆在 0x3fc97960
I (1173) heap_init:在 3FC97960 len 00051DB0 (327 KiB):D/IRAM
I (1180) heap_init:在 3FCE9710 len 00005724 (21 KiB): STACK/DRAM
D (1187) heap_init:新堆在 0x3fcf0000
I (1192) heap_init:在 3FCF0000 len 00008000 (32 KiB):DRAM
D (1198) heap_init:新堆在 0x600fe010 初始化
I(1203)heap_init:在 600FE010 len 00001FF0(7 KiB):RTCRAM
I(1210)esp_psram:将 7680K 的 PSRAM 内存池添加到堆分配器
V(1217)intr_alloc:esp_intr_alloc_intrstatus(cpu 0):检查参数
V(1224) intr_alloc: esp_intr_alloc_intrstatus (cpu 0): 参数没问题。结果标志 0x40E
D (1232) intr_alloc:将 src 39 连接到 int 2 (cpu 0)
V (1237) memspi:raw_chip_id:1840C8
V (1241) memspi:chip_id:C84018 V (1244)
memspi:raw_chip_id:1840C8
V (1248) memspi: chip_id: C84018
D (1252) spi_flash: trying chip: issi
D (1256) spi_flash: trying chip: gd
I (1259) spi_flash: detected chip: gd
I (1264) spi_flash: flash io: dio
W (1268) spi_flash:检测到的大小 (16384k) 大于二进制图像标头中的大小 (2048k)。使用二进制图像标头中的大小。
D (1281) cpu_start: 调用初始化函数: 0x42038de8
0x42038de8: esp_ipc_init at D:/Espressif/frameworks/esp-idf-v5.0.1/components/esp_system/esp_ipc.c:115
D (1286) cpu_start: 调用初始化函数: 0x42002a60
0x42002a60: esp_reset_reason_init at D:/Espressif/frameworks/esp-idf-v5.0.1/components/esp_system/port/soc/esp32s3/reset_reason.c:67
D (1291) cpu_start: calling init function: 0x42001c18
0x42001c18: 5x42001c_it2appelf_in :/Espressif/frameworks/esp-idf-v5.0.1/components/esp_app_format/esp_app_desc.c:69
D (1296) cpu_start: 调用 init 函数: 0x42006ff0 on core: 0
0x42006ff0: __esp_system_init_fn_esp_timer_startup_init 在 D:/Espressif/frameworks/esp-idf-v5.0.1/components/esp_timer/src/esp_timer.c:509
V (1302) intr_alloc: esp_intr_alloc_intrstatus (cpu 0): 检查 args09:
V in (13) esp_intr_alloc_intrstatus (cpu 0): 参数没问题。结果标志 0xC02
D (1317) intr_alloc: 将 src 59 连接到 int 3 (cpu 0)
D (1322) cpu_start: 调用初始化函数: 0x42002730 on core: 0
0x42002730: __esp_system_init_fn_init_components0 at D:/Espressif/frameworks/esp-idf5 .0.1/components/esp_system/startup.c:484
V (1328) intr_alloc: esp_intr_alloc_intrstatus (cpu 0): 检查参数
V (1335) intr_alloc: esp_intr_alloc_intrstatus (cpu 0): Args okay. 结果标志 0x40E
D (1343) intr_alloc:将 src 79 连接到 int 9 (cpu 0)
I (1348) cpu_start:在 PRO CPU 上启动调度程序。
V (1354) intr_alloc: esp_intr_alloc_intrstatus (cpu 0): 检查参数
V (1354) intr_alloc: esp_intr_alloc_intrstatus (cpu 0): Args okay. 结果标志 0x402
D (1354) intr_alloc: 连接 src 57 到 int 12 (cpu 0)
V (1354) intr_alloc: esp_intr_alloc_intrstatus (cpu 1): 检查参数
V (1364) intr_alloc: esp_intr_alloc_intrstatus (cpu 1): Args okay. 结果标志 0x40E
D (1364) intr_alloc:将 src 80 连接到 int 2 (cpu 1)
I (1374) cpu_start:在 APP CPU 上启动调度程序。
V (1384) intr_alloc: esp_intr_alloc_intrstatus (cpu 1): 检查参数
V (1384) intr_alloc: esp_intr_alloc_intrstatus (cpu 1): 参数没问题。结果标志 0x402
D (1394) intr_alloc: 连接 src 58 到 int 3 (cpu 1)
D (1404) heap_init: 新堆初始化在 0x3fce9710
I (1404) esp_psram: 为 DMA/内部分配保留 32K 内存池
D ( 1414) esp_psram: 分配大小为 32768 字节的块
V (1414) intr_alloc: esp_intr_alloc_intrstatus (cpu 0): 检查参数
V (1424) intr_alloc: esp_intr_alloc_intrstatus (cpu 0): Args okay. 结果标志 0xE
D (1434) intr_alloc: Connected src 52 to int 13 (cpu 0)
I (1434) example: Create semaphores
I (1444) example: Turn off LCD backlight
我 (1444) gpio: GPIO[2]| 输入En:0| 输出En:1| 开漏:0| 上拉:0| 下拉:0| Intr:0
I (1454) 示例:安装 RGB LCD 面板驱动程序
V (1504) intr_alloc: esp_intr_alloc_intrstatus (cpu 0): checking args
V (1504) intr_alloc: esp_intr_alloc_intrstatus (cpu 0): Args okay. 结果标志 0x90E
D (1514) intr_alloc:将 src 24 连接到 int 17 (cpu 0)
D (1514) gdma:新组 (0) 位于 0x3c1f7944
D (1524) gdma:新对 (0,0) 位于 0x3c1f7980
D (1524) ) gdma: 新的 tx 通道 (0,0) 在 0x3c13c104
D (1524) gdma: tx 通道 (0,0), (4:64) 字节对齐,突发启用
V (1534) intr_alloc: esp_intr_alloc_intrstatus (cpu 0): 检查参数
V (1544) intr_alloc: esp_intr_alloc_intrstatus (cpu 0): 参数没问题。结果标志 0x80E
D (1554) intr_alloc:将 src 71 连接到 int 18 (cpu 0)
D (1554) gdma:为 tx 通道安装中断服务 (0,0)
D (1564) lcd_panel.rgb:新 rgb 面板 (0) @0x3fc983e0, num_fbs=2, fb_size=768000, bb0 @0x3fc9859c, bb1 @0x3fca0100, bb_size=16000 D (1574
) lcd_panel.rgb: fb[
0] @0x3c080900 D (1574) lcd_panel.rgb]3:0x30[
I (1584) 示例:注册事件回调
I (1584) 示例:初始化 RGB LCD 面板
D (1594) lcd_hal: n=4,a=9,b=4,mo=2
D (1594) lcd_panel.rgb: rgb 面板(0)start,pclk=18000000Hz
I(1604)例:打开LCD背光
I(1604)例:初始化LVGL库
I (1604) 示例:从 PSRAM 分配单独的 LVGL 绘制缓冲区
I (1614) 示例:将显示驱动程序注册到 LVGL
I (1624) 示例:安装 LVGL 滴答计时器
I (1624) 示例:显示 LVGL 散点图