ELEC2645 (2019/20) / Mbed 2 deprecated ELEC2645_Project_el18gs

Dependencies:   mbed

Committer:
el18gs
Date:
Fri Mar 06 19:27:12 2020 +0000
Revision:
2:eaf245af2aae
Initial Commit

Who changed what in which revision?

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