You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					99 lines
				
				2.6 KiB
			
		
		
			
		
	
	
					99 lines
				
				2.6 KiB
			|   
											8 years ago
										 | /*-----------------------------------------------------------------------*/ | ||
|  | /* 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); | ||
|  | } | ||
|  | 
 |