2021-04

車載外部ストレージ

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

BPB(BIOS Parameter Block)について簡単に説明。 重要なパラメータだけ抽出。 FatFsでの具体的な数値を抽出。 セクタ、クラスタ、予約領域、FAT領域の数が分かる。 FAT領域は破損を想定してい冗長性を持たせ多重化されている場合がある。 SDカードの場合は1個なことが多い。
車載外部ストレージ

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

FatFs Win32 ファイル上シミュレーションのディスクイメージを確認。 PhysicalDrive1で生成されている。 MBR(Master Boot Record)を確認 FAT32であることを確認。 BPB(BIOS Parameter Block)が63セクタ目にあることを確認。
車載外部ストレージ

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

FatFs Win32 ファイル上シミュレーション起動。 マウント、フォーマットをして、ファイルを2つ作成。 fjコマンドでカレントディレクトリ指定。 flコマンドでファイルが作られていることを確認。 ファイルの中身も確認。 次回からディスクイメージの中を見ていく。
車載外部ストレージ

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

FatFsのファイル上シミュレーションの話。 diskio.cを改造する。 FatFs Win32のdiskio.cを改造。修正差分確認。 改造の概要説明。物理ドライブ走査数をMAX_DRIVE分に修正して認識できる物理ドライブの数を増加。 物理ドライブ1以上を指定されたらディスクイメージファイルをオープン。
車載外部ストレージ

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

FatFs Win32のソースコード群確認。 「diskio.c」を改造すればディスクイメージをファイルにできそう。 diskio.cはWindowsXP時代のHDDアクセス用にAPIが残っている。 このAPIをうまく流用すると楽かもしれない。 認識する物理ドライブを元からあるRAM Diskと別に加えて10個にする方針。
車載外部ストレージ

【FatFs】車載外部ストレージ その93【メモリ上シミュレーション⑤】

ファイル読み取りのコマンド呼び出しの流れは書き込み時と一緒。 オープン時のmode指定を読み取りmodeにする。 ddコマンドでディスクイメージをdumpできる。 512byte単位なので若干使い勝手は悪い。 次回からメモリ上でなく、ファイル上にディスクイメージを構築できるようチャレンジ。
車載外部ストレージ

【FatFs】車載外部ストレージ その92【メモリ上シミュレーション④】

flコマンドでルートディレクトリ参照。 引数はpathなので「0:」のような表現になる。 ファイルオープン時にmode指定。 modeはビットアサインになってる。 ファイルへの書き込みコマンド「fw」はお試しようのため、自由に書き込みが出来るコマンドにはなっていない。 対話モードは複数ファイルは開けない。
車載外部ストレージ

【FatFs】車載外部ストレージ その91【メモリ上シミュレーション③】

FatFsでファイルアクセス前の準備の部分を実施。 物理ドライブへのアクセス初期化。 FATにフォーマット。 論理ドライブマウント。 volume status参照。 FATことFile Allocation Tableはクラスタの繋がりを表現している。 これによりファイルサイズの伸縮を実現している。
車載外部ストレージ

【FatFs】車載外部ストレージ その90【メモリ上シミュレーション②】

FatFsと対話するためのコマンド群がある。 「?」でhelpが確認できる。 パラメータ指定に物理ドライブと論理ドライブの指定があるので注意。 ファイルアクセスの前にフォーマットやマウントなどの処理が必要。 上記が済めば、一般的なファイルアクセスAPIが使用できる。
車載外部ストレージ

【FatFs】車載外部ストレージ その89【メモリ上シミュレーション①】

FatFsのビルド環境準備。 Visual Studio 2017 expresを使用。 プロジェクトに設定されているWindows SDKが入っていない場合があるので構成プロパティで設定変更が必要。 FatFs起動。 WindowsXP以前だとPCのHDDに直接アクセスできたらしい。