亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? ff.h

?? STM32SDCardSourceCodeFATFS.rar
?? H
?? 第 1 頁 / 共 2 頁
字號:
typedef struct _FATFS_ {
	BYTE	fs_type;	/* FAT sub type */
	BYTE	drive;		/* Physical drive number */
	BYTE	csize;		/* Number of sectors per cluster */
	BYTE	n_fats;		/* Number of FAT copies */
	BYTE	wflag;		/* win[] dirty flag (1:must be written back) */
	BYTE	fsi_flag;	/* fsinfo dirty flag (1:must be written back) */
	WORD	id;			/* File system mount ID */
	WORD	n_rootdir;	/* Number of root directory entries (0 on FAT32) */
#if _FS_REENTRANT
	_SYNC_t	sobj;		/* Identifier of sync object */
#endif
#if _MAX_SS != 512
	WORD	s_size;		/* Sector size */
#endif
#if !_FS_READONLY
	DWORD	last_clust;	/* Last allocated cluster */
	DWORD	free_clust;	/* Number of free clusters */
	DWORD	fsi_sector;	/* fsinfo sector */
#endif
#if _FS_RPATH
	DWORD	cdir;		/* Current directory (0:root)*/
#endif
	DWORD	sects_fat;	/* Sectors per fat */
	DWORD	max_clust;	/* Maximum cluster# + 1. Number of clusters is max_clust - 2 */
	DWORD	fatbase;	/* FAT start sector */
	DWORD	dirbase;	/* Root directory start sector (Cluster# on FAT32) */
	DWORD	database;	/* Data start sector */
	DWORD	winsect;	/* Current sector appearing in the win[] */
	BYTE	win[_MAX_SS];/* Disk access window for Directory/FAT */
} FATFS;



/* Directory object structure */

typedef struct _DIR_ {
	FATFS*	fs;			/* Pointer to the owner file system object */
	WORD	id;			/* Owner file system mount ID */
	WORD	index;		/* Current read/write index number */
	DWORD	sclust;		/* Table start cluster (0:Static table) */
	DWORD	clust;		/* Current cluster */
	DWORD	sect;		/* Current sector */
	BYTE*	dir;		/* Pointer to the current SFN entry in the win[] */
	BYTE*	fn;			/* Pointer to the SFN (in/out) {file[8],ext[3],status[1]} */
#if _USE_LFN
	WCHAR*	lfn;		/* Pointer to the LFN working buffer */
	WORD	lfn_idx;	/* Last matched LFN index number (0xFFFF:No LFN) */
#endif
} DIR;



/* File object structure */

typedef struct _FIL_ {
	FATFS*	fs;			/* Pointer to the owner file system object */
	WORD	id;			/* Owner file system mount ID */
	BYTE	flag;		/* File status flags */
	BYTE	csect;		/* Sector address in the cluster */
	DWORD	fptr;		/* File R/W pointer */
	DWORD	fsize;		/* File size */
	DWORD	org_clust;	/* File start cluster */
	DWORD	curr_clust;	/* Current cluster */
	DWORD	dsect;		/* Current data sector */
#if !_FS_READONLY
	DWORD	dir_sect;	/* Sector containing the directory entry */
	BYTE*	dir_ptr;	/* Ponter to the directory entry in the window */
#endif
#if !_FS_TINY
	BYTE	buf[_MAX_SS];/* File R/W buffer */
#endif
} FIL;



/* File status structure */

typedef struct _FILINFO_ {
	DWORD	fsize;		/* File size */
	WORD	fdate;		/* Last modified date */
	WORD	ftime;		/* Last modified time */
	BYTE	fattrib;	/* Attribute */
	char	fname[13];	/* Short file name (8.3 format) */
#if _USE_LFN
	XCHAR*	lfname;		/* Pointer to the LFN buffer */
	int 	lfsize;		/* Size of LFN buffer [chrs] */
#endif
} FILINFO;



/* File function return code (FRESULT) */

