You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

FAT12驱动簇链提前终止问题求助

FAT12驱动簇链提前终止问题求助

我正在为自己的操作系统开发FAT12驱动,但碰到了一个特别诡异的问题,现在拿不准是代码逻辑的问题,还是驱动本身的问题。

我有个叫long.txt的测试文件,里面大概存了1024字节的内容,本来是用来测试簇链遍历逻辑的。结果现在代码读完第一个簇就直接停了,它识别到下一个簇是0xFFF——这个值比0xFF8大,按照FAT12的规则会被判定为文件结束,但实际上文件内容根本还没读完。

下面是出问题的代码片段:

int fatReadInternal(fsNode_t *file, uint8_t *buffer, uint32_t length) {
    if (file) {
        // Calculate and read in the starting physical sector
        uint16_t cluster = file->impl;
        uint32_t sector = ((cluster - 2) * drive->bpb->sectorsPerCluster) + drive->firstDataSector;

        uint8_t *sector_buffer;
        ideReadSectors(drive->driveNum, 1, (uint32_t)sector, sector_buffer);
        
        //...(后续代码省略)
    }
}

备注:内容来源于stack exchange,提问作者user25873577

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.16 09:42:59