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改訂履歴

SRAM メモリの使用法

SRAM メモリのレイアウトでは、ブートローダの動作に使用されるメモリについて説明します。

  • データとスタックのセクション - BSL が動作するために使用されます。ブートローダを終了すると、SRAM のこれらのセクションはクリアされます。
  • 可変バッファ・スペース - BSL の通信中に送受信されるデータ・パケットを格納するために使用されるバッファ空間

ホストによる読み取り / 書き込みアクセスが可能な SRAM メモリは、BSL バッファの開始アドレスから [SRAM の終了アドレス - 0x120] です。ここで、SRAM の終了アドレスは、各デバイスで利用可能な SRAM メモリによって決定されます。可変バッファ領域と同じ SRAM 領域が共有されるため、SRAM の書き込み / 読み取り動作中に上書きされる可能性があります。

GUID-20221116-SS0I-PBMP-X8WG-FPCFCQKXCCQ1-low.png図 3-3 SRAM の使用法

A - SRAM 開始アドレス (0x20000000)

B - フラッシュ・プラグイン・インターフェイスが登録されていないとき、「デバイス情報の取得」コマンドの応答から取得できる「BSL バッファの開始アドレス」

C - 「デバイス情報の取得」コマンドへの応答から取得できる「BSL バッファの開始アドレス」。フラッシュ・プラグイン・インターフェイスが登録されていない場合、B と同じです

D - BSL バッファの終了アドレス = BSL バッファの開始アドレス + (2 * BSL の最大バッファ・サイズ)。ここで、BSL バッファの開始アドレスと BSL の最大バッファ・サイズは「デバイス情報の取得」コマンドの応答から取得できます

E - スタック割り当ての開始アドレス (E - 0x120)。「BSL の最大バッファ・サイズ」が 0xFFFF より小さい場合、これは「D」と同じです

F - デバイスで使用可能な SRAM メモリの終了アドレス。この値は、デバイス固有のデータシートで確認してください。

セクション B~C:

  • BSL 構成に登録されているとき、フラッシュ・プラグインの動作に割り当てられるデータ・セクション

セクション C~D:

  • データ・パケットの格納に使用されるバッファ領域

  • 最大サイズは (2 * 0xFFFF)

セクション C~E:

  • BSL コマンドによる SRAM の読み取りおよび書き込み動作に使用可能なメモリ