typedef enum {
	FR_OK = 0,			/* 0 */
	FR_DISK_ERR,		/* 1 */
	FR_INT_ERR,			/* 2 */
	FR_NOT_READY,		/* 3 */
	FR_NO_FILE,			/* 4 */
	FR_NO_PATH,			/* 5 */
	FR_INVALID_NAME,	/* 6 */
	FR_DENIED,			/* 7 */
	FR_EXIST,			/* 8 */
	FR_INVALID_OBJECT,	/* 9 */
	FR_WRITE_PROTECTED,	/* 10 */
	FR_INVALID_DRIVE,	/* 11 */
	FR_NOT_ENABLED,		/* 12 */
	FR_NO_FILESYSTEM,	/* 13 */
	FR_MKFS_ABORTED,	/* 14 */
	FR_TIMEOUT			/* 15 */
} FRESULT;



/*--------------------------------------------------------------*/
/* FatFs module application interface                           */

FRESULT f_mount (BYTE, FATFS*);						/* Mount/Unmount a logical drive */
FRESULT f_open (FIL*, const XCHAR*, BYTE);			/* Open or create a file */
FRESULT f_read (FIL*, void*, UINT, UINT*);			/* Read data from a file */
FRESULT f_write (FIL*, const void*, UINT, UINT*);	/* Write data to a file */
FRESULT f_lseek (FIL*, DWORD);						/* Move file pointer of a file object */
FRESULT f_close (FIL*);								/* Close an open file object */
FRESULT f_opendir (DIR*, const XCHAR*);				/* Open an existing directory */
FRESULT f_readdir (DIR*, FILINFO*);					/* Read a directory item */
FRESULT f_stat (const XCHAR*, FILINFO*);			/* Get file status */
FRESULT f_getfree (const XCHAR*, DWORD*, FATFS**);	/* Get number of free clusters on the drive */
FRESULT f_truncate (FIL*);							/* Truncate file */
FRESULT f_sync (FIL*);								/* Flush cached data of a writing file */
FRESULT f_unlink (const XCHAR*);					/* Delete an existing file or directory */
FRESULT	f_mkdir (const XCHAR*);						/* Create a new directory */
FRESULT f_chmod (const XCHAR*, BYTE, BYTE);			/* Change attriburte of the file/dir */
FRESULT f_utime (const XCHAR*, const FILINFO*);		/* Change timestamp of the file/dir */
FRESULT f_rename (const XCHAR*, const XCHAR*);		/* Rename/Move a file or directory */
FRESULT f_forward (FIL*, UINT(*)(const BYTE*,UINT), UINT, UINT*);	/* Forward data to the stream */
FRESULT f_mkfs (BYTE, BYTE, WORD);					/* Create a file system on the drive */
FRESULT f_chdir (const XCHAR*);						/* Change current directory */
FRESULT f_chdrive (BYTE);							/* Change current drive */

#if _USE_STRFUNC
int f_putc (int, FIL*);								/* Put a character to the file */
int f_puts (const char*, FIL*);						/* Put a string to the file */
int f_printf (FIL*, const char*, ...);				/* Put a formatted string to the file */
char* f_gets (char*, int, FIL*);					/* Get a string from the file */
#define f_eof(fp) (((fp)->fptr == (fp)->fsize) ? 1 : 0)
#define f_error(fp) (((fp)->flag & FA__ERROR) ? 1 : 0)
#ifndef EOF
#define EOF -1
#endif
#endif



/*--------------------------------------------------------------*/
/* User defined functions                                       */

/* Real time clock */
#if !_FS_READONLY
DWORD get_fattime (void);	/* 31-25: Year(0-127 org.1980), 24-21: Month(1-12), 20-16: Day(1-31) */
							/* 15-11: Hour(0-23), 10-5: Minute(0-59), 4-0: Second(0-29 *2) */
#endif

/* Unicode - OEM code conversion */
#if _USE_LFN
WCHAR ff_convert (WCHAR, UINT);
WCHAR ff_wtoupper (WCHAR);
#endif

