Exemple #1
0
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;
}