【FatFs】車載外部ストレージ その127【SDカード直接制御⑩】

【FatFs】車載外部ストレージ その127【SDカード直接制御⑩】車載外部ストレージ

バックナンバーはこちら。
https://www.simulationroom999.com/blog/In-vehicle-external-storage-backnumber/

スポンサーリンク

はじめに

FatFs WinシミュレーションでSDカードに直接制御する話。
今回は「FatFsでFAT32フォーマットしてWindowsで認識」。
まずはフォーマット手順の確認。

SDカードをFatFsでフォーマットしてみる。
RAMディスクに対してフォーマットしたことはある。
FatFs対話モードのコマンドについて。

などなど。

スポンサーリンク

登場人物

博識フクロウのフクさん

指差しフクロウ

イラストACにて公開の「kino_k」さんのイラストを使用しています。
https://www.ac-illust.com/main/profile.php?id=iKciwKA9&area=1

エンジニア歴8年の太郎くん

技術者太郎

イラストACにて公開の「しのみ」さんのイラストを使用しています。
https://www.ac-illust.com/main/profile.php?id=uCKphAW2&area=1

スポンサーリンク

実験手順

フクさん
フクさん

想定実験手順は以下。
今回は「FatFsでFAT32フォーマットしてWindowsで認識」。

  • FatFs改造方針を考える
  • FatFs改造
  • FatFsでSDカードのFAT認識
  • FatFsでファイル書き込みとWindowsでの認識
  • FatFsでFAT32フォーマットしてWindowsで認識← これの1回目/全2回
フクさん
フクさん

そして、全体構成

FatFS、FileSystem、DiskIO、DeviceIoControl、読み書き実施、SDHC、WindowsAPIを駆使してSDを直接制御
太郎くん
太郎くん

これ・・・本当に大丈夫????

フクさん
フクさん

まぁ大丈夫でしょー。
物理的に壊れたりはしないし、
フォーマットがおかしくてもWindowsからしたらフォーマットされてないSDカードが刺さってるくらいにしか見えないし。

スポンサーリンク

実は以前にもFatFsでフォーマットはしている

フクさん
フクさん

実はフォーマット自体は以前、RAMディスクに対してはやってるんだよねー。

太郎くん
太郎くん

え?そうだっけ?

フクさん
フクさん

RAMディクスは起動直後はまっさらなメモリ空間なんで、
フォーマット処理を書けないとFileSystemとして成立しない。

太郎くん
太郎くん

なるほど。
過去の記事を確認したらここでやってたね。

スポンサーリンク

FatFs対話モードでのフォーマットコマンド

フクさん
フクさん

一応、フォーマットコマンドのおさらいをしておこう。

太郎くん
太郎くん

うん。

フクさん
フクさん

コマンドとしては、「fm」コマンドを使用する。

フクさん
フクさん

FatFsのhelp的にはこういう文法になってる。

fm <ld#> [<fs type> [<au size> [<align> [<N fats> [<N root>]]]]] - Create FAT volume
スポンサーリンク

FatFs対話モードでのフォーマットコマンドの各種パラメータ

太郎くん
太郎くん

ld#は論理ディスク番号で、
fs typeはなんだっけ?
以前やった気がするけど。

フクさん
フクさん

(たしかにデジャヴ)

フクさん
フクさん

FileSystemの指定だね。
以下の定義になってる。
(デジャヴ)

  • FAT:0x01
  • FAT32:0x02
  • exFAT:0x04
太郎くん
太郎くん

そして、
au sizeがクラスタサイズで・・・

太郎くん
太郎くん

alignは?

フクさん
フクさん

セクタサイズだね。
ここは512byte固定にしておいた方が良いかな。
まぁ指定するのは「au size」までで良いと思うよ。

フクさん
フクさん

一応、残りのパラメータも説明だけしておくと、

  • N fats:FATテーブル個数、デフォルトは1
  • N root:ルートディレクトリエントリの位置

「N root」なんかそうそう指定するパラメータでは無いな。

太郎くん
太郎くん

じゃ、これを元にSDカードをフォーマットしてみるかー。

スポンサーリンク

まとめ

フクさん
フクさん

まとめだよ。

  • SDカードをFatFsでフォーマットしてみる。
    • 物理的に壊れることはない。はず。
  • RAMディスクに対してフォーマットしたことはある。
  • FatFs対話モードのコマンドは「fm」。
    • fm <ld#> [<fs type> [<au size> [<align> [<N fats> [<N root>]]]]]

バックナンバーはこちら。

コメント

タイトルとURLをコピーしました