리소스 제한이있는 마이크로 컨트롤러에서 FAT16 파일 시스템 구조를 사용하는 저수준 응용 프로그램에서 작업 중이므로 사용자 정의 액세스 코드를 작성해야합니다. 저는 이미 Petit FAT와 FatFS와 같은 라이브러리를 사용하고 있습니다. 그러나 불행하게도이 중 하나가 내 필요 사항이라고는 생각하지 않습니다. 그들은 FAT의 작동 방식에 대한 유용한 참고 자료로 사용되었습니다.FAT16 디렉토리
여전히 문제가있는 한 영역은 하위 디렉토리 항목입니다.
this에 따르면 디렉토리 항목은 1 시작 클러스터를 가리킬 수 있습니다. 데이터 파일의 경우 이것은 단순히 첫 번째 데이터 클러스터입니다. 디렉토리의 경우 이것은 서브 디렉토리의 시작 클러스터입니다 (아마도 다른 디렉토리 항목).
루트 디렉토리에서 기본 파일까지 단 하나의 디렉토리 경로 만 있으면 제대로 작동하지만 주어진 디렉토리 아래의 여러 파일/디렉토리로 어떻게 분기 할 수 있는지 이해할 수 없습니다.
ex. 디렉토리 구조 다음 FAT16 구조에 대한 이해를 바탕으로
- root dir 1
- sub dir 1
- file 1
- sub dir 2
- file 2
- root dir 2
- sub dir 3
,
즉시 지방
root dir 1
에 대한 정보를 포함하는 첫 번째 루트 디렉토리 항목에 대한 클러스터가 될 것이다 다음과 같습니다. 첫 번째 클러스터 필드에는
sub dir 1
의 클러스터 주소가 포함됩니다. 첫 번째 클러스터 필드에는
file 1
의 클러스터 주소가 포함되며 첫 번째 클러스터는 데이터 클러스터를 가리 킵니다.
두 번째 루트 디렉토리 항목은 root dir 2
에 대한 정보가 들어있는 FAT의 끝 다음에 두 번째 클러스터에서 시작됩니다. 첫 번째 클러스터는 sub dir 3
의 클러스터를 가리키고 첫 번째 클러스터는 빈 클러스터 (FAT로 표시된 클러스터)를 가리 킵니다.
무엇이 여기에 있습니까? 루트 디렉토리 항목에서 sub dir 2
까지 탐색하는 방법을 알아낼 수 없습니다.
"루트 디렉토리"를 일반적으로 "디렉토리"와 혼동시킬 수 있습니다. 여기를보세요 : http://en.wikipedia.org/wiki/File_Allocation_Table – paulsm4
당신이 옳다고 생각합니다. 루트 디렉토리는'A :'나'0 :'등을 가리키고, '루트 디렉토리 1'을 가리키는 항목 (올바른 경우? 내 질문을 업데이트합니다). 그러나이 방법으로 한 디렉터리에 여러 디렉터리/파일 문제가 해결되는 방법을 잘 모르겠습니다. – helloworld922