|

楼主 |
发表于 2018-5-22 15:52:45
|
显示全部楼层
SD_Error SD_SelectDeselect(uint64_t addr);
SD_Error SD_ReadBlock(uint8_t *readbuff, uint64_t ReadAddr, uint16_t BlockSize);
SD_Error SD_ReadMultiBlocks(uint8_t *readbuff, uint64_t ReadAddr, uint16_t BlockSize, uint32_t NumberOfBlocks);
SD_Error SD_WriteBlock(uint8_t *writebuff, uint64_t WriteAddr, uint16_t BlockSize);
SD_Error SD_WriteMultiBlocks(uint8_t *writebuff, uint64_t WriteAddr, uint16_t BlockSize, uint32_t NumberOfBlocks);
SD_Error SD_Erase(uint64_t startaddr, uint64_t endaddr);
以上在SD卡驱动里,在我的程序上都把地址改为64位,并且调用以上函数的地方也强制类型转换了,如下:
Status = SD_ReadBlock(buff, (uint64_t)sector << 9 , SECTOR_SIZE); //
但当卡容量大于4G时在电脑上还是打不开,提示需要格式化,小于4G时就可以上打开。我的程序是用SD卡模拟U盘功能。
|
|