主要参考资料:
乐鑫ESP-IDF官方手册SPI Flash and External SPI RAM Configuration: https://docs.espressif.com/projects/esp-idf/zh_CN/release-v5.0/esp32s3/api-guides/flash_psram_config.html
驱动和端口优化
下面是一张图像文件/图像C array从读取到显示的整个底层路径,有了一个路径,我们就可以依次对每个环节进行优化。
RAM与PSRAM
从上图中可以看到,选择RAM还是PSRAM是两条不同的通道。(当然,RAM后可以接CPU,但是有DMA干嘛不用。另外DMA是只有RAM可以使用,在heap_caps_malloc()中设置MALLOC_CAP_DMA)。
ESP32中RAM的问题就是容量太小,留给data用的只有320K,对于大屏会有明显刷屏感。
PSRAM可以通过分配大内存,以空间换时间。但是对于大屏,第一张图的加载速度会较慢。