Microchip MPLAB X IDEを使う際には、巻き戻せる環境を用意しましょう
旧Atmel社(現Microchip社)のSAM〇〇シリーズを使っていますが、周辺チップの関係から今回は開発環境を「Atmel Studio」ではなく、「MPLAB X」への変更をしてみたのですが、やはり知っている人は知っている「信じてはいけない」状態が発生します。
心情的に「開発環境は素直に使う」を基本としているので、ゴミが混じっていることを承知でHarmonyライブラリを素直に使用しています。Harmonyライブラリには現在でも多数のバグがあり、「ハードウェアの設計が間違った?」「Harmonyの使い方が間違ってる?」と、本来の目的とは関係のないところで時間を使ってしまいます。これは、開発スケジュール上で織り込み済みでなければなりません。単に人柱経験からくる日数を加えるだけです・・・
Microchip社の推奨に従うと、「Harmony Configurator」を使用してファームウェア全体(設計したハードウェアに合わせて)を構成し、ベースとなるコードを生成します。アプリケーション レベルでは、ここで生成されたコードを呼び出してハードウェアの制御をおこなう方法となります。生成されたコードは全てデバッガで追うことができるので、適時Harmonyのバグを取り除いていきます(バグを取り除くのは容易ではありません。Harmonyライブラリの動きやコード上のコメントを注意深く見る必要があります)。
ここで「信じてはいけない」現象が発生します。意外と問題なく動くと思って油断していると・・・(油断していました)
This project configuration may not have been created with the MPLAB Harmony Configurator New Project Wizard or it has been incorrectly modified is some way.
このようなダイアログが表示され「Harmony Configurator」を起動できなくなります。このエラーですが、簡単には回復できないようで(関連ファイルを全て調べてる余裕がなく見切れていません)、非常に厄介なエラーです。何を戻せばよいのかが明確ではないのです。
そのため重要なのは「プロジェクトに関する全てのファイルを常にバックアップしておく」ことです。ソース ファイルだけをバックアップするのでは不十分です。
マメに丸ごとをGitにアップしておいてもいいです。DropBoxと同期しているフォルダ内でプロジェクトを編集してもOKです(DropBoxには、フォルダごと巻き戻すことも機能もあります)。
今回はDropBoxの巻き戻し機能でサラッと解決できましたが、油断は禁物です。
— 2020/12/30 追記 —-
何が消えるかが分かりました。src\config\default\default.mhc フォルダの中身が空っぽになるためでした。*.ymlと言う「Harmony Configurator」で設定した内容を保存してあるすべてのファイルが跡形もなく消えます。バックアップが無ければ・・・恐ろしいことになります。