ZHDU066 March   2026 AM13E23019

 

  1.   1
  2.   摘要
  3.   商标
  4. 1简介
    1. 1.1 BSL 特性概览
    2. 1.2 术语
    3. 1.3 其他资源
  5. 2BSL 架构
    1. 2.1 设计
      1. 2.1.1 超时特性
        1. 2.1.1.1 接口自动检测
        2. 2.1.1.2 命令接收
    2. 2.2 调用 BSL
      1. 2.2.1 应用程序请求
      2. 2.2.2 基于 GPIO 的调用
      3. 2.2.3 调试邮箱命令
      4. 2.2.4 其他 BSL 调用方法
        1. 2.2.4.1 启动前应用程序验证
        2. 2.2.4.2 空白器件处理
    3. 2.3 存储器
      1. 2.3.1 SRAM 存储器使用情况
    4. 2.4 BSL NONMAIN 配置
      1. 2.4.1  BSL 配置 ID
      2. 2.4.2  BSL 接口引脚 (BLINTERFACE_PINS)
      3. 2.4.3  BSL 调用引脚配置 (BSLPIN_INVOKE)
      4. 2.4.4  存储器读取配置
      5. 2.4.5  BSL 密码
      6. 2.4.6  应用程序修订指针
      7. 2.4.7  安全警报级别
      8. 2.4.8  UART 波特率
      9. 2.4.9  I2C 目标地址
      10. 2.4.10 配置 CRC
    5. 2.5 更改 BSL 配置
      1. 2.5.1 使用 BSL 命令
      2. 2.5.2 使用调试接口
  6. 3引导加载程序协议
    1. 3.1 数据包格式
    2. 3.2 BSL 协议
      1. 3.2.1 BSL 确认
      2. 3.2.2 外设配置
        1. 3.2.2.1 UART
        2. 3.2.2.2 I2C
        3. 3.2.2.3 MCAN
        4. 3.2.2.4 CRC
    3. 3.3 引导加载程序内核命令
      1. 3.3.1  连接
      2. 3.3.2  Get Device Info
      3. 3.3.3  解锁引导加载程序
      4. 3.3.4  Program Data
      5. 3.3.5  快速编程数据
      6. 3.3.6  回读数据
      7. 3.3.7  闪存范围擦除
      8. 3.3.8  批量擦除
      9. 3.3.9  恢复出厂设置
      10. 3.3.10 独立验证
      11. 3.3.11 启动应用程序
      12. 3.3.12 更改波特率
    4. 3.4 引导加载程序内核响应
      1. 3.4.1 BSL 内核消息
      2. 3.4.2 详细错误
      3. 3.4.3 存储器回读
      4. 3.4.4 器件信息
      5. 3.4.5 独立验证
    5. 3.5 引导加载程序安全性
      1. 3.5.1 受密码保护的命令
        1. 3.5.1.1 安全警报
      2. 3.5.2 BSL 条目
  7. 4使用引导加载程序的示例程序流程
  8. 5修订历史记录

BSL 接口引脚 (BLINTERFACE_PINS)

BLINTERFACE_PINS 结构体用于配置 BSL 通信接口(UART、I2C 或 MCAN)的物理引脚及引脚功能多路复用选择。此配置允许 BSL 使用特定引脚与主机进行通信。

UART 接口引脚 (0x60101804)

表 2-1 UART 接口引脚配置
NM1 地址 NM1 地址 [31:24] NM1 地址 [23:16] NM1 地址 [15:8] NM1 地址 [7:0]
0x60101804 UART_TXD_PF[7:0] UART_TXD_PAD[7:0] UART_RXD_PF[7:0] UART_RXD_PAD[7:0]
注: 只有具有 UNICOMM4 (UC4) 实例的引脚才能用于与 BSL 的 UART 通信。
表 2-2 UART 接口数据结构
参数 类型 说明 默认值(十六进制) 器件实现
UART_TXD_PF_mux_sel uint8_t UC4 UART TX 的焊盘多路复用器值 0x07 多路复用模式 7:UC4_TX_SDA_PICO
UART_TXD_pad_num uint8_t UC4 UART TX 的物理引脚编号 0x00 PA0
UART_RXD_PF_mux_sel uint8_t UC4 UART RX 的焊盘多路复用器值 0x07 多路复用模式 7:UC4_RX_SDA_PICO
UART_RXD_pad_num uint8_t UC4 UART TX 的物理引脚编号 0x01 PA1

I2C 接口引脚 (0x60101808)

表 2-3 I2C 接口引脚配置
NM1 地址 NM1 地址 [31:24] NM1 地址 [23:16] NM1 地址 [15:8] NM1 地址 [7:0]
0x60101808 I2C_SCL_PF[7:0] I2C_SCL_PAD[7:0] I2C_SDA_PF[7:0] I2C_SDA_PAD[7:0]
注: 只有具有 UNICOMM2 (UC2) 实例的引脚才能用于与 BSL 的 I2C 通信。
表 2-4 I2C 接口数据结构
参数 类型 说明 默认值(十六进制) 器件实现
I2C_SCL_PF_mux_sel uint8_t UC2 I2C SCL 的焊盘多路复用器值 0x04 多路复用模式 4:UC2_RX_SCL
I2C_SCL_pad_num uint8_t UC2 I2C SCL 的物理引脚编号 0x17 PA23
I2C_SDA_PF_mux_sel uint8_t UC2 I2C SDA 的焊盘多路复用器值 0x04 多路复用模式 4:UC2_TX_SDA
I2C_SDA_pad_num uint8_t UC2 I2C SDA 的物理引脚编号 0x16 PA22

MCAN 接口引脚 (0x6010180C)

表 2-5 MCAN 接口引脚配置
NM1 地址 NM1 地址 [31:24] NM1 地址 [23:16] NM1 地址 [15:8] NM1 地址 [7:0]
0x6010180C CAN_TXD_PF[7:0] CAN_TXD_PAD[7:0] CAN_RXD_PF[7:0] CAN_RXD_PAD[7:0]
注: 只有具有 MCAN0 实例的引脚可用于与 BSL 进行 I2C 通信。
表 2-6 MCAN 接口数据结构
参数 类型 说明 默认值(十六进制) 器件实现
MCAN_TX_PF_mux_sel uint8_t MCAN0 TX 的焊盘多路复用器值 0x0A 多路复用模式 10:MCAN0_TX
MCAN_TX_pad_num uint8_t MCAN0 TX 的物理引脚编号 0x0C PA12
MCAN_RX_PF_mux_sel uint8_t MCAN0 RX 的焊盘多路复用器值 0x0A 多路复用模式 10:MCAN0_RX
MCAN_RX_pad_num uint8_t MCAN0 RX 的物理引脚编号 0x0B PA11