/* Sync functions */
#if _FS_REENTRANT
BOOL ff_cre_syncobj(BYTE, _SYNC_t*);
BOOL ff_del_syncobj(_SYNC_t);
BOOL ff_req_grant(_SYNC_t);
void ff_rel_grant(_SYNC_t);
#endif



/*--------------------------------------------------------------*/
/* Flags and offset address                                     */


/* File access control and file status flags (FIL.flag) */

#define	FA_READ				0x01
#define	FA_OPEN_EXISTING	0x00
#if _FS_READONLY == 0
#define	FA_WRITE			0x02
#define	FA_CREATE_NEW		0x04
#define	FA_CREATE_ALWAYS	0x08
#define	FA_OPEN_ALWAYS		0x10
#define FA__WRITTEN			0x20
#define FA__DIRTY			0x40
#endif
#define FA__ERROR			0x80


/* FAT sub type (FATFS.fs_type) */

#define FS_FAT12	1
#define FS_FAT16	2
#define FS_FAT32	3


/* File attribute bits for directory entry */

#define	AM_RDO	0x01	/* Read only */
#define	AM_HID	0x02	/* Hidden */
#define	AM_SYS	0x04	/* System */
#define	AM_VOL	0x08	/* Volume label */
#define AM_LFN	0x0F	/* LFN entry */
#define AM_DIR	0x10	/* Directory */
#define AM_ARC	0x20	/* Archive */
#define AM_MASK	0x3F	/* Mask of defined bits */


/* FatFs refers the members in the FAT structures with byte offset instead
/ of structure member because there are incompatibility of the packing option
/ between various compilers. */

#define BS_jmpBoot			0
#define BS_OEMName			3
#define BPB_BytsPerSec		11
#define BPB_SecPerClus		13
#define BPB_RsvdSecCnt		14
#define BPB_NumFATs			16
#define BPB_RootEntCnt		17
#define BPB_TotSec16		19
#define BPB_Media			21
#define BPB_FATSz16			22
#define BPB_SecPerTrk		24
#define BPB_NumHeads		26
#define BPB_HiddSec			28
#define BPB_TotSec32		32
#define BS_55AA				510

#define BS_DrvNum			36
#define BS_BootSig			38
#define BS_VolID			39
#define BS_VolLab			43
#define BS_FilSysType		54

#define BPB_FATSz32			36
#define BPB_ExtFlags		40
#define BPB_FSVer			42
#define BPB_RootClus		44
#define BPB_FSInfo			48
#define BPB_BkBootSec		50
#define BS_DrvNum32			64
#define BS_BootSig32		66
#define BS_VolID32			67
#define BS_VolLab32			71
#define BS_FilSysType32		82

#define	FSI_LeadSig			0
#define	FSI_StrucSig		484
#define	FSI_Free_Count		488
#define	FSI_Nxt_Free		492

#define MBR_Table			446

#define	DIR_Name			0
#define	DIR_Attr			11
#define	DIR_NTres			12
#define	DIR_CrtTime			14
#define	DIR_CrtDate			16
#define	DIR_FstClusHI		20
#define	DIR_WrtTime			22
#define	DIR_WrtDate			24
#define	DIR_FstClusLO		26
#define	DIR_FileSize		28
#define	LDIR_Ord			0
#define	LDIR_Attr			11
#define	LDIR_Type			12
#define	LDIR_Chksum			13
#define	LDIR_FstClusLO		26



/*--------------------------------*/
/* Multi-byte word access macros  */

