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

📄 fs_variable.c

📁 fat16文件系统源码。需要的请下
💻 C
字号:

#include "datatype.h"
#include "fat.h"

 INT32U  u32Gl_Sector;
 Byte    reserved_disk_space;
 Byte    gl_buffer[512];
 INT16U  u16GlBufferPos;
 char    lfn_name[100];

/* shared file system variables */

/* disk management */
 Uint32  fat_ptr_data;                     /* address of the first byte of data */
 Byte fat_buf_sector[512];                 /* 512 bytes buffer */

/* directory management */
 Uint16  fat_dclust_byte_count;/* byte counter in directory sector */
 Uint32  fat_dir_current_sect; /* sector of selected entry in dir list */
 Uint16  fat_dir_list_index;   /* index of current entry in dir list */
 Uint32  fat_dir_start_sect;   /* start sector of dir list */
 Uint16  fat_dir_list_last;    /* index of last entry in dir list */
 Uint16  fat_dchain_index;     /* the number of the fragment of the dir, in fact */
                                    /* the index of the table in the cluster chain */
 Uint16  fat_fchain_nb_clust; /* the offset of the cluster from the first cluster */
                                    /* of the file fragment */
 Uint32  total_capacity;

/* file management */
 Uint16   fat_fclust_byte_count;     /* byte counter in file cluster */
 Byte current_ext;
 char  ext[3];                       /* file extension (limited to 3 characters) */
 
 char      song_name[20];

  
/* Mode repeat A/B variables */
 Byte    fat_fchain_index_save;         
 Byte    fat_fchain_nb_clust_save;
 Uint16  fat_fclust_byte_count_save;

// xdata fat_st_free_space free_space;


/* Specific variables for fat file system */
//#if ((MEM_CHIP_FS == FS_FAT_32) || (MEM_CHIP_FS == FS_FAT_12_16) || (MEM_CARD_FS == FS_FAT_32) || (MEM_CARD_FS == FS_FAT_12_16))
/* disk management */
 Uint32  fat_ptr_fats;         /* address of the first byte of FAT */
 Uint32  fat_ptr_rdir;
 Byte    fat_cluster_size;     /* cluster size (sector count) */
 Byte    fat_cluster_mask;     /* mask for end of cluster test */


 Byte     fat_is_fat16;         /* TRUE: FAT16 - FALSE: FAT12 */
 Byte     fat_open_mode;        /* READ or WRITE */
 Byte     fat_2_is_present;     /* TRUE: 2 FATs - FALSE: 1 FAT */
 Byte     flag_end_disk_file;

 Uint32  fat_count_of_clusters;/* number of cluster - 2 */
 Union32 fat_file_size;
 Uint32  fat_fat_size;         /* FAT size in sector count */
 Uint32  fat_nb_sector;
/* directory management */
 fat_st_clust_chain dclusters[MAX_DIR_FRAGMENT_NUMBER];
                                    /* cluster chain for the current directory */
 Byte     dir_is_root;          /* TRUE: point the root directory  */
                                             
 Byte    fat_dchain_nb_clust;  /* the offset of the cluster from the first cluster */
                                    /* of the dir fragment */
 Byte    fat_last_dclust_index;/* index of the last cluster in directory chain */
 Uint32  fat_dir_current_offs; /* entry offset from fat_dir_current_sect */
 fat_st_cache   fat_cache;     /* The cache structure, see the .h for more info */


/* file management */
 Byte  fat_dir_entry_list[512]; //  fat_buf_sector  /* manual variable overlay */

 fat_st_clust_chain fclusters[MAX_FILE_FRAGMENT_NUMBER];
                                    /* cluster chain for the current file */
 Byte    fat_last_clust_index;/* index of the last cluster in file chain */
 Byte    fat_fchain_index;    /* the number of the fragment of the file, in fact */
                                    /* the index of the table in the cluster chain */
              
 Uint32  fat_current_file_size;
 Uint32  fat_rootclus_fat32;  /* root cluster address */
 Byte    fat_last_dir_cluster_full;
 Byte    fat_no_entries_free;
 Uint16  fat_total_clusters;
 Uint32  last_free_cluster;

 Uint16  fat_root_entry;       /* position in root dir */

 Uint16  fat_current_end_entry_position;
 Uint16  fat_current_start_entry_position;
 Uint16  fat_nb_deleted_entries;
 Uint16  fat_nb_total_entries;
 Byte    fat_is_fat32;                   /* TRUE: FAT32 - FALSE: FAT12/FAT16 */
 Uint32  fat_bpb_add;


⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -