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 デモ

プライベート プロトコルが必要な場合、ROM ベースの BSL コアは使用できなくなり、また ROM BSL を搭載していない MSPM0C の場合には、セカンダリ BSL デモを参照できます。プロトコルを容易に変更できる、完全にオープンソース化されたセカンダリ BSL デモが SDK に用意されています。セカンダリ BSL デモのデフォルト プロトコルは、ROM ベースの BSL で同じです。図 3-2で説明しているセカンダリ BSL デモにはいくつかの種類があります。

表 5-1 MSPM0 セカンダリ BSL デモの概要
デモ SDK 内のプロジェクト 使用事例
セカンダリ BSL は 0x1000 から開始 <...\mspm0_sdk_xx\examples\nortos\LP_MSPM0L1306 (または LP_MSPM0G3507)\bsl\secondary_bsl_uart/i2c/spi/can> ブート コードで BSL 起動検出を行えるデバイス (通常は ROM BSL 搭載デバイス) かつプライベート プロトコルが必要な場合にのみ使用できます。
MSPM0C 向けフラッシュベース BSL は 0x0 から開始 <...\mspm0_sdk_xx\examples\nortos\LP_MSPM0C1104\bsl\flash_bsl> ROM ベースの BSL を搭載していない MSPM0、または起動やリセットのたびにアプリケーション領域の CRC を実行するなど、アプリケーションにジャンプする前の判定条件を変更する必要がある場合。
ライブ ファームウェア アップデート BSL 該当なし ライブ ファームウェア アップデートが必要です

従来のフラッシュベース BSL 設計は、MSPM0C 向けフラッシュベース BSL が 0x0 から開始するデモにより近いものです。このような設計では、アプリケーション コードに直接ジャンプし、PC をアプリケーション コードの開始アドレスに設定できます。ただし、予期しない状況でスタック競合の問題が発生する可能性があります。0x1000 から開始するセカンダリ BSL の設計では、リセットを利用してアプリケーション コードにジャンプし、アプリケーション コードに入る前にすべてのレジスタや SRAM をリセットできるため、より安定した動作が可能です。ROM ベースの BSL を搭載した MSPM0 デバイスでプライベート プロトコルも必要な場合は、0x1000 から開始するセカンダリ BSL デモを使用することを強く推奨します。