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