mbed+sd+fat
mbedでSDFileSystemを使って遊んでみたけど、少しハマった部分があったので、メモ。
mbedのweb上のIDEで インポート->ライブラリ で SDFileSystem で検索すればでてくるFatFileシステムだけど、サンプル上ではインスタンスを関数外で生成している(main関数の外)。サンプルの場合はエラーの際は終了するが、実際ファイルが見れないからと言ってシステム終了するケースは少ないんじゃないかなぁ・・・。
んで、ファイルが見れない場合はLED点滅とかさせて、SDの差し込みとか確認するようにした。
わざと、SDを差し込まずに動作させてLED点滅させて、再度正常に差し込んで読み込ませようとしたけど、失敗した・・・。
(ちなみに正常に挿入された状態で動作させると正常にファイル操作ができる。すばらしい!!)
あんまりC++詳しくないけど、どうやらSDFileSystemは異常発生したときにデストラクタで開放してやらないとダメみたいだった。
よくわからないけどグローバル??のようなインスタンスを再度グローバルで作成する方法がわからなかったので、SDFileSystemが必要な際は都度インスタンスを作成する(専用関数を作る)ようにすると、問題なく動作した。
C++はインスタンスが必要なくなったら自動的にデストラクタが呼ばれるんだね。
しかし、ほとんどいじらずに簡単にファイル操作できる軽量のMCUを使った組み込みって素敵やね。Linuxを超えて行ってほしいが、ライブラリの豊富さではまだまだな感じだね。
それにしても奥が深いぜC++ , mbed!!