SD-Card

車載外部ストレージ

【FatFs】車載外部ストレージ その114【SDカードディスクイメージ④】

Windowsで作成したテキストファイルの有無をFatFsで確認。「long_file_name_file.txt」があることが確認。サイズもあってる。Windowsで作成したテキストファイルの中身をFatFsで確認。「0123456789」の繰り替しのテキストファイルなことを確認。
車載外部ストレージ

【FatFs】車載外部ストレージ その113【SDカードディスクイメージ③】

ディスクイメージをWindows側に持ってきてFatFsシミュレータのプロジェクトフォルダへコピー。PhysicalDrive2というファイル名はFatFsシミュレータがDisk2と認識するルールに則った名称。FatFsシミュレータでディスクイメージ認識はOK。fsコマンドで確認できた。
車載外部ストレージ

【FatFs】車載外部ストレージ その112【SDカードディスクイメージ②】

WindowsでSDカードをFATでフォーマット。FAT12/FAT16/FAT32が選択できないのでFATを指定するのみ。領域サイズで自動選択。テキストファイルをSDカード内に作成。LinuxでSDカードのディスクイメージ作成。dfコマンドでデバイス確認。ddコマンドでディスクイメージ作成。
車載外部ストレージ

【FatFs】車載外部ストレージ その111【SDカードディスクイメージ①】

SDイメージシミュレーションの手順説明。その手順及び構成を図解。ポイントはLinuxのddコマンドでSDカードのディスクイメージの吸い上げと書き戻し。VMware Workstation PlayerとUbuntuが必要。今回はWinodws PC前提だが他のLinux環境でも問題無い。
車載外部ストレージ

【FatFs】車載外部ストレージ その110【ファイル上シミュレーション⑰】

扱ったのはFAT32。他にFAT12、FAT16があるが、違いはFAT領域のクラスタサイズとディレクトエントリ構造体。基本的な追い方は一緒。組み込み機器ではPCで出来て当たり前がとても困難。「車輪の再発明」という揶揄が適切ではない状況の方が多い。日ごろから「出来て当たり前」の仕組みを考えると吉。
車載外部ストレージ

【FatFs】車載外部ストレージ その109【ファイル上シミュレーション⑯】

フォルダの中のディレクトリエントリの構成を図解。カレントディレクトリ、親ディレクトリ、LFN→SFNの構成。ファイルの実体が配置されてるクラスタ確認。ここの考え方は通常の「8.3形式」のファイルと同一。該当クラスタのFAT領域に於けるクラスタチェーンを確認。
車載外部ストレージ

【FatFs】車載外部ストレージ その108【ファイル上シミュレーション⑮】

ディレクトリエントリが指し示すフォルダの中のデータはフォルダ内のディレクトリエントリ。つまり入れ子になっている。ルートディレクトリ以外のディレクトリは「.」と「..」の名称のディレクトリが存在。「.」がカレントディレクトリ。「..」が親ディレクトリ。相対PATH用の仕様。
車載外部ストレージ

【FatFs】車載外部ストレージ その107【ファイル上シミュレーション⑭】

ロングファイルネームなフォルダやファイルのディレクトリエントリの関係性を確認。LFNが先に現れ、最後にSFN。VFAT未対応FileSystemはLFNをスキップしてSFNだけを参照している。SFNにフォルダ内のディレクトリエントリの先頭クラスタが埋まっている。
車載外部ストレージ

【FatFs】車載外部ストレージ その106【ファイル上シミュレーション⑬】

ロングファイルネームなフォルダやファイルのディスクイメージ上で確認を試みる。まずはルートディレクトリエントリから。存在するファイルとフォルダが3つのはずだが、ディレクトリエントリとしては5つ存在。5つのうち3つがロングファイルネーム仕様を満たす仕掛け。ファイル名もasciiからUnicodeになってる。
車載外部ストレージ

【FatFs】車載外部ストレージ その105【ファイル上シミュレーション⑫】

FatFsのVFAT仕様確認方法。とりえあず、ロングファイルネームなフォルダとファイルを作成してディスクイメージの中身を確認する方針。FatFs対話モードでフォルダとファイルを作成。「long_file_name_folder」作って、その中に「long_file_name_file.txt」を作成。