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

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

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

はじめに

FatFsのメモリ上シミュレーションの話。

FatFsのビルド環境準備してみる。
開発環境はWindowsを想定しているため、マイクロソフト社製の例のアレを使用。
そのままだとビルドができないこともあるらしいので、ちょっとプロジェクトを修正したり。

そしてついにFatFs起動。

(WinXP時代は直接HDDを・・・。)

登場人物

博識フクロウのフクさん

指差しフクロウ

イラスト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のビルド

フクさん
フクさん

とりあえず、ビルド環境としては
Visual Studio 2017 expressを使用する。

太郎くん
太郎くん

今までもよく使ってきた環境だねー。

フクさん
フクさん

Visual Studio 2017 expressがインストールできていることを前提に話を進める。

太郎くん
太郎くん

まずは、ffdev.slnを開けばいいのかな?

diskio.c、diskio.h、ff.c、ff.h、ffconf.h、ffdev.sln、ffdev.suo、ffdev.vcproj、ffsystem.c、ffunicode.c、main.c
フクさん
フクさん

Visual Studio 2017用にupgradeするか聞かれるのでそのままupgradeでOKだ。

太郎くん
太郎くん

そのままビルドしようとしたらエラーが出た・・・。

エラー MSB8036 Windows SDK バージョン 8.1 が見つかりませんでした。必要なバージョンの Windows SDK をインストールするか、プロジェクト プロパティ ページで SDK バージョンを変更するか、ソリューションを右クリックして [ソリューションの再ターゲット] を選択してください。 ffdev C:\Program Files (x86)\Microsoft Visual Studio\2017\WDExpress\Common7\IDE\VC\VCTargets\Microsoft.Cpp.WindowsSDK.targets 46

フクさん
フクさん

該当するプロジェクトに設定されてるWindows SDKがないんだな。
プロジェクトのプロパティの
構成プロパティ→全般でSDKを再設定する必要があるね。

Visual Studio 2017 express、構成プロパティ、全般、Windows SDK バージョン、8.1、10.0.14393.0、10.0.17763.0
太郎くん
太郎くん

Windows SDKはどのversionでもいいの?

フクさん
フクさん

特にWindows SDKのversionに依存したコードは居ないはずなので、
何を選んでもOKなはずだ。

太郎くん
太郎くん

じゃ、一番新しそうなのを選んでおこう。

太郎くん
太郎くん

でわ、あらためてビルド!

太郎くん
太郎くん

よし!
こんどはビルドは通ったぞ!

フクさん
フクさん

とりあえず、そのまま実行してみよう。

ffsample起動

太郎くん
太郎くん

なんか起動した。

FatFs module test monitor (LFN, CP932, UTF-8)、PD#0 <== RAM Disk (135MB, 512 bytes * 276480 sectors)、On the Windows Vista and later, you cannot access the physical drives.、Use Windows NT/2k/XP instead.、Multiple partition is disabled.、Each logical drive is associated with the same physical drive number.
太郎くん
太郎くん

英文で書かれてるけど、
「Windows Vista以降は物理ドライブにアクセスできない」
的なことが書かれているね?

フクさん
フクさん

WindowsXP以前だと直接PCのハードディスクとかリムーバブルディスクにアクセスできたみたいだね。
Vista以降だと、OS側でガードが入ってアクセスできないように仕様変更が入ったのだと思う。

太郎くん
太郎くん

PCのHDDにアクセスって・・・。
それってなんかすごいけど、怖いな・・・。

フクさん
フクさん

まぁ我々の今の環境はWindows10なんで、HDDへのアクセスは不可ってことだな。

太郎くん
太郎くん

とりあえず、メモリ上での動作確認の準備は出来たって感じかな?

フクさん
フクさん

そうだね。
FatFsを操作する上での前提知識とかもあるんで、
次回はそこら辺を説明しよう。

まとめ

フクさん
フクさん

まとめだよ。

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

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

コメント

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