今回はPIC32MX270F256BをターゲットにMPLAB X v5.45+Harmony3+XC32 v2.50を使用して、PIC32マイコンのソフトウェアリセット(Soft Reset)を利用する方法について紹介します。
何かしらの異常が発生した場合に電源投入時の状態に初期化する際にソフトウェアリセットを利用します。Harmony3では予めコンポーネントが用意されているため、コンポーネントを追加するだけで簡単にソフトウェアリセットを利用することができます。ただ、名称が分かりづらく、RCONというコンポーネント名称になっているため、注意が必要です。
RCONを追加した状態でコード生成をするとconfig/(ユーザ指定名)/peripheral/rcon/plib_rcon.h内にソフトウェアリセットの関数が定義されています。
条件に応じてRCON_SoftwareReset();を呼び出すだけでソフトウェアリセットを実行することができます。RCON_SoftwareReset()関数内では割込みの無効化、システムレジスタのアンロック、リセットという一連の必要な処理が既に定義されているため、自身でソフトウェアリセットを実装するよりも簡単に使用することができます。
異常が連続して起きた場合に変な挙動にならないようにソフトリセットの使い方には要注意ですが、コンポーネントを追加するだけで比較的簡単に実装することができました。