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

 

  1.   1
  2.   概要
  3.   商標
  4. 1はじめに
    1. 1.1 ブートローダの概念
    2. 1.2 MSPM0 ブートローダの構造
      1. 1.2.1 ROM ベースの BSL
      2. 1.2.2 フラッシュ ベースのプラグイン インターフェイスを備えた ROM ベースの BSL
      3. 1.2.3 フラッシュベースのセカンダリ BSL
    3. 1.3 MSPM0 BSL の機能とデモの概要
  5. 2BSL ホストの実装の概要
  6. 3Non-Main (構成 NVM) における BSL 構成
    1. 3.1 Non-Main の紹介
    2. 3.2 例 – Sysconfig で PA18 BSL 起動ピンを無効化
  7. 4ブートローダーホスト
    1. 4.1 MCU ホスト コードの概要
      1. 4.1.1 ハードウェア接続
      2. 4.1.2 TXT からヘッダ ファイルへの変換
      3. 4.1.3 デモを使用する手順
    2. 4.2 PC ホストの例
      1. 4.2.1 イメージ ファイルとパスワード ファイルの準備
      2. 4.2.2 GUI を使用する手順
  8. 5ブートローダーのターゲット
    1. 5.1 デフォルトの ROM ベースの BSL
      1. 5.1.1 UART インターフェイス
      2. 5.1.2 I2C インターフェイス
    2. 5.2 フラッシュベースのプラグイン インターフェイスのデモ
      1. 5.2.1 UART インターフェイス
        1. 5.2.1.1 デモの使用手順
        2. 5.2.1.2 プラグイン インターフェイス コードをデバッグする方法
      2. 5.2.2 I2C インターフェイス
      3. 5.2.3 SPI インターフェイス
      4. 5.2.4 CAN インターフェイス
    3. 5.3 セカンダリ BSL デモ
      1. 5.3.1 フラッシュベースのセカンダリ BSL を 0x1000 から開始
      2. 5.3.2 フラッシュベースのセカンダリ BSL を 0x0000 から開始
        1. 5.3.2.1 MSPM0C 用のフラッシュベース 0x0 アドレス BSL デモ
        2. 5.3.2.2 ライブ ファームウェア アップデート
  9. 6よくある質問
    1. 6.1 リンカ ファイルの変更
    2. 6.2 デバイスを回復するための CCS によるファクトリ リセット
  10. 7参考資料
  11. 8改訂履歴

フラッシュベースのセカンダリ BSL を 0x0000 から開始

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) ブートローダの実装を参照してください。