假U盘程序中的疑问,关于LBA?
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,电脑上能显示文件,但是打不开,提示"找不到文件".
敬请赐教! 关于文件打不开的问题,已找到原因,是因为文件名我用的是小写字母,改用大写字母或数字就没问题.
但是不知道是为什么,继续找原因. FAT协议就规定了,文件名必须要用大写啊。 汗~
页:
[1]