JAJU887 February   2023

 

  1.   概要
  2.   商標
  3. 1BSL 機能の概要
  4. 2用語
  5. 3BSL のアーキテクチャ
    1. 3.1 設計
      1. 3.1.1 タイムアウト機能
        1. 3.1.1.1 インターフェイスの自動検出
        2. 3.1.1.2 コマンドの受信
    2. 3.2 BSL の起動
      1. 3.2.1 ブランク・デバイス
      2. 3.2.2 アプリケーション要求
      3. 3.2.3 GPIO ベースの起動
      4. 3.2.4 メールボックスのデバッグ・コマンド
      5. 3.2.5 その他
        1. 3.2.5.1 プリブート・アプリケーションの検証
    3. 3.3 メモリ
      1. 3.3.1 SRAM メモリの使用法
    4. 3.4 BSL の構成
    5. 3.5 BSL のステータス
  6. 4ブートローダのプロトコル
    1. 4.1 パケット・フォーマット
    2. 4.2 UART および I2C BSL プロトコル
      1. 4.2.1 BSL アクノリッジ
      2. 4.2.2 ペリフェラルの構成
        1. 4.2.2.1 UART
        2. 4.2.2.2 I2C
        3. 4.2.2.3 CRC
    3. 4.3 ブートローダのコア・コマンド
      1. 4.3.1  接続
      2. 4.3.2  デバイス情報の取得
      3. 4.3.3  ブートローダのロック解除
      4. 4.3.4  データのプログラム
      5. 4.3.5  データの高速プログラム
      6. 4.3.6  データの読み戻し
      7. 4.3.7  フラッシュの範囲消去
      8. 4.3.8  一括消去
      9. 4.3.9  工場出荷時リセット
      10. 4.3.10 スタンドアロン検証
      11. 4.3.11 アプリケーションの開始
      12. 4.3.12 ボーレートの変更
    4. 4.4 BSL コアの応答
      1. 4.4.1 BSL のコア・メッセージ
      2. 4.4.2 詳細なエラー
      3. 4.4.3 メモリの読み戻し
      4. 4.4.4 デバイス情報
      5. 4.4.5 スタンドアロン検証
    5. 4.5 ブートローダのセキュリティ
      1. 4.5.1 パスワードで保護されているコマンド
        1. 4.5.1.1 セキュリティ・アラート
      2. 4.5.2 BSL エントリ
  7. 5ブートローダによるプログラムのフローのサンプル
  8. 6セカンダリ・ブートローダ
    1. 6.1 セカンダリ・ブートローダの例
  9. 7インターフェイス・プラグイン
    1. 7.1 実装
      1. 7.1.1 init
      2. 7.1.2 receive
      3. 7.1.3 transmit
      4. 7.1.4 deinit
      5. 7.1.5 重要な注意事項
    2. 7.2 フラッシュ・プラグインのタイプ
    3. 7.3 既存のインターフェイスのオーバーライド
      1. 7.3.1 UART インターフェイスのフラッシュ・プラグインの例
  10. 8関連資料
  11. 9改訂履歴

UART インターフェイスのフラッシュ・プラグインの例

UART 通信を使用するサンプル・フラッシュ・プラグインは、SDK サンプル SDK の一部として参照用に提供されています。このセクションでは、その例について詳しく説明します。

説明

UART インターフェイスのフラッシュ・プラグインは、次の 4 つの API フックを使用して、BSL ホストと ROM BSL との間のデータ・トランザクションを処理します。

  • BSL_PI_UART_init
  • BSL_PI_UART_receive
  • BSL_PI_UART_send
  • BSL_PI_UART_deinit

UART フラッシュ・プラグインは、必要なときカスタム実装で ROM BSL UART インターフェイスをオーバーライドするために主に使用されます。

使用例

  • UART_RX と UART_TX を BSL ホスト (UART インターフェイスを搭載した任意のマイコン) に接続します。
  • サンプルをコンパイルしてロードします。
  • BSL の起動ピン、または他の起動方法を使用して、BSL 起動条件を作り出します。
  • ホストから接続コマンドを送信します。成功すると、BSL アクノリッジが受信されます。
  • ホストからデバイス情報の取得コマンドを送信します。
  • BSL は応答として、UART インターフェイスのフラッシュ・プラグインのバージョン情報を返します。
  • 同様に、消去、プログラム、検証コマンドを送信して、メモリ内にデータをプログラムします。

ソフトウェア・ファイルの詳細

ファイル名詳細
bsl_uart.cホストとBSL コアとの間の通信を処理する。init、receive、send、deinit の 4 つのインターフェイス API を定義する。
bsl_uart.hBSL アクノリッジの定義と、bsl_uart.c の関数宣言が含まれている
ti_msp_dl_config.hUART ピン、クロック構成などのデバイス固有の構成が含まれている。
boot_config.hBCR と BSL の構成構造が含まれている
startup_mspm0x_ticlangデフォルトのハンドラ関数定義のみを含むスタートアップ・ファイル。標準的なスタートアップ・ファイルとは異なり、割り込みベクタ・テーブルやリセット・ハンドラはありません。これらの機能はフラッシュ・プラグインでは使用されないため、メモリ消費量を減らすため削除されている。
mspm0x.cmdリンカ・コマンド・ファイルで、フラッシュ・プラグインのイメージを格納するメモリ領域と、そのイメージがどの SRAM 領域で動作するかを指定する。

カスタマイズ

この例では、フラッシュ・プラグインのリファレンス実装を示します。この実装は、必要に応じてカスタマイズできます。主に変更されるのは、インターフェイスのフラッシュ・プラグインの API です。

カスタマイズは、次の手順に従います。

  • 必要に応じてフラッシュ・プラグインの API を変更します
  • 変更が完了したら、コードをコンパイルします
  • API ポインタが更新されたなら、BSL の構成の CRC を計算します
  • BCR 構成で、フラッシュの書き込み保護設定を適切に変更します
  • BCR 構成の CRC を計算します
  • 新しい CRC を BCR および BSL の構成に保存します。
  • コードを再度コンパイルします。
  • フラッシュ・プラグインのイメージをロードします