FATFS: как получить адрес первого сектора файла?
Я использую FATFS на STM32, и я хочу найти адрес первого сектора файла, который открывается с помощью функции f_open. Таким образом, я могу использовать этот адрес сектора для доступа к файлу в качестве смещения адреса, используя доступные низкоуровневые методы DMA. Как я могу получить необработанный адрес файла на диске?
1 ответ
В FatFS Чана вы можете знать, что файл запускает кластер, он находится в fp->sclust
переменная. Вы можете узнать размер кластера с помощью этого выражения:clusterSize = fp->fs->csize * SS(fp->fs);
и вам также может понадобиться функция clust2sect(fp->fs, fp->clust)
, Вы можете наблюдать за реализацией Diskio_drvTypeDef.disk_read
чтобы увидеть, как конвертировать в адрес.