⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 fat.i

📁 mp3量不要让站长把时间都花费在为您修正说明上。压缩包解压时不能有密码。系统会自动删除debug和release目录
💻 I
📖 第 1 页 / 共 4 页
字号:











 

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 + -