0
私はstm32でfatfsを使用していますが、f_open関数を使用して開いているファイルの最初の セクタのアドレスを探したいとします。したがって、 は、利用可能な低レベルDMAメソッド を使用して、アドレスオフセットとしてファイルにアクセスするためにセクタアドレスを使用できます。 ディスク上のファイルのローアドレスを取得するにはどうすればよいですか?FATFS:ファイルの最初のセクタのアドレスを取得する方法は?
私はstm32でfatfsを使用していますが、f_open関数を使用して開いているファイルの最初の セクタのアドレスを探したいとします。したがって、 は、利用可能な低レベルDMAメソッド を使用して、アドレスオフセットとしてファイルにアクセスするためにセクタアドレスを使用できます。 ディスク上のファイルのローアドレスを取得するにはどうすればよいですか?FATFS:ファイルの最初のセクタのアドレスを取得する方法は?
ChanのFatFSでは、ファイルがクラスタを開始することがわかっています。これはfp->sclust
という変数です。クラスターサイズはclusterSize = fp->fs->csize * SS(fp->fs);
で知ることができ、関数clust2sect(fp->fs, fp->clust)
も必要です。 Diskio_drvTypeDef.disk_read
の実装を見れば、アドレスへの変換方法を見ることができます。
実際にファイル開始クラスタは、そのファイルから読み込んでいない限り、 'fp-> obj.sclust'にあります(そうでなければ' fp-> clust'にあります) – crizztus