关于ESP32P4 SD卡读取速率慢的问题
使用了微雪的ESP32P4 86盒的开发板,
测试发现SD卡读取4.8MB的文件的时间大概是3.5s,速率约为1.4M/s,但是使用官方的SDMMC例程可以达到5M/s,测试发现有这几个问题导致的。通过这几个修改之后,读取相同的文件的时间大概是0.7s,速率约为7.1M/s,这已经可以接受了,速率提升了近5倍!!
- sdkconfig中设置FATFS_VFS_FSTAT_BLKSIZE为非0值,例如4096,否则会导致读取速度变慢 (最关键)
FATFS_VFS_FSTAT_BLKSIZE=4096 - IDF需要 >=V5.5.5,SDMMC的库中才有这个配置,设置unaligned_multi_block_rw_max_chunk_size (可能没有用)
sdmmc_host_thost=SDMMC_HOST_DEFAULT();host.unaligned_multi_block_rw_max_chunk_size=8 - 可以使用高速的TF卡,例如即使设置了最大速率为40MHz,但是实际速率也有20MHz (提升不大)
sdmmc_host_thost=SDMMC_HOST_DEFAULT();host.slot=SDMMC_HOST_SLOT_0;host.max_freq_khz=40*1000;//设置最大速率为40MHz,实际只有20MHz....sdmmc_card_print_info(stdout,bsp_sdcard);//这个函数可以打印出卡的信息,包括速率等,发现速率只有20MHz