NESU004 February   2023 MSPM0L1227 , MSPM0L1227-Q1 , MSPM0L1228 , MSPM0L1228-Q1 , MSPM0L2227 , MSPM0L2227-Q1 , 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修訂記錄

二次開機載入程式範例

提供二次開機載入程式的範例作爲 SDK 範例的一部分,以供參考。本節提供更多相關詳細資訊。

說明

此範例二次開機載入程式支援對記憶體中的資料進行編程/驗證,其 BSL 協定格式與裝置中的主要 BSL (ROM BSL) 相同,可以用與 ROM BSL 相同的方式叫用。

其支援以下主要功能

  • 程式資料
  • 快閃記憶體清除
  • 讀回資料
  • CRC 驗證
  • 啓動應用程式

它使用 UART 介面與主機通訊。

此範例負責二次開機載入程式的實作及登錄。因此,一旦將此映像載入到裝置中,就無法使用裝置中的主開機載入程式。只會啟用二次開機載入程式。若要將裝置恢復爲使用主開機載入程式,則必須使用 SWD_Factory_Reset 命令 (透過偵錯子系統信箱進行原廠重設)。.

範例使用

  • 將 UART_RX 和 UART_TX 與 BSL 主機 (任何具有 UART 的微控制器) 連接。
  • 編譯並載入範例。
  • 使用 BSL 叫用針腳或其他任何叫用方法建立 BSL 叫用條件。
  • 從主機傳送 GetDeviceInfo 命令。
  • 裝置應以可用的版本資訊和 SRAM 緩衝區空間回應。
  • 同樣的,傳送清除、編程和驗證命令以編程記憶體中的資料。

軟體檔案詳細資料

檔案名稱詳細資訊

secondary_bsl.c

初始化 BSL 運作所需的周邊設備。從通訊介面接收命令封包,並將其傳遞到命令處理層。

另外還負責在 BSL 配置記憶體中登錄二次開機載入程式。

bsl_ci.c

解譯命令封包、處理命令,並將回應傳回主機

bsl_ci.h

包含 BSL 命令和回應的定義。以及 bsl_ci.c 的函式宣告

bsl_uart.c

處理主機與 BSL 核心之間的通訊

bsl_uart.h

包含 BSL 確認和 bsl_uart.c 函式宣告的定義

ti_msp_dl_config.h

包含裝置專屬配置,例如 UART 針腳、使用周邊設備的基本位址等

boot_config.h

包含 BCR 和 BSL 配置結構

factory_config.c

執行功能以擷取原廠配置的裝置專屬資料,例如 SRAM 記憶體大小。

factory_config.h

包含 factory_config.c 的原廠配置結構和功能宣告

startup_mspm0x_ticlang

包含向量表、重設處理常式和其他處理常式的啓動檔

mspm0x.cmd

連結器命令檔,其指定二次開機載入程式映像應駐留在記憶體和 SRAM 區域中的記憶體區域。

自訂

此範例提供二次開機載入程式的參考實作。其可視需要自訂。BSL 核心層 (secondary_bsl.c, bsl_ci.c) 或介面層 (bsl_uart.c) 是完成自訂的主要位置。

遵循的步驟

  • 根據需要修改程式碼

  • 完成變更後,編譯程式碼

  • 視情況修改 BCR 配置中的快閃記憶體寫入保護設定

  • 計算 BCR 配置適用的 CRC 並儲存新的 CRC 值

  • 再次編譯程式碼

  • 載入自訂的 BSL 映像