/*-----------------------------------------------------------------------*/ /* Low level disk I/O module skeleton for FatFs (C)ChaN, 2007 */ /*-----------------------------------------------------------------------*/ /* This is a stub disk I/O module that acts as front end of the existing */ /* disk I/O modules and attach it to FatFs module with common interface. */ /*-----------------------------------------------------------------------*/ #include "diskio.h" /*-----------------------------------------------------------------------*/ /* Initialize a Drive */ DSTATUS disk_initialize ( BYTE drv /* Physical drive number (0..) */ ) { return FR_OK; } /*-----------------------------------------------------------------------*/ /* Return Disk Status */ DSTATUS disk_status ( BYTE drv /* Physical drive number (0..) */ ) { return FR_OK; } /*-----------------------------------------------------------------------*/ /* Read Sector(s) */ DRESULT disk_read ( BYTE drv, /* Physical drive number (0..) */ BYTE *buff, /* Data buffer to store read data */ DWORD sector, /* Sector address (LBA) */ BYTE count /* Number of sectors to read (1..128) */ ) { DataflashManager_ReadBlocks_RAM(sector, count, buff); return RES_OK; } /*-----------------------------------------------------------------------*/ /* Write Sector(s) */ #if _READONLY == 0 DRESULT disk_write ( BYTE drv, /* Physical drive number (0..) */ const BYTE *buff, /* Data to be written */ DWORD sector, /* Sector address (LBA) */ BYTE count /* Number of sectors to write (1..128) */ ) { DataflashManager_WriteBlocks_RAM(sector, count, buff); return RES_OK; } #endif /* _READONLY */ /*-----------------------------------------------------------------------*/ /* Miscellaneous Functions */ DRESULT disk_ioctl ( BYTE drv, /* Physical drive number (0..) */ BYTE ctrl, /* Control code */ void *buff /* Buffer to send/receive control data */ ) { if (ctrl == CTRL_SYNC) return RES_OK; else return RES_PARERR; } DWORD get_fattime (void) { TimeDate_t CurrTimeDate; RTC_GetTimeDate(&CurrTimeDate); return ((DWORD)(20 + CurrTimeDate.Year) << 25) | ((DWORD)CurrTimeDate.Month << 21) | ((DWORD)CurrTimeDate.Day << 16) | ((DWORD)CurrTimeDate.Hour << 11) | ((DWORD)CurrTimeDate.Minute << 5) | (((DWORD)CurrTimeDate.Second >> 1) << 0); }