我正在尝试实现 FATFS 库的接口函数。该实现需要一个 uint8_t* 到必须由不同库写入内部 SD 卡的数据。应使用函数 BSP_SD_WriteBlocks(uint32_t*, uint64_t, uint32_t, uint32_t) 将数据写入库。(见下文)
/*
* Write data from a specific sector
*/
int SDMMC::disk_write(const uint8_t *buffer, uint32_t sector, uint32_t count)
{
int res = BSP_SD_WriteBlocks((uint32_t*)buffer, (uint64_t)sector, 512, count);
if (res == MSD_OK) {
return RES_OK;
} else {
return RES_ERROR;
}
}
如您所见,我正在尝试将 8 位内存地址转换为 32 位内存地址,但不认为这是正确的方法。
不幸的是,我无法更改函数参数,因此 disk_write 函数必须接受 uint8_t*,而 BSP_SD_WriteBlocks 仅接受 uint32_t*。
什么是最好的 - 和禁食的方法 - 这样做?