unsigned char *get_physical_addr(unsigned long int LBA) //从LBA获取物理地址
{
if(LBA==0)return DBR;
if(LBA==2)return FAT;
if(LBA==0x40)return ZERO;
if(LBA==0X0A)return FAT;
}
不明白为什么是LBA=2的时候返回FAT表数据.
我的理解是DBR之后就是FAT表,DBR占据0扇区,那第一张FAT表的起始扇区地址应该是1扇区.
还有一个问题,我在根目录中添加了一个文件,而且把首簇地址设为0x03,相应的在FAT表中第3簇地址设为0xffff,电脑上能显示文件,但是打不开,提示"找不到文件".
敬请赐教! |