ZHCU778AB January   2014  – September 2022 MSP430FR2032 , MSP430FR2033 , MSP430FR2110 , MSP430FR2111 , MSP430FR2153 , MSP430FR2155 , MSP430FR2310 , MSP430FR2311 , MSP430FR2353 , MSP430FR2355 , MSP430FR2433 , MSP430FR2532 , MSP430FR2533 , MSP430FR2632 , MSP430FR2633 , MSP430FR4131 , MSP430FR4132 , MSP430FR4133 , MSP430FR5041 , MSP430FR5043 , MSP430FR50431 , MSP430FR5847 , MSP430FR58471 , MSP430FR5848 , MSP430FR5849 , MSP430FR5857 , MSP430FR5858 , MSP430FR5859 , MSP430FR5867 , MSP430FR58671 , MSP430FR5868 , MSP430FR5869 , MSP430FR5887 , MSP430FR5888 , MSP430FR5889 , MSP430FR58891 , MSP430FR5947 , MSP430FR59471 , MSP430FR5948 , MSP430FR5949 , MSP430FR5957 , MSP430FR5958 , MSP430FR5959 , MSP430FR5967 , MSP430FR5968 , MSP430FR5969 , MSP430FR5969-SP , MSP430FR59691 , MSP430FR5986 , MSP430FR5987 , MSP430FR5988 , MSP430FR5989 , MSP430FR5989-EP , MSP430FR59891 , MSP430FR6041 , MSP430FR6043 , MSP430FR60431 , MSP430FR6877 , MSP430FR6879 , MSP430FR68791 , MSP430FR6887 , MSP430FR6888 , MSP430FR6889 , MSP430FR68891 , MSP430FR6927 , MSP430FR69271 , MSP430FR6928 , MSP430FR6972 , MSP430FR6977 , MSP430FR6979 , MSP430FR69791 , MSP430FR6987 , MSP430FR6988 , MSP430FR6989 , MSP430FR69891

 

  1.   摘要
  2.   商标
  3. 1引言
    1. 1.1 BSL 限制
    2. 1.2 其他实用文档
  4. 2BSL 特性概览
  5. 3BSL 架构
    1. 3.1 通信接口
      1. 3.1.1 UART BSL
      2. 3.1.2 I2C BSL
    2. 3.2 BSL 存储器
      1. 3.2.1 BSL 存储器布局
      2. 3.2.2 BSL Z 区
      3. 3.2.3 BSL 存储器注意事项
    3. 3.3 调用 BSL
      1. 3.3.1 软件 BSL 调用
        1. 3.3.1.1 从外部软件应用程序启动 BSL
        2. 3.3.1.2 BSL 操作
          1. 3.3.1.2.1 BSL 操作函数 2
      2. 3.3.2 硬件 BSL 调用
        1. 3.3.2.1 阻止硬件调用 BSL 的因素
      3. 3.3.3 空白器件检测
    4. 3.4 BSL 超时特性
    5. 3.5 BSL 版本号
    6. 3.6 BSL(用户)配置
      1. 3.6.1 配置 BSL
        1. 3.6.1.1 BSL 用户配置示例
        2. 3.6.1.2 在应用程序代码中实现 BSL 配置
  6. 4BSL 协议
    1. 4.1 BSL 数据包
      1. 4.1.1 UART 外设接口包装器
      2. 4.1.2 I2C 外设接口包装器
      3. 4.1.3 BSL 确认
      4. 4.1.4 BSL 内核响应和 BSL 内核消息
      5. 4.1.5 BSL 内核命令
        1. 4.1.5.1 RX 数据块
        2. 4.1.5.2 RX 密码
        3. 4.1.5.3 批量擦除
        4. 4.1.5.4 CRC 校验
        5. 4.1.5.5 加载 PC
        6. 4.1.5.6 TX 数据块
        7. 4.1.5.7 TX BSL 版本
        8. 4.1.5.8 RX 数据块快速模式
        9. 4.1.5.9 更改波特率
    2. 4.2 BSL 安全
      1. 4.2.1 受保护命令
      2. 4.2.2 RAM 擦除
      3. 4.2.3 进入 BSL
  7. 5常见的 BSL 用例
    1. 5.1 概述和流程图
    2. 5.2 建立连接
    3. 5.3 擦除器件
    4. 5.4 下载应用程序
    5. 5.5 验证应用程序
    6. 5.6 运行应用程序
  8. 6定制 BSL
  9. 7引导加载程序版本
    1. 7.1 FR2xx BSL 版本
    2. 7.2 FR4xx BSL 版本
    3. 7.3 FR57xx BSL 版本
    4. 7.4 FR58xx 和 FR59xx BSL 版本
    5. 7.5 FR6xx BSL 版本
  10. 8修订历史记录

从外部软件应用程序启动 BSL

存储器位置 0x1000 包含一条指向 BSL 开头的跳转指令,可用于通过采用将程序计数器设置为 0x1000 的方式从正在运行的应用程序调用 BSL。堆栈始终被复位,而 RAM 则被清空。BSL 不会禁用中断功能,应在调用 BSL 之前由应用程序禁用中断功能。

TI 建议清除 BSL 应用程序中使用的任何模块寄存器的配置,因为外部应用程序的配置会使 BSL 应用程序中断并导致意外行为。例如,在 FR23xx 和 FR26xx MCU 中,Timer_B 模块执行 BSL 的超时计算。如果 Timer_B 也在外部应用程序中被使用并且在跳转到 BSL 应用程序之前未被清除,则会导致意外行为。

位置 0x1000 可作为 C 函数被调用,如以下示例代码所示:

__disable_interrupt(); // 禁用中断功能
((void (*)())0x1000)(); // 跳转到 BSL
注:

FR5xx 和 FR6xx 器件上的 BSL 必须以 8MHz 的最大频率运行。如果器件在高于 8MHz 的频率下运行,则在调用 BSL 之前必须将 MCLK 频率设置为 8MHz 或更低。