NESU004 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 初始化
      2. 7.1.2 接收
      3. 7.1.3 傳輸
      4. 7.1.4 反初始化
      5. 7.1.5 重要注意事項
    2. 7.2 Flash 外掛程式類型
    3. 7.3 覆寫現有介面
      1. 7.3.1 UART 介面 Flash 外掛程式範例
  10. 8參考
  11. 9修訂記錄

重要注意事項

開發 Flash 外掛程式時、務必謹記重點。

  1. 在開發 Flash 外掛程式時、必須注意以下幾件事項。

  2. 載入 Flash 外掛程式的主要快閃記憶體區域應受靜態寫入保護

  3. 所有全域變數都應透過 'Init' 函數進行初始化

  4. 4 個外掛程式 API 的函數原型應按照 BSL 使用指南中的指定進行。

  5. SRAM 記憶體使用量

    1. VTOR - SRAM 的起始 (0x20000000)。如果使用中斷,則應將 VTOR 置於 SRAM 的起始位置,因爲 ROM BSL 使用該位址空間

    2. 堆疊起始位址 - 裝置中可用的 SRAM 記憶體結尾

    3. 堆疊大小 - 不應超出 ROM BSL 堆疊大小

    4. 資料部分 (.data, .bss):當裝置中沒有登錄 Flash 外掛程式時,「取得裝置資訊」命令傳回的「BSL 緩衝區起始位址」應爲資料部分的起始位址。

    5. 資料段大小:應在 BSL 非主配置記憶體中配置資料部分 (.data, .bss) 消耗的大小。