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

📄 file_header.h

📁 能够在单片机等小型处理器上使用的fat16文件系统
💻 H
字号:
#ifndef _FSYS_HEADER_H
#define _FSYS_HEADER_H

typedef unsigned char uchar;
typedef unsigned short uint;
typedef unsigned long ulong;
typedef unsigned char BYTE;
typedef unsigned long DWORD;
typedef unsigned short WORD;

#define min(a,b) (((a)<(b))?(a):(b))
#define max(a,b) (((a)>(b))?(a):(b))

#define msb(x) (((x)>>8)&0x000000FFul)
#define lsb(x) ((x)&0x000000FFul)

typedef struct 
{
	uchar bJmpBoot[3]; //ofs:0.典型的如:0xEB,0x3E,0x90。3jmp
	char bOEMName[8]; //ofs:3.典型的如:“MSWIN4.1”。8oem_name
	uint BPB_wBytesPerSec; //ofs:11.每扇区字节数。2bytes_per_sector
	uchar BPB_bSecPerClus; //ofs:13.每簇扇区数。1sectors_per_cluster
	uint BPB_wReservedSec; //ofs:14.保留扇区数,从DBR 到FAT 的扇区数。2reserved_sectors
	uchar BPB_bNumFATs; //ofs:16.FAT 的个数。1fat_copies
	uint BPB_wRootEntry; //ofs:17.根目录项数。2root_directory_entries
	uint BPB_wTotalSec; //ofs:19.分区总扇区数(<32M 时用)。2number_of_sectors
	uchar BPB_bMedia; //ofs:21.分区介质标识,优盘一般用0xF8。1media_descriptor
	uint BPB_wSecPerFAT; //ofs:22.每个FAT 占的扇区数。2sectors_per_fat
	uint BPB_wSecPerTrk; //ofs:24.每道扇区数。2sectors_per_track
	uint BPB_wHeads; //ofs:26.磁头数。2heads
	ulong BPB_dHiddSec; //ofs:28.隐藏扇区数,从MBR 到DBR 的扇区数。4headshidden_sectors
	ulong BPB_dBigTotalSec; //ofs:32.分区总扇区数(>=32M 时用)。4total_sectors
	uchar bDrvNum; //ofs:36.软盘使用0x00,硬盘使用0x80。1drive_number
	uchar bReserved1; //ofs:37.保留。1reserved
	uchar bBootSig; //ofs:38.扩展引导标记:0x29。1extended_signature
	uchar bVolID[4]; //ofs:39.盘序列号。4serial_number
	char bVolLab[11]; //ofs:43.“Msdos ”。11volume_label
	char FileSysType[8]; //ofs:54.“FAT16 ”。8filesystem
	uchar ExecutableCode[448]; //ofs:62.引导代码。bootstrap
	uint EndingFlag; //ofs:510.结束标识:0xAA55。signature
}DBR_tag;

void read_MBR(DBR_tag * MBR_t,char *gFormat);
void write_MBR(DBR_tag * MBR_t,char *gFormat);

#endif


⌨️ 快捷键说明

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