#if _WORD_ACCESS == 1	/* Enable word access to the FAT structure */
#define	LD_WORD(ptr)		(WORD)(*(WORD*)(BYTE*)(ptr))
#define	LD_DWORD(ptr)		(DWORD)(*(DWORD*)(BYTE*)(ptr))
#define	ST_WORD(ptr,val)	*(WORD*)(BYTE*)(ptr)=(WORD)(val)
#define	ST_DWORD(ptr,val)	*(DWORD*)(BYTE*)(ptr)=(DWORD)(val)
#else					/* Use byte-by-byte access to the FAT structure */
#define	LD_WORD(ptr)		(WORD)(((WORD)*(BYTE*)((ptr)+1)<<8)|(WORD)*(BYTE*)(ptr))
#define	LD_DWORD(ptr)		(DWORD)(((DWORD)*(BYTE*)((ptr)+3)<<24)|((DWORD)*(BYTE*)((ptr)+2)<<16)|((WORD)*(BYTE*)((ptr)+1)<<8)|*(BYTE*)(ptr))
#define	ST_WORD(ptr,val)	*(BYTE*)(ptr)=(BYTE)(val); *(BYTE*)((ptr)+1)=(BYTE)((WORD)(val)>>8)
#define	ST_DWORD(ptr,val)	*(BYTE*)(ptr)=(BYTE)(val); *(BYTE*)((ptr)+1)=(BYTE)((WORD)(val)>>8); *(BYTE*)((ptr)+2)=(BYTE)((DWORD)(val)>>16); *(BYTE*)((ptr)+3)=(BYTE)((DWORD)(val)>>24)
#endif


