STM32F746NG fatfs library

Dependents:   DISCO-F746NG_uSD Active-WolfMan_V2-5-All-Frank-Board-Functions_copy DISCO-F746NG_uSD DISCO-F746NG_uSD

Committer:
buyukesmeli
Date:
Sat Feb 03 14:38:06 2018 +0000
Revision:
0:3a2f06aeceaf
Initial Commit

Who changed what in which revision?

UserRevisionLine numberNew contents of line
buyukesmeli 0:3a2f06aeceaf 1 /*-----------------------------------------------------------------------/
buyukesmeli 0:3a2f06aeceaf 2 / Low level disk interface modlue include file (C)ChaN, 2014 /
buyukesmeli 0:3a2f06aeceaf 3 /-----------------------------------------------------------------------*/
buyukesmeli 0:3a2f06aeceaf 4
buyukesmeli 0:3a2f06aeceaf 5 #ifndef _DISKIO_DEFINED
buyukesmeli 0:3a2f06aeceaf 6 #define _DISKIO_DEFINED
buyukesmeli 0:3a2f06aeceaf 7
buyukesmeli 0:3a2f06aeceaf 8 #ifdef __cplusplus
buyukesmeli 0:3a2f06aeceaf 9 extern "C" {
buyukesmeli 0:3a2f06aeceaf 10 #endif
buyukesmeli 0:3a2f06aeceaf 11
buyukesmeli 0:3a2f06aeceaf 12 #define _USE_WRITE 1 /* 1: Enable disk_write function */
buyukesmeli 0:3a2f06aeceaf 13 #define _USE_IOCTL 1 /* 1: Enable disk_ioctl fucntion */
buyukesmeli 0:3a2f06aeceaf 14
buyukesmeli 0:3a2f06aeceaf 15 #include "integer.h"
buyukesmeli 0:3a2f06aeceaf 16
buyukesmeli 0:3a2f06aeceaf 17
buyukesmeli 0:3a2f06aeceaf 18 /* Status of Disk Functions */
buyukesmeli 0:3a2f06aeceaf 19 typedef BYTE DSTATUS;
buyukesmeli 0:3a2f06aeceaf 20
buyukesmeli 0:3a2f06aeceaf 21 /* Results of Disk Functions */
buyukesmeli 0:3a2f06aeceaf 22 typedef enum {
buyukesmeli 0:3a2f06aeceaf 23 RES_OK = 0, /* 0: Successful */
buyukesmeli 0:3a2f06aeceaf 24 RES_ERROR, /* 1: R/W Error */
buyukesmeli 0:3a2f06aeceaf 25 RES_WRPRT, /* 2: Write Protected */
buyukesmeli 0:3a2f06aeceaf 26 RES_NOTRDY, /* 3: Not Ready */
buyukesmeli 0:3a2f06aeceaf 27 RES_PARERR /* 4: Invalid Parameter */
buyukesmeli 0:3a2f06aeceaf 28 } DRESULT;
buyukesmeli 0:3a2f06aeceaf 29
buyukesmeli 0:3a2f06aeceaf 30
buyukesmeli 0:3a2f06aeceaf 31 /*---------------------------------------*/
buyukesmeli 0:3a2f06aeceaf 32 /* Prototypes for disk control functions */
buyukesmeli 0:3a2f06aeceaf 33
buyukesmeli 0:3a2f06aeceaf 34
buyukesmeli 0:3a2f06aeceaf 35 DSTATUS disk_initialize (BYTE pdrv);
buyukesmeli 0:3a2f06aeceaf 36 DSTATUS disk_status (BYTE pdrv);
buyukesmeli 0:3a2f06aeceaf 37 DRESULT disk_read (BYTE pdrv, BYTE* buff, DWORD sector, UINT count);
buyukesmeli 0:3a2f06aeceaf 38 DRESULT disk_write (BYTE pdrv, const BYTE* buff, DWORD sector, UINT count);
buyukesmeli 0:3a2f06aeceaf 39 DRESULT disk_ioctl (BYTE pdrv, BYTE cmd, void* buff);
buyukesmeli 0:3a2f06aeceaf 40 DWORD get_fattime (void);
buyukesmeli 0:3a2f06aeceaf 41
buyukesmeli 0:3a2f06aeceaf 42 /* Disk Status Bits (DSTATUS) */
buyukesmeli 0:3a2f06aeceaf 43
buyukesmeli 0:3a2f06aeceaf 44 #define STA_NOINIT 0x01 /* Drive not initialized */
buyukesmeli 0:3a2f06aeceaf 45 #define STA_NODISK 0x02 /* No medium in the drive */
buyukesmeli 0:3a2f06aeceaf 46 #define STA_PROTECT 0x04 /* Write protected */
buyukesmeli 0:3a2f06aeceaf 47
buyukesmeli 0:3a2f06aeceaf 48
buyukesmeli 0:3a2f06aeceaf 49 /* Command code for disk_ioctrl fucntion */
buyukesmeli 0:3a2f06aeceaf 50
buyukesmeli 0:3a2f06aeceaf 51 /* Generic command (Used by FatFs) */
buyukesmeli 0:3a2f06aeceaf 52 #define CTRL_SYNC 0 /* Complete pending write process (needed at _FS_READONLY == 0) */
buyukesmeli 0:3a2f06aeceaf 53 #define GET_SECTOR_COUNT 1 /* Get media size (needed at _USE_MKFS == 1) */
buyukesmeli 0:3a2f06aeceaf 54 #define GET_SECTOR_SIZE 2 /* Get sector size (needed at _MAX_SS != _MIN_SS) */
buyukesmeli 0:3a2f06aeceaf 55 #define GET_BLOCK_SIZE 3 /* Get erase block size (needed at _USE_MKFS == 1) */
buyukesmeli 0:3a2f06aeceaf 56 #define CTRL_TRIM 4 /* Inform device that the data on the block of sectors is no longer used (needed at _USE_TRIM == 1) */
buyukesmeli 0:3a2f06aeceaf 57
buyukesmeli 0:3a2f06aeceaf 58 /* Generic command (Not used by FatFs) */
buyukesmeli 0:3a2f06aeceaf 59 #define CTRL_POWER 5 /* Get/Set power status */
buyukesmeli 0:3a2f06aeceaf 60 #define CTRL_LOCK 6 /* Lock/Unlock media removal */
buyukesmeli 0:3a2f06aeceaf 61 #define CTRL_EJECT 7 /* Eject media */
buyukesmeli 0:3a2f06aeceaf 62 #define CTRL_FORMAT 8 /* Create physical format on the media */
buyukesmeli 0:3a2f06aeceaf 63
buyukesmeli 0:3a2f06aeceaf 64 /* MMC/SDC specific ioctl command */
buyukesmeli 0:3a2f06aeceaf 65 #define MMC_GET_TYPE 10 /* Get card type */
buyukesmeli 0:3a2f06aeceaf 66 #define MMC_GET_CSD 11 /* Get CSD */
buyukesmeli 0:3a2f06aeceaf 67 #define MMC_GET_CID 12 /* Get CID */
buyukesmeli 0:3a2f06aeceaf 68 #define MMC_GET_OCR 13 /* Get OCR */
buyukesmeli 0:3a2f06aeceaf 69 #define MMC_GET_SDSTAT 14 /* Get SD status */
buyukesmeli 0:3a2f06aeceaf 70
buyukesmeli 0:3a2f06aeceaf 71 /* ATA/CF specific ioctl command */
buyukesmeli 0:3a2f06aeceaf 72 #define ATA_GET_REV 20 /* Get F/W revision */
buyukesmeli 0:3a2f06aeceaf 73 #define ATA_GET_MODEL 21 /* Get model name */
buyukesmeli 0:3a2f06aeceaf 74 #define ATA_GET_SN 22 /* Get serial number */
buyukesmeli 0:3a2f06aeceaf 75
buyukesmeli 0:3a2f06aeceaf 76 #ifdef __cplusplus
buyukesmeli 0:3a2f06aeceaf 77 }
buyukesmeli 0:3a2f06aeceaf 78 #endif
buyukesmeli 0:3a2f06aeceaf 79
buyukesmeli 0:3a2f06aeceaf 80 #endif