DRESULT disk_read(BYTE drv, BYTE *buff, DWORD sector, BYTE count) { U8 result; DRESULT res = RES_ERROR; U32 addr, len; if(sdMed.blockSize < SECTOR_SIZE_DEFAULT) { addr = sector * (SECTOR_SIZE_DEFAULT / sdMed.blockSize); len = count * (SECTOR_SIZE_DEFAULT / sdMed.blockSize); } else { addr = sector; len = count; } result = MEDIA_Read(addr, (void*)buff, len, NULL, NULL); if( result == MED_STATUS_SUCCESS ) { res = RES_OK; } else { TRACE_ERR("MED_Read pb: 0x%X", result); res = RES_ERROR; } return res; }
/** * @brief Reads Sector(s) * @param lun : not used * @param *buff: Data buffer to store read data * @param sector: Sector address (LBA) * @param count: Number of sectors to read (1..128) * @retval DRESULT: Operation result */ DRESULT PPP_read(BYTE lun, BYTE *buff, DWORD sector, UINT count) { DRESULT res = RES_OK; if(MEDIA_Read((uint32_t*)buff, sector, count) != PPP_OK) { res = RES_ERROR; } return res; }