luban_lite 平台如何不使用文件系统直接block 的方式读、擦除、写sd卡,
基于sdmc,或者绕过sdmc都可以,只要能实现。
不想用文件系统是因为文件大了的时候读写会变慢,做数据记录的,一条数据至少一个block,通常1~4个block,整卡循环读写,索引放另外一个Fram存储器里面。
项目是其他平台移植过来的,NXP RT1021的实现接口如下:
status_t SD_EraseBlocks(sd_card_t *card, uint32_t startBlock, uint32_t blockCount)
status_t SD_ReadBlocks(sd_card_t *card, uint8_t *buffer, uint32_t startBlock, uint32_t blockCount)
status_t SD_WriteBlocks(sd_card_t *card, const uint8_t *buffer, uint32_t startBlock, uint32_t blockCount)
STH743平台如下:
HAL_StatusTypeDef HAL_SD_Erase(SD_HandleTypeDef *hsd, uint32_t BlockStartAdd, uint32_t BlockEndAdd)
HAL_StatusTypeDef HAL_SD_WriteBlocks(SD_HandleTypeDef *hsd, const uint8_t *pData, uint32_t BlockAdd,
uint32_t NumberOfBlocks, uint32_t Timeout)
HAL_StatusTypeDef HAL_SD_ReadBlocks(SD_HandleTypeDef *hsd, uint8_t *pData, uint32_t BlockAdd, uint32_t NumberOfBlocks,
uint32_t Timeout)
想着以后主要平台往国产芯片方向走。
最近编辑记录 pineyer (今天 11:11:51)
离线