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