#endif /* _FATFS */

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
极品少妇一区二区三区精品视频| 精品国产乱子伦一区| 亚洲精品少妇30p| 一本久久a久久免费精品不卡| 亚洲综合在线五月| 欧美日韩成人综合| 精品一区二区久久久| 国产精品视频一区二区三区不卡| 成人av在线一区二区三区| 亚洲综合一区在线| 欧美一区二区免费视频| 国内成人免费视频| 亚洲欧洲美洲综合色网| 欧美在线啊v一区| 美女高潮久久久| 国产亚洲成aⅴ人片在线观看| 成人精品国产福利| 亚洲高清免费视频| 欧美成人免费网站| 91麻豆精品视频| 免费观看成人鲁鲁鲁鲁鲁视频| 欧美经典一区二区三区| 91精品国模一区二区三区| 日日欢夜夜爽一区| 国产亚洲女人久久久久毛片| 日本高清成人免费播放| 欧美a级理论片| 亚洲色大成网站www久久九九| 欧美一卡2卡3卡4卡| 成人动漫精品一区二区| 日韩二区三区在线观看| 中文字幕亚洲电影| 日韩免费观看高清完整版| 成人黄色片在线观看| 日韩国产在线一| 亚洲国产精华液网站w| 337p亚洲精品色噜噜噜| 成人一级片网址| 麻豆精品国产传媒mv男同| 亚洲欧美国产三级| 2022国产精品视频| 欧美日韩国产首页| 一本大道久久精品懂色aⅴ| 九九九精品视频| 亚洲一区av在线| 国产精品每日更新| 日韩精品一区在线| 欧美专区日韩专区| 国产·精品毛片| 六月丁香婷婷色狠狠久久| 亚洲精品乱码久久久久久日本蜜臀| 久久综合色婷婷| 91麻豆精品国产自产在线| av一区二区三区在线| 欧美丰满一区二区免费视频| 国产精品18久久久久久久网站| 日韩成人精品视频| 一区二区成人在线观看| 国产精品福利一区| 久久精品欧美日韩精品| 亚洲精品一区二区三区精华液| 3751色影院一区二区三区| 欧美三区在线观看| 日本乱码高清不卡字幕| www.亚洲色图.com| 国产aⅴ综合色| 国产高清视频一区| 国产福利视频一区二区三区| 狠狠色伊人亚洲综合成人| 毛片不卡一区二区| 蜜桃久久av一区| 久久电影网站中文字幕| 久久国产乱子精品免费女| 蜜桃精品视频在线| 精品一区二区三区免费观看| 日本va欧美va欧美va精品| 日韩经典中文字幕一区| 琪琪久久久久日韩精品| 免费成人你懂的| 精品一二三四在线| 国产精品12区| 成人h动漫精品一区二区| 成人免费精品视频| 97se亚洲国产综合自在线不卡 | 成人午夜视频网站| 国产成人精品1024| 白白色 亚洲乱淫| 色悠悠亚洲一区二区| 欧美性色综合网| 91精品国产91久久久久久最新毛片 | 亚洲激情五月婷婷| 一区二区三区在线视频观看58| 亚洲国产精品一区二区久久恐怖片 | 日韩激情av在线| 美女免费视频一区二区| 国产精品99久久不卡二区| 波多野结衣在线aⅴ中文字幕不卡| 色综合天天综合网天天狠天天| 欧美色电影在线| 日韩欧美第一区| 国产三级欧美三级日产三级99| 国产精品麻豆一区二区| 亚洲一级片在线观看| 蜜臀精品久久久久久蜜臀| 国产suv一区二区三区88区| 91极品美女在线| 日韩一本二本av| 亚洲欧洲另类国产综合| 婷婷开心激情综合| 国产美女视频一区| 色偷偷久久一区二区三区| 91精品午夜视频| 国产精品色哟哟网站| 日韩不卡在线观看日韩不卡视频| 国产成人精品影视| 欧美日韩久久一区| 欧美激情综合在线| 亚洲成人免费观看| 丁香五精品蜜臀久久久久99网站| 欧美日韩精品综合在线| 中文字幕高清不卡| 日韩黄色一级片| 色综合色综合色综合| 久久一区二区三区四区| 亚洲自拍偷拍综合| 国产电影精品久久禁18| 欧美日韩国产色站一区二区三区| 欧美激情在线观看视频免费| 亚洲成在人线免费| 成人精品视频.| 欧美成人vps| 亚洲va天堂va国产va久| www.亚洲国产| 精品国产91洋老外米糕| 亚洲最大色网站| www.亚洲精品| 国产三级一区二区| 麻豆91在线看| 欧美丝袜第三区| 亚洲欧美日本韩国| 成人丝袜高跟foot| 精品久久国产字幕高潮| 日韩中文字幕不卡| 欧洲精品在线观看| 亚洲天堂网中文字| 国产成人精品一区二区三区网站观看| 777a∨成人精品桃花网| 一个色妞综合视频在线观看| 99久免费精品视频在线观看| 久久精品亚洲精品国产欧美| 欧美aⅴ一区二区三区视频| 欧美日韩一区二区三区不卡| 亚洲免费在线播放| 99久久99久久精品免费看蜜桃| 日韩毛片一二三区| 久久久久国产精品人| 日韩精品91亚洲二区在线观看| 91传媒视频在线播放| 亚洲人成网站影音先锋播放| 99精品偷自拍| 亚洲同性同志一二三专区| 成人h动漫精品一区二区| 中文天堂在线一区| 成人黄色免费短视频| 中文字幕亚洲在| 91老师国产黑色丝袜在线| 综合av第一页| 97se亚洲国产综合自在线| 亚洲丝袜美腿综合| 色综合色狠狠综合色| 亚洲一级二级三级| 欧美日韩国产一二三| 婷婷开心激情综合| 日韩亚洲国产中文字幕欧美| 免费人成黄页网站在线一区二区| 51午夜精品国产| 精品一区精品二区高清| 久久综合九色综合97婷婷| 国产精品一卡二卡在线观看| 欧美激情一区二区三区| 99免费精品在线| 亚洲伊人色欲综合网| 欧美一区二区三区视频| 狠狠色丁香婷婷综合久久片| 欧美国产日韩a欧美在线观看| 99久久久免费精品国产一区二区| 亚洲伦理在线免费看| 欧美日韩美女一区二区| 老司机精品视频在线| 国产精品无码永久免费888| 91免费精品国自产拍在线不卡| 亚洲一区成人在线| 精品久久一区二区三区| 丁香婷婷综合网| 亚洲成人一二三| 久久精品夜色噜噜亚洲a∨| 99九九99九九九视频精品| 午夜激情一区二区| 精品国产百合女同互慰| 99精品国产视频|