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 , чтобы увидеть, как преобразовать в адрес.

Поделиться
Улучшить этот ответ
ответ дан 9 окт.
  • На самом деле начальный кластер файлов находится в fp-> obj.sclust , если вы не читали из этого файла (в противном случае он находится в fp-> clust ) — crizztus 9 янв., 18:20
добавить комментарий |

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

Оцените статью
Botgadget.ru
Добавить комментарий