NESU004 February   2023 MSPM0L1227 , MSPM0L1228 , MSPM0L1228-Q1 , MSPM0L2227 , MSPM0L2228 , MSPM0L2228-Q1

 

  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修訂記錄

設計

當偵測到有效的開機載入程式叫用條件時,啟動碼將會叫用開機載入程式。只有在 BCR 配置的 BSL 模式欄位中啟用開機載入程式時,才會叫用該程式。

開機載入程式啟動後,會先執行「初始化」階段,在此階段完成 BSL 配置的初始檢查,並針對開機載入程式作業配置裝置。

接著,開機載入程式會進入「介面自動偵測」階段。在此階段中,BSL 配置所有可用的 BSL ROM 介面和快閃外掛程式介面 (如果已註冊)。然後 BSL 會透過所有介面逐一輪詢資料。在其中一個介面收到有效的連線封包時,該介面將被視爲用於進一步通訊的作用介面,而所有其它介面都會停用。介面探索 10 秒完成,如果沒有偵測到介面,裝置會進入 STANDBY 待機模式。

接著,BSL 進入「命令接收」階段。在此階段中,BSL 將在無限迴圈中等待主機的命令。收到有效命令後,會處理該命令,將來自 BSL 核心的回應傳送回主機。接著,回到迴路並等待下一個命令等等。如果收到「啓動應用程式」命令,開機載入程式會觸發系統重設,之後再執行啟動碼,並叫用應用程式。此階段也有 10 秒的逾時時間。如果沒有收到有效的命令,則會鎖定開機載入程式並進入睡眠模式。

GUID-20221116-SS0I-QZM3-MFTH-L23MRZJCT8W7-low.png圖 3-1 BSL 架構