LPCOpen Platform
v1.03
LPCOpen Platform for NXP LPC Microcontrollers
Main Page
Modules
Data Structures
Files
Related Pages
File List
Globals
All
Data Structures
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Macros
Groups
Pages
diskio.h
Go to the documentation of this file.
1
/*-----------------------------------------------------------------------
2
/ Low level disk interface modlue include file (C)ChaN, 2012
3
/-----------------------------------------------------------------------*/
4
5
#ifndef _DISKIO_DEFINED
6
#define _DISKIO_DEFINED
7
8
#ifdef __cplusplus
9
extern
"C"
{
10
#endif
11
12
#define _USE_WRITE 1
/* 1: Enable disk_write function */
13
#define _USE_IOCTL 1
/* 1: Enable disk_ioctl fucntion */
14
15
#include "
integer.h
"
16
17
18
/* Status of Disk Functions */
19
typedef
BYTE
DSTATUS
;
20
21
/* Results of Disk Functions */
22
typedef
enum
{
23
RES_OK
= 0,
/* 0: Successful */
24
RES_ERROR
,
/* 1: R/W Error */
25
RES_WRPRT
,
/* 2: Write Protected */
26
RES_NOTRDY
,
/* 3: Not Ready */
27
RES_PARERR
/* 4: Invalid Parameter */
28
}
DRESULT
;
29
30
31
/*---------------------------------------*/
32
/* Prototypes for disk control functions */
33
34
35
DSTATUS
disk_initialize
(
BYTE
);
36
DSTATUS
disk_status
(
BYTE
);
37
DRESULT
disk_read
(
BYTE
,
BYTE
*,
DWORD
,
BYTE
);
38
DRESULT
disk_write
(
BYTE
,
const
BYTE
*,
DWORD
,
BYTE
);
39
DRESULT
disk_ioctl
(
BYTE
,
BYTE
,
void
*);
40
41
42
/* Disk Status Bits (DSTATUS) */
43
#define STA_NOINIT 0x01
/* Drive not initialized */
44
#define STA_NODISK 0x02
/* No medium in the drive */
45
#define STA_PROTECT 0x04
/* Write protected */
46
47
48
/* Command code for disk_ioctrl fucntion */
49
50
/* Generic command (used by FatFs) */
51
#define CTRL_SYNC 0
/* Flush disk cache (for write functions) */
52
#define GET_SECTOR_COUNT 1
/* Get media size (for only f_mkfs()) */
53
#define GET_SECTOR_SIZE 2
/* Get sector size (for multiple sector size (_MAX_SS >= 1024)) */
54
#define GET_BLOCK_SIZE 3
/* Get erase block size (for only f_mkfs()) */
55
#define CTRL_ERASE_SECTOR 4
/* Force erased a block of sectors (for only _USE_ERASE) */
56
57
/* Generic command (not used by FatFs) */
58
#define CTRL_POWER 5
/* Get/Set power status */
59
#define CTRL_LOCK 6
/* Lock/Unlock media removal */
60
#define CTRL_EJECT 7
/* Eject media */
61
#define CTRL_FORMAT 8
/* Create physical format on the media */
62
63
/* MMC/SDC specific ioctl command */
64
#define MMC_GET_TYPE 10
/* Get card type */
65
#define MMC_GET_CSD 11
/* Get CSD */
66
#define MMC_GET_CID 12
/* Get CID */
67
#define MMC_GET_OCR 13
/* Get OCR */
68
#define MMC_GET_SDSTAT 14
/* Get SD status */
69
70
/* ATA/CF specific ioctl command */
71
#define ATA_GET_REV 20
/* Get F/W revision */
72
#define ATA_GET_MODEL 21
/* Get model name */
73
#define ATA_GET_SN 22
/* Get serial number */
74
75
76
/* MMC card type flags (MMC_GET_TYPE) */
77
#define CT_MMC 0x01
/* MMC ver 3 */
78
#define CT_SD1 0x02
/* SD ver 1 */
79
#define CT_SD2 0x04
/* SD ver 2 */
80
#define CT_SDC (CT_SD1|CT_SD2)
/* SD */
81
#define CT_BLOCK 0x08
/* Block addressing */
82
83
84
#ifdef __cplusplus
85
}
86
#endif
87
88
#endif
software
filesystems
fatfs
src
diskio.h
Generated on Fri May 10 2013 10:42:09 for LPCOpen Platform by
1.8.2