完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
在针对v5.0.1中的例子rgb_panel在800X480的测试中发现帧率过低。
同样的硬件用Arduino例子测试(驱动:Arduino_GFX),帧率正好是rgb_pannel的两倍,cpu占用还低,arduino是66FPS CPU6% ,rgb_pannel是33FPS CPU17%:如果配置成 double frame buffer, 则7FPS, cpu 60%,是什么位置配置不对导致的吗? rgp_panel: Executing action: monitor Serial port COM4 Connecting.... Detecting chip type... ESP32-S3 Running idf_monitor in directory d:espressifframeworksesp-idf-v5.0.1examplesperipheralslcdrgb_panel Executing "D:Espressifpython_envidf5.0_py3.8_envScriptspython.exe D:/Espressif/frameworks/esp-idf-v5.0.1tools/idf_monitor.py -p COM4 -b 115200 --toolchain-prefix xtensa-esp32s3-elf- --target esp32s3 d:espressifframeworksesp-idf-v5.0.1examplesperipheralslcdrgb_panelbuildrgb_panel.elf --force-color -m 'D:Espressifpython_envidf5.0_py3.8_envScriptspython.exe' 'D:/Espressif/frameworks/esp-idf-v5.0.1toolsidf.py'"... --- WARNING: GDB cannot open serial ports accessed as COMx --- Using \.COM4 instead... --- idf_monitor on \.COM4 115200 --- --- Quit: Ctrl+] | Menu: Ctrl+T | Help: Ctrl+T followed by Ctrl+H --- ESP-ROM:esp32s3-20210327 Build:Mar 27 2021 rst:0x1 (POWERON),boot:0x8 (SPI_FAST_FLASH_BOOT) SPIWP:0xee 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 2nd stage bootloader 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 Flash Size : 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) boot: 0 nvs WiFi data 01 02 00009000 00006000 I (65) boot: 1 phy_init RF data 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) boot: Loaded app from partition at offset 0x10000 I (205) boot: Disabling RNG early entropy source... D (216) flash HPM: HPM with dummy, status is 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 (Pass) I (231) octal_psram: Latency : 0x01 (Fixed) I (237) octal_psram: VCC : 0x01 (3V) I (242) octal_psram: SRF : 0x01 (Fast Refresh) I (247) octal_psram: BurstType : 0x01 (Hybrid Wrap) I (253) octal_psram: BurstLen : 0x01 (32 Byte) I (259) octal_psram: Readlatency : 0x02 (10 cycles@Fixed) I (265) octal_psram: DriveStrength: 0x00 (1/1) D (271) MSPI Timing: tuning success, best point is index 4 I (276) esp_psram: Found 8MB PSRAM device I (280) esp_psram: Speed: 80MHz V mmu_psram: Instructions from flash page4 copy to SPIRAM page0, Offset: 4 V (324) mmu_psram: after copy instruction, page_id is 5 I (325) mmu_psram: Instructions copied and mapped to SPIRAM V (325) esp_psram: after copy .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: after copy rodata, page_id is 8 I (360) mmu_psram: Read only data copied and mapped to SPIRAM V (360) esp_psram: after copy .rodata, used page is 3, start_page is 8, psram_available_size is 7864320 B V (370) mmu: after coalescing, 1 regions are left V (374) mmu: found laddr is 0x80000 V (378) esp_psram: 8bit-aligned-region: actual_mapped_len is 0x780000 bytes 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: App cpu up. V CACHE_ERR: illegal error intr clr & ena mask is: 0x3f V CACHE_ERR: core 1 access error intr clr & ena mask is: 0x1f I (820) esp_psram: SPI SRAM memory test OK D (820) efuse: In EFUSE_BLK2__DATA4_REG is used 2 bits starting with 0 bit D (821) efuse: In EFUSE_BLK2__DATA4_REG is used 8 bits starting with 13 bit D (836) clk: RTC_SLOW_CLK calibration value: 3736973 V CACHE_ERR: illegal error intr clr & ena mask is: 0x3f V CACHE_ERR: core 0 access error intr clr & ena mask is: 0x1f I (844) cpu_start: Pro cpu start user code I (848) cpu_start: cpu freq: 160000000 Hz I (853) cpu_start: Application information: I (857) cpu_start: Project name: rgb_panel I (863) cpu_start: App version: v5.0.1-dirty I (868) cpu_start: Compile time: Apr 2 2023 15:40:11 I (874) cpu_start: ELF file 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: Max chip rev: v0.99 I (895) cpu_start: Chip rev: v0.1 V (900) memory_layout: reserved range is 0x3c075664 - 0x3c07568c D (906) memory_layout: Checking 6 reserved memory ranges: D (911) memory_layout: Reserved memory range 0x3c000000 - 0x3e000000 D (918) memory_layout: Reserved memory range 0x3fc84000 - 0x3fc93600 D (924) memory_layout: Reserved memory range 0x3fc93600 - 0x3fc97960 D (930) memory_layout: Reserved memory range 0x3fceee34 - 0x3fcf0000 D (937) memory_layout: Reserved memory range 0x40374000 - 0x40383600 0x40374000: _WindowOverflow4 at D:/Espressif/frameworks/esp-idf-v5.0.1/components/freertos/FreeRTOS-Kernel/portable/xtensa/xtensa_vectors.S:1743 D (943) memory_layout: Reserved memory range 0x600fe000 - 0x600fe010 D (950) memory_layout: Building list of available memory regions: V (956) memory_layout: Examining memory region 0x3c000000 - 0x3e000000 V (963) memory_layout: Region 0x3c000000 - 0x3e000000 inside of reserved 0x3c000000 - 0x3e000000 V (971) memory_layout: Examining memory region 0x40374000 - 0x40378000 0x40374000: _WindowOverflow4 at D:/Espressif/frameworks/esp-idf-v5.0.1/components/freertos/FreeRTOS-Kernel/portable/xtensa/xtensa_vectors.S:1743 0x40378000: bootloader_flash_execute_command_common at D:/Espressif/frameworks/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 at D:/Espressif/frameworks/esp-idf-v5.0.1/components/freertos/FreeRTOS-Kernel/portable/xtensa/xtensa_vectors.S:1743 0x40378000: bootloader_flash_execute_command_common at D:/Espressif/frameworks/esp-idf-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: Start of region 0x3fc90000 - 0x3fca0000 overlaps reserved 0x3fc84000 - 0x3fc93600 V (1019) memory_layout: Start of region 0x3fc93600 - 0x3fca0000 overlaps reserved 0x3fc93600 - 0x3fc97960 D (1028) memory_layout: Available memory region 0x3fc97960 - 0x3fca0000 V (1035) 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: Examining memory region 0x3fcc0000 - 0x3fcd0000 D (1068) memory_layout: Available memory region 0x3fcc0000 - 0x3fcd0000 V (1075) memory_layout: Examining memory region 0x3fcd0000 - 0x3fce0000 D (1082) memory_layout: Available memory region 0x3fcd0000 - 0x3fce0000 V (1088) memory_layout: Examining memory region 0x3fce0000 - 0x3fce9710 D (1095) memory_layout: Available memory region 0x3fce0000 - 0x3fce9710 V (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: Available memory region 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 available for dynamic allocation: D (1168) heap_init: New heap initialised at 0x3fc97960 I (1173) heap_init: At 3FC97960 len 00051DB0 (327 KiB): D/IRAM I (1180) heap_init: At 3FCE9710 len 00005724 (21 KiB): STACK/DRAM D (1187) heap_init: New heap initialised at 0x3fcf0000 I (1192) heap_init: At 3FCF0000 len 00008000 (32 KiB): DRAM D (1198) heap_init: New heap initialised at 0x600fe010 I (1203) heap_init: At 600FE010 len 00001FF0 (7 KiB): RTCRAM I (1210) esp_psram: Adding pool of 7680K of PSRAM memory to heap allocator V (1217) intr_alloc: esp_intr_alloc_intrstatus (cpu 0): checking args V (1224) intr_alloc: esp_intr_alloc_intrstatus (cpu 0): Args okay. Resulting flags 0x40E D (1232) intr_alloc: Connected src 39 to 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: Detected size(16384k) larger than the size in the binary image header(2048k). Using the size in the binary image header. D (1281) cpu_start: calling init function: 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: calling init function: 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: esp_init_app_elf_sha256 at D:/Espressif/frameworks/esp-idf-v5.0.1/components/esp_app_format/esp_app_desc.c:69 D (1296) cpu_start: calling init function: 0x42006ff0 on core: 0 0x42006ff0: __esp_system_init_fn_esp_timer_startup_init at 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): checking args V (1309) intr_alloc: esp_intr_alloc_intrstatus (cpu 0): Args okay. Resulting flags 0xC02 D (1317) intr_alloc: Connected src 59 to int 3 (cpu 0) D (1322) cpu_start: calling init function: 0x42002730 on core: 0 0x42002730: __esp_system_init_fn_init_components0 at D:/Espressif/frameworks/esp-idf-v5.0.1/components/esp_system/startup.c:484 V (1328) intr_alloc: esp_intr_alloc_intrstatus (cpu 0): checking args V (1335) intr_alloc: esp_intr_alloc_intrstatus (cpu 0): Args okay. Resulting flags 0x40E D (1343) intr_alloc: Connected src 79 to int 9 (cpu 0) I (1348) cpu_start: Starting scheduler on PRO CPU. V (1354) intr_alloc: esp_intr_alloc_intrstatus (cpu 0): checking args V (1354) intr_alloc: esp_intr_alloc_intrstatus (cpu 0): Args okay. Resulting flags 0x402 D (1354) intr_alloc: Connected src 57 to int 12 (cpu 0) V (1354) intr_alloc: esp_intr_alloc_intrstatus (cpu 1): checking args V (1364) intr_alloc: esp_intr_alloc_intrstatus (cpu 1): Args okay. Resulting flags 0x40E D (1364) intr_alloc: Connected src 80 to int 2 (cpu 1) I (1374) cpu_start: Starting scheduler on APP CPU. V (1384) intr_alloc: esp_intr_alloc_intrstatus (cpu 1): checking args V (1384) intr_alloc: esp_intr_alloc_intrstatus (cpu 1): Args okay. Resulting flags 0x402 D (1394) intr_alloc: Connected src 58 to int 3 (cpu 1) D (1404) heap_init: New heap initialised at 0x3fce9710 I (1404) esp_psram: Reserving pool of 32K of internal memory for DMA/internal allocations D (1414) esp_psram: Allocating block of size 32768 bytes V (1414) intr_alloc: esp_intr_alloc_intrstatus (cpu 0): checking args V (1424) intr_alloc: esp_intr_alloc_intrstatus (cpu 0): Args okay. Resulting flags 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 I (1444) gpio: GPIO[2]| InputEn: 0| OutputEn: 1| OpenDrain: 0| Pullup: 0| Pulldown: 0| Intr:0 I (1454) example: Install RGB LCD panel driver V (1504) intr_alloc: esp_intr_alloc_intrstatus (cpu 0): checking args V (1504) intr_alloc: esp_intr_alloc_intrstatus (cpu 0): Args okay. Resulting flags 0x90E D (1514) intr_alloc: Connected src 24 to int 17 (cpu 0) D (1514) gdma: new group (0) at 0x3c1f7944 D (1524) gdma: new pair (0,0) at 0x3c1f7980 D (1524) gdma: new tx channel (0,0) at 0x3c13c104 D (1524) gdma: tx channel (0,0), (4:64) bytes aligned, burst enabled V (1534) intr_alloc: esp_intr_alloc_intrstatus (cpu 0): checking args V (1544) intr_alloc: esp_intr_alloc_intrstatus (cpu 0): Args okay. Resulting flags 0x80E D (1554) intr_alloc: Connected src 71 to int 18 (cpu 0) D (1554) gdma: install interrupt service for tx channel (0,0) D (1564) lcd_panel.rgb: new rgb panel(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: fb[1] @0x3c13c140 I (1584) example: Register event callbacks I (1584) example: Initialize RGB LCD panel D (1594) lcd_hal: n=4,a=9,b=4,mo=2 D (1594) lcd_panel.rgb: rgb panel(0) start, pclk=18000000Hz I (1604) example: Turn on LCD backlight I (1604) example: Initialize LVGL library I (1604) example: Allocate separate LVGL draw buffers from PSRAM I (1614) example: Register display driver to LVGL I (1624) example: Install LVGL tick timer I (1624) example: Display LVGL Scatter Chart |
|
相关推荐
1个回答
|
|
在这种情况下,帧率过低可能是由以下几个原因导致的:
1. **代码优化**:可能rgb_panel的代码没有进行足够的优化,导致效率较低。与Arduino_GFX相比,可能存在一些不必要的计算或者循环。 2. **内存管理**:在rgb_panel中,可能存在内存分配和释放的问题,导致CPU占用较高。检查代码,确保内存管理得当。 3. **双缓冲**:当配置为双缓冲时,帧率降低到7FPS,CPU占用60%。这可能是因为双缓冲需要更多的内存和计算资源。在这种情况下,可以尝试优化双缓冲的实现,或者考虑使用其他方法来提高性能。 4. **ESP-IDF版本**:确保你使用的ESP-IDF版本与rgb_panel示例兼容。如果版本不兼容,可能会导致性能问题。 5. **硬件限制**:检查硬件是否满足rgb_panel示例的需求。如果硬件性能不足,可能会导致帧率降低。 为了解决这个问题,你可以尝试以下步骤: 1. **优化代码**:检查rgb_panel示例的代码,看看是否有可以优化的地方,例如减少不必要的计算、循环等。 2. **内存管理**:检查代码中的内存分配和释放,确保内存管理得当。 3. **调整双缓冲实现**:尝试优化双缓冲的实现,或者寻找其他方法来提高性能。 4. **更新ESP-IDF**:确保你使用的ESP-IDF版本与rgb_panel示例兼容。如果有更新,请尝试更新到最新版本。 5. **测试硬件**:检查硬件是否满足示例的需求,如果硬件性能不足,可能需要更换更高性能的硬件。 通过以上步骤,你应该能够找到导致帧率过低的原因,并采取相应的措施来解决问题。 |
|
|
|
只有小组成员才能发言,加入小组>>
166个成员聚集在这个小组
加入小组1149 浏览 1 评论
582浏览 6评论
480浏览 5评论
有没有办法在不使用混杂模式的情况下实现Wifi驱动程序接收缓冲区访问中断呢?
465浏览 5评论
466浏览 4评论
441浏览 4评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-24 02:21 , Processed in 1.042487 second(s), Total 79, Slave 63 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号