JAJA996D December 2022 – September 2025 MSPM0C1105 , MSPM0C1106 , MSPM0G1105 , MSPM0G1106 , MSPM0G1107 , MSPM0G1505 , MSPM0G1506 , MSPM0G1507 , MSPM0G3105 , MSPM0G3106 , MSPM0G3107 , MSPM0G3505 , MSPM0G3506 , MSPM0G3507 , MSPM0L1105 , MSPM0L1106 , MSPM0L1227 , MSPM0L1227-Q1 , MSPM0L1228 , MSPM0L1228-Q1 , MSPM0L1303 , MSPM0L1304 , MSPM0L1304-Q1 , MSPM0L1305 , MSPM0L1305-Q1 , MSPM0L1306 , MSPM0L1306-Q1 , MSPM0L1343 , MSPM0L1344 , MSPM0L1345 , MSPM0L1346 , MSPM0L2227 , MSPM0L2227-Q1 , MSPM0L2228 , MSPM0L2228-Q1
0 アドレスから開始するセカンダリ BSL の場合、MCU は起動またはリセットのたびにセカンダリ BSL を実行できます。セカンダリ BSL では、カスタムチェック判定を使用して、ファームウェア更新のために BSL に留まるか、アプリケーションに移行するかを決定します。この設計の利点は、顧客が GPIO や未書き込みデバイス検出に限定されない特別な判定を使用できる点です。例えば、アプリケーション コードにジャンプする前にアプリケーションの CRC を確認し、アプリケーション コードの整合性を確保する必要があります。もう一つの使用ケースは、MSPM0C のように ROM BSL を搭載していない一部の MSPM0 デバイス向けであり、この点に関するデモコードが SDK に用意されています。アプリケーションにジャンプしたら、PC をアプリケーションの開始アドレスに設定できます。
この種の BSL を使用するには、セカンダリ BSL 用とアプリケーション用の 2 つのプロジェクトを作成します。フラッシュ領域は分離する必要があります。各プロジェクトには 2 つの割り込みテーブルがあります。BSL では、BSL からアプリケーション コードにジャンプする際に現在の割り込みテーブルを有効にするため、ベクタ テーブル オフセット レジスタ (SCB->VTOR) を設定する必要があります (アプリケーションから BSL へのジャンプはリセットを使用するため、ベクタ テーブル オフセット レジスタは自動的にリセットされます)。
ライブ ファームウェア アップデートをサポートできるセカンダリ BSL デモ コードもあります。このデモは、アプリケーション コードを停止せずに、セカンダリ BSL ファームウェア アップデートが実行中であることを意味します。詳細については、MSPM0ライブ ファームウェア アップデート(LFU) ブートローダの実装を参照してください。