2017-10-08 6 views
0

私はstm32でfatfsを使用していますが、f_open関数を使用して開いているファイルの最初の セクタのアドレスを探したいとします。したがって、 は、利用可能な低レベルDMAメソッド を使用して、アドレスオフセットとしてファイルにアクセスするためにセクタアドレスを使用できます。 ディスク上のファイルのローアドレスを取得するにはどうすればよいですか?FATFS:ファイルの最初のセクタのアドレスを取得する方法は?

答えて

1

ChanのFatFSでは、ファイルがクラスタを開始することがわかっています。これはfp->sclustという変数です。クラスターサイズはclusterSize = fp->fs->csize * SS(fp->fs);で知ることができ、関数clust2sect(fp->fs, fp->clust)も必要です。 Diskio_drvTypeDef.disk_readの実装を見れば、アドレスへの変換方法を見ることができます。

+0

実際にファイル開始クラスタは、そのファイルから読み込んでいない限り、 'fp-> obj.sclust'にあります(そうでなければ' fp-> clust'にあります) – crizztus

関連する問題