📄 fat.i
字号:
extern __declspec(__nothrow) __declspec(__noreturn) void _Exit(int );
extern __declspec(__nothrow) char *getenv(const char * );
extern __declspec(__nothrow) int system(const char * );
extern void *bsearch(const void * , const void * ,
size_t , size_t ,
int (* )(const void *, const void *));
#line 463 "C:\\Keil\\ARM\\RV31\\INC\\stdlib.h"
extern void qsort(void * , size_t , size_t ,
int (* )(const void *, const void *));
#line 489 "C:\\Keil\\ARM\\RV31\\INC\\stdlib.h"
extern __declspec(__nothrow) __pure int abs(int );
extern __declspec(__nothrow) __pure div_t div(int , int );
extern __declspec(__nothrow) __pure long int labs(long int );
extern __declspec(__nothrow) __pure ldiv_t ldiv(long int , long int );
extern __declspec(__nothrow) __pure __int64 llabs(__int64 );
extern __declspec(__nothrow) __pure lldiv_t lldiv(__int64 , __int64 );
#line 570 "C:\\Keil\\ARM\\RV31\\INC\\stdlib.h"
typedef struct __sdiv32by16 { int quot, rem; } __sdiv32by16;
typedef struct __udiv32by16 { unsigned int quot, rem; } __udiv32by16;
typedef struct __sdiv64by32 { int rem, quot; } __sdiv64by32;
__value_in_regs extern __declspec(__nothrow) __pure __sdiv32by16 __rt_sdiv32by16(
int ,
short int );
__value_in_regs extern __declspec(__nothrow) __pure __udiv32by16 __rt_udiv32by16(
unsigned int ,
unsigned short );
__value_in_regs extern __declspec(__nothrow) __pure __sdiv64by32 __rt_sdiv64by32(
int , unsigned int ,
int );
extern __declspec(__nothrow) unsigned int __fp_status(unsigned int , unsigned int );
extern __declspec(__nothrow) int mblen(const char * , size_t );
extern __declspec(__nothrow) int mbtowc(wchar_t * __restrict ,
const char * __restrict , size_t );
extern __declspec(__nothrow) int wctomb(char * , wchar_t );
extern __declspec(__nothrow) size_t mbstowcs(wchar_t * __restrict ,
const char * __restrict , size_t );
extern __declspec(__nothrow) size_t wcstombs(char * __restrict ,
const wchar_t * __restrict , size_t );
extern __declspec(__nothrow) void __use_realtime_heap(void);
extern __declspec(__nothrow) void __use_realtime_division(void);
extern __declspec(__nothrow) void __use_two_region_memory(void);
extern __declspec(__nothrow) void __use_no_heap(void);
extern __declspec(__nothrow) void __use_no_heap_region(void);
extern __declspec(__nothrow) char const *__C_library_version_string(void);
extern __declspec(__nothrow) int __C_library_version_number(void);
#line 807 "C:\\Keil\\ARM\\RV31\\INC\\stdlib.h"
#line 10 "global.h"
#line 1 "C:\\Keil\\ARM\\RV31\\INC\\setjmp.h"
#line 38 "C:\\Keil\\ARM\\RV31\\INC\\setjmp.h"
typedef __int64 jmp_buf[48];
extern const int __aeabi_JMP_BUF_SIZE;
extern __declspec(__nothrow) int setjmp(jmp_buf );
extern __declspec(__nothrow) __declspec(__noreturn) void longjmp(jmp_buf , int );
#line 101 "C:\\Keil\\ARM\\RV31\\INC\\setjmp.h"
#line 11 "global.h"
#line 1 "C:\\Keil\\ARM\\RV31\\INC\\rt_misc.h"
extern void _getenv_init(void);
extern void _clock_init(void);
extern void *__user_libspace(void);
struct __argc_argv {
int argc;
char **argv;
int r2, r3;
};
extern __value_in_regs struct __argc_argv
__rt_lib_init(unsigned , unsigned );
__value_in_regs struct __argc_argv __ARM_get_argv(void * );
extern void __rt_lib_shutdown(void);
extern void __rt_exit(int );
struct __initial_stackheap {
unsigned heap_base;
unsigned stack_base;
unsigned heap_limit;
unsigned stack_limit;
};
extern __value_in_regs struct __initial_stackheap
__user_initial_stackheap(unsigned , unsigned ,
unsigned , unsigned );
struct __heap_extent {
unsigned base, range;
};
extern __value_in_regs struct __heap_extent
__user_heap_extent(unsigned , unsigned );
struct __stack_slop {
unsigned always, cleanup;
};
extern __value_in_regs struct __stack_slop
__user_stack_slop(unsigned , unsigned );
extern unsigned __user_heap_extend(int ,
void ** ,
unsigned );
int __raise(int , int );
int __default_signal_handler(int , int );
void __rt_raise(int , int );
#line 12 "global.h"
#line 37 "global.h"
extern unsigned short get16(unsigned char * addr);
extern unsigned short get16_big(unsigned char * addr);
extern unsigned short get16_little(unsigned char * addr);
extern unsigned int get32(unsigned char * addr);
extern unsigned int get32_big(unsigned char * addr);
extern unsigned int get32_little(unsigned char * addr);
extern void put16(unsigned char * addr, unsigned short val);
extern void put16_big(unsigned char * addr, unsigned short val);
extern void put16_little(unsigned char * addr, unsigned short val);
extern void put32(unsigned char * addr, unsigned int val);
extern void put32_big(unsigned char * addr, unsigned int val);
extern void put32_little(unsigned char * addr, unsigned int val);
extern unsigned short swap16(unsigned short val);
extern unsigned int swap32(unsigned int val);
void dump_memory(unsigned char * addr, unsigned int length);
void soft_delay_ms(unsigned int t);
#line 21 "FAT.h"
#line 22 "FAT.h"
extern unsigned char (* FAT_ReadSector)(unsigned int,unsigned char *);
extern unsigned char (* FAT_WriteSector)(unsigned int,unsigned char *);
extern unsigned int (* FAT_ReadCapacity)(void);
extern unsigned char CH375_ReadOneSector(unsigned int LBA,unsigned char *buffer);
extern unsigned char CH375_WriteOneSector(unsigned int LBA,unsigned char *buffer);
extern unsigned char MMC_SD_ReadSingleBlock(unsigned int sector, unsigned char* buffer);
extern unsigned char MMC_SD_WriteSingleBlock(unsigned int sector, unsigned char* buffer);
extern unsigned char IDE_ReadOneSector(unsigned int LBA,unsigned char *buffer);
extern unsigned char IDE_WriteOneSector(unsigned int LBA,unsigned char *buffer);
extern unsigned int MMC_SD_ReadCapacity(void);
#line 77 "FAT.h"
struct partrecord
{
unsigned char prIsActive;
unsigned char prStartHead;
unsigned short prStartCylSect;
unsigned char prPartType;
unsigned char prEndHead;
unsigned short prEndCylSect;
unsigned int prStartLBA;
unsigned int prSize;
};
struct partrecordBytes
{
unsigned char prIsActive;
unsigned char prStartHead;
unsigned char prStartCylSect[2];
unsigned char prPartType;
unsigned char prEndHead;
unsigned char prEndCylSect[2];
unsigned char prStartLBA[4];
unsigned char prSize[4];
};
struct partsector
{
char psPartCode[512-64-2];
unsigned char psPart[64];
unsigned char psBootSectSig0;
unsigned char psBootSectSig1;
};
struct extboot {
char exDriveNumber;
char exReserved1;
char exBootSignature;
char exVolumeID[4];
char exVolumeLabel[11];
char exFileSysType[8];
};
struct bootsector50 {
unsigned char bsJump[3];
char bsOemName[8];
char bsBPB[25];
char bsExt[26];
char bsBootCode[448];
unsigned char bsBootSectSig0;
unsigned char bsBootSectSig1;
};
struct bpb50 {
unsigned short bpbBytesPerSec;
unsigned char bpbSecPerClust;
unsigned short bpbResSectors;
unsigned char bpbFATs;
unsigned short bpbRootDirEnts;
unsigned short bpbSectors;
unsigned char bpbMedia;
unsigned short bpbFATsecs;
unsigned short bpbSecPerTrack;
unsigned short bpbHeads;
unsigned int bpbHiddenSecs;
unsigned int bpbHugeSectors;
};
struct bootsector710 {
unsigned char bsJump[3];
char bsOemName[8];
char bsBPB[53];
char bsExt[26];
char bsBootCode[418];
unsigned char bsBootSectSig2;
unsigned char bsBootSectSig3;
unsigned char bsBootSectSig0;
unsigned char bsBootSectSig1;
};
struct bpb710 {
unsigned short bpbBytesPerSec;
unsigned char bpbSecPerClust;
unsigned short bpbResSectors;
unsigned char bpbFATs;
unsigned short bpbRootDirEnts;
unsigned short bpbSectors;
unsigned char bpbMedia;
unsigned short bpbFATsecs;
unsigned short bpbSecPerTrack;
unsigned short bpbHeads;
unsigned int bpbHiddenSecs;
unsigned int bpbHugeSectors;
unsigned int bpbBigFATsecs;
unsigned short bpbExtFlags;
unsigned short bpbFSVers;
unsigned int bpbRootClust;
unsigned short bpbFSInfo;
unsigned short bpbBackup;
};
struct bpb710Bytes {
unsigned char bpbBytesPerSec[2];
unsigned char bpbSecPerClust;
unsigned char bpbResSectors[2];
unsigned char bpbFATs;
unsigned char bpbRootDirEnts[2];
unsigned char bpbSectors[2];
unsigned char bpbMedia;
unsigned char bpbFATsecs[2];
unsigned char bpbSecPerTrack[2];
unsigned char bpbHeads[2];
unsigned char bpbHiddenSecs[4];
unsigned char bpbHugeSectors[4];
unsigned char bpbBigFATsecs[4];
unsigned char bpbExtFlags[2];
unsigned char bpbFSVers[2];
unsigned char bpbRootClust[4];
unsigned char bpbFSInfo[2];
unsigned char bpbBackup[2];
};
struct direntry {
unsigned char deName[8];
unsigned char deExtension[3];
unsigned char deAttributes;
#line 239 "FAT.h"
unsigned char deLowerCase;
unsigned char deCHundredth;
unsigned char deCTime[2];
unsigned char deCDate[2];
unsigned char deADate[2];
unsigned short deHighClust;
unsigned char deMTime[2];
unsigned char deMDate[2];
unsigned short deStartCluster;
unsigned int deFileSize;
};
struct direntryBytes {
unsigned char deName[8];
unsigned char deExtension[3];
unsigned char deAttributes;
#line 270 "FAT.h"
unsigned char deLowerCase;
unsigned char deCHundredth;
unsigned char deCTime[2];
unsigned char deCDate[2];
unsigned char deADate[2];
unsigned char deHighClust[2];
unsigned char deMTime[2];
unsigned char deMDate[2];
unsigned char deStartCluster[2];
unsigned char deFileSize[4];
};
struct winentry {
unsigned char weCnt;
unsigned char wePart1[10];
unsigned char weAttributes;
unsigned char weReserved1;
unsigned char weChksum;
unsigned char wePart2[12];
unsigned short weReserved2;
unsigned char wePart3[4];
};
struct winentryBytes {
unsigned char weCnt;
unsigned char wePart1[10];
unsigned char weAttributes;
unsigned char weReserved1;
unsigned char weChksum;
unsigned char wePart2[12];
unsigned char weReserved2[2];
unsigned char wePart3[4];
};
#line 332 "FAT.h"
#line 341 "FAT.h"
struct FileInfoStruct
{
unsigned int StartCluster;
unsigned int Size;
unsigned char Attr;
unsigned int Sector;
unsigned short Offset;
};
extern unsigned short fatGetWord(unsigned char * addr);
extern unsigned int fatGetDWord(unsigned char * addr);
extern unsigned char SearchInit(void);
extern unsigned char Search(unsigned short *music_record_addr,struct direntryBytes*MusicInfo,unsigned short *Count,unsigned char *type);
extern unsigned char SearchLrc(unsigned char *dir,unsigned char * longnamebuffer,struct direntryBytes*LrcInfo,unsigned short music_record_addr);
extern unsigned char FAT_LoadPartCluster(unsigned int cluster,unsigned char part,unsigned char * buffer);
extern unsigned char FAT_Init(void);
extern unsigned int FAT_NextCluster(unsigned int cluster);
extern unsigned int FAT_FindFreeCluster(void);
extern unsigned char FAT_DisDir(unsigned char *dir);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -