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

BSL アクノリッジ

BSL ソフトウェアのペリフェラル・インターフェイス・セクションは、BSL データ・パケットのラッパー・セクションを解析します。データ送信でエラーが発生した場合、エラー・メッセージが直ちに送信されます。すべてのデータが正常に受信された後に ACK が送信されます。これは、データ・パケットが正しくフォーマットされ、BSL コア・ソフトウェアに渡されて解釈が行われたという意味で、コマンドが正しく実行されたという意味ではなく、コマンドが有効であったことも保証されていません。

BSL プロトコルでは、送信されるすべての BSL データ・パケットに対して、送信されるすべての BSL データ・パケットに加えて、単一バイトのアクノリッジ応答が行われると規定されています。BSL からのアクノリッジ応答値を、に示します。ACK 以外のアクノリッジ・バイトが送信された場合、BSL は BSL データ・パケットを送信しません。ホスト・プログラマはアクノリッジ・エラーをチェックし、送信を再試行する必要があります。

データ意味
0x00BSL_ACK (パケットを正常に受信した)
0x51BSL_ERROR_HEADER_INCORRECT
0x52BSL_ERROR_CHECKSUM_INCORRECT
0x53BSL_ERROR_PACKET_SIZE_ZERO
0x54BSL_ERROR_PACKET_SIZE_TOO_BIG
0x55BSL_ERROR_UNKNOWN_ERROR
0x56BSL_ERROR_UNKNOWN_BAUD_RATE