車載外部ストレージ 【FatFs】車載外部ストレージ その94【ファイル上シミュレーション①】 FatFs Win32のソースコード群確認。 「diskio.c」を改造すればディスクイメージをファイルにできそう。 diskio.cはWindowsXP時代のHDDアクセス用にAPIが残っている。 このAPIをうまく流用すると楽かもしれない。 認識する物理ドライブを元からあるRAM Diskと別に加えて10個にする方針。 2021.04.26 車載外部ストレージ
車載外部ストレージ 【FatFs】車載外部ストレージ その93【メモリ上シミュレーション⑤】 ファイル読み取りのコマンド呼び出しの流れは書き込み時と一緒。 オープン時のmode指定を読み取りmodeにする。 ddコマンドでディスクイメージをdumpできる。 512byte単位なので若干使い勝手は悪い。 次回からメモリ上でなく、ファイル上にディスクイメージを構築できるようチャレンジ。 2021.04.25 車載外部ストレージ
車載外部ストレージ 【FatFs】車載外部ストレージ その92【メモリ上シミュレーション④】 flコマンドでルートディレクトリ参照。 引数はpathなので「0:」のような表現になる。 ファイルオープン時にmode指定。 modeはビットアサインになってる。 ファイルへの書き込みコマンド「fw」はお試しようのため、自由に書き込みが出来るコマンドにはなっていない。 対話モードは複数ファイルは開けない。 2021.04.24 車載外部ストレージ
車載外部ストレージ 【FatFs】車載外部ストレージ その91【メモリ上シミュレーション③】 FatFsでファイルアクセス前の準備の部分を実施。 物理ドライブへのアクセス初期化。 FATにフォーマット。 論理ドライブマウント。 volume status参照。 FATことFile Allocation Tableはクラスタの繋がりを表現している。 これによりファイルサイズの伸縮を実現している。 2021.04.23 車載外部ストレージ
車載外部ストレージ 【FatFs】車載外部ストレージ その90【メモリ上シミュレーション②】 FatFsと対話するためのコマンド群がある。 「?」でhelpが確認できる。 パラメータ指定に物理ドライブと論理ドライブの指定があるので注意。 ファイルアクセスの前にフォーマットやマウントなどの処理が必要。 上記が済めば、一般的なファイルアクセスAPIが使用できる。 2021.04.22 車載外部ストレージ
車載外部ストレージ 【FatFs】車載外部ストレージ その89【メモリ上シミュレーション①】 FatFsのビルド環境準備。 Visual Studio 2017 expresを使用。 プロジェクトに設定されているWindows SDKが入っていない場合があるので構成プロパティで設定変更が必要。 FatFs起動。 WindowsXP以前だとPCのHDDに直接アクセスできたらしい。 2021.04.21 車載外部ストレージ
車載外部ストレージ 【FileSystem】車載外部ストレージ その88【FatFs②】 FatFsをDownloadしてきた。日本語サイトではなく、英語サイトから。FatFs sample projects for various platformsの方を落とす。FatFs sampleの中身確認。様々なマイコン向けのサンプルあり。(stm32,lpc23xx)win32がWindows向けのサンプル。 2021.04.20 車載外部ストレージ
車載外部ストレージ 【FileSystem】車載外部ストレージ その87【FatFs①】 FAT解説ページの紹介。 FatFsの作者であるChaNさんの解説ページ。 今後の方針。 FatFsをPC上で動作させる。 現状でもメモリ空間にFATを構築することはできるサンプルが存在。 SDカードのディスクイメージを吸い上げて、それに対して読み書きとかできたらいいな。(希望) 2021.04.19 車載外部ストレージ
車載外部ストレージ 【FileSystem】車載外部ストレージ その86【SD応答向上仕様㉟】 CMD43(Q_MANAGEMENT)について説明。 CommandQueueに登録されてるTaskを全部かTask ID別に停止でいる。 Sequential CQ mode時にTask ID単位の停止は禁止されている。 停止した際の挙動は未規定の未保証。 SDカード関連の話はこれで完了。 2021.04.18 車載外部ストレージ
車載外部ストレージ 【FileSystem】車載外部ストレージ その85【SD応答向上仕様㉞】 CMD38(ERASE)のDiscardについて説明。 DiscardはSSD由来の用語。 Discard指定したBlockがどのような状態になるかは仕様上の規定はない。 Discardしておくと、ストレージ側(SD/SSD)で効果的なウェアレベリングを実施してくれる可能性が上がり、結果として寿命が延びやすくなる。 2021.04.17 車載外部ストレージ