|
MCU: Stm32H750xbGfx: V4.18.0
屏幕大小: 800 * 480
RGB格式: RGB565
GFX产生的位图存放在SD卡中,文件名"images.bin" 用FatFs文件系统, 通过Bitmap::cache(BITMAP_TEST_ID)把位图加载在到Sdram中使用
测试加载一张(800 * 480 * 2)Bytes大小的图片耗时5s. 5s一张图片, 这让人无法接受!!!!!
但是在测试Sd卡SDIO读写速度, 读取32M的数据只需要不到3s, 这速度跟实际使用时候差距怎么那么巨大, 请问是我使用有误吗??
文件系统在开始时候挂载, 然后就一直没有关闭, 文件系统中调用以下函数加载数据:
static uint32_t FatFsReadFile(uint8_t *pucDat, uint32_t ulAddr, uint32_t ulLen)
{
uint32_t ulRetLen;
FRESULT xResult;
char cPath[64];
// 1, Open File
sprintf(cPath, "%simages.bin", DiskPath);
xResult = f_open(&file, cPath, FA_OPEN_EXISTING | FA_READ);
if (xResult != FR_OK)
{
DebugPrintf("Fail -> Open images.bin\r\n");
return (false);
}
else{}
// 2, Set File Point
xResult = f_lseek(&file, ulAddr);
if (xResult != FR_OK)
{
DebugPrintf("Fail -> File set address.bin\r\n");
return (false);
}
else{}
// 3, Read File
xResult = f_read(&file, pucDat, ulLen, &ulRetLen);
if (ulRetLen > 0)
{
DebugPrintf("Pass -> Read images.bin\r\n");
}
else
{
DebugPrintf("Fail -> Read images.bin\r\n");
}
// 4, Close File
f_close(&file);
return (true);
}
|
|