ZHCU022AF July   2010  – September 2022

 

  1.   摘要 - MSP430™ 闪存器件引导加载程序 (BSL)
  2.   商标
  3. 1引言
    1. 1.1 补充在线信息
    2. 1.2 BSL 特性概览
    3. 1.3 调用 BSL
      1. 1.3.1 硬件 BSL 调用
        1. 1.3.1.1 具有共享JTAG 引脚的 MSP430 器件
          1. 1.3.1.1.1 阻止使用共享 JTAG 引脚调用BSL的因素
        2. 1.3.1.2 具有专用 JTAG 引脚的 MSP430 闪存器件
          1. 1.3.1.2.1 阻止使用专用 JTAG 引脚调用BSL的因素
        3. 1.3.1.3 带有 USB 的器件
      2. 1.3.2 软件 BSL 调用
    4. 1.4 UART 协议
    5. 1.5 USB 协议
  4. 2引导加载程序协议 - 1xx、2xx 和 4xx 系列
    1. 2.1 同步序列
    2. 2.2 命令
      1. 2.2.1 不受保护的命令
      2. 2.2.2 受密码保护的命令
    3. 2.3 编程流程
    4. 2.4 数据帧
      1. 2.4.1 数据流结构
      2. 2.4.2 校验和
      3. 2.4.3 示例序列
      4. 2.4.4 命令-详细说明
        1. 2.4.4.1  概述
        2. 2.4.4.2  RX 数据块
        3. 2.4.4.3  RX 密码
        4. 2.4.4.4  批量擦除
        5. 2.4.4.5  擦除段
        6. 2.4.4.6  擦除主存储器或者信息存储器
        7. 2.4.4.7  擦除检查
        8. 2.4.4.8  更改波特率
        9. 2.4.4.9  设置内存偏移
        10. 2.4.4.10 加载 PC
        11. 2.4.4.11 TX 数据块
        12. 2.4.4.12 TX BSL 版本
    5. 2.5 可史可法 BSL
    6. 2.6 退出 BSL
    7. 2.7 密码保护
    8. 2.8 代码保护保险丝
    9. 2.9 BSL 内部设置和资源
      1. 2.9.1 芯片识别和 BSL 版本
      2. 2.9.2 外部调用 BSL 的矢量
      3. 2.9.3 初始化状态
      4. 2.9.4 内存分配和资源
  5. 3引导加载程序协议 - F5xx 和 F6xx 系列
    1. 3.1 BSL 数据包
    2. 3.2 UART 外设接口 (PI)
      1. 3.2.1 包装器
      2. 3.2.2 缩写
      3. 3.2.3 消息
      4. 3.2.4 接口专用命令
        1. 3.2.4.1 更改波特率
    3. 3.3 I2C 外设接口
      1. 3.3.1 I2C 协议定义
      2. 3.3.2 具有字节级确认的基本协议
      3. 3.3.3 BSL 的 I2C 协议 - 从从服务器读取
      4. 3.3.4 确认 (ACK)
      5. 3.3.5 包装器
    4. 3.4 USB 外设接口
      1. 3.4.1 包装器
      2. 3.4.2 硬件要求
    5. 3.5 BSL 内核命令结构
      1. 3.5.1 缩写
      2. 3.5.2 命令说明
    6. 3.6 BSL 安全
      1. 3.6.1 受保护的命令
      2. 3.6.2 RAM 擦除
    7. 3.7 BSL 内核响应
      1. 3.7.1 缩写
      2. 3.7.2 BSL 内核消息
      3. 3.7.3 BSL 版本号
      4. 3.7.4 UART BSL 的示例序列
    8. 3.8 BSL 公共函数和 Z 区域
      1. 3.8.1 从外部应用中启动 BSL
      2. 3.8.2 返回到BSL函数描述
  6. 4引导加载程序硬件
    1. 4.1 硬件描述
      1. 4.1.1 电源
      2. 4.1.2 串行接口
        1. 4.1.2.1 电平移动
        2. 4.1.2.2 对 RST/NMI 和 TEST 或者 TCK 引脚的控制
      3. 4.1.3 目标连接器
      4. 4.1.4 部件列表
  7. 5器件和引导加载程序版本间的差异
    1. 5.1 1xx、2xx 和 4xx BSL 版本
    2. 5.2 ROM BSL 版本 1.10 的特殊考虑
    3. 5.3 1xx、2xx 和 4xx BSL 已知问题
    4. 5.4 有关MSP430F14x 器件系列 BSL的特殊说明
    5. 5.5 基于 F5xx 和 F6xx 闪存的 BSL 版本
  8. 6引导加载程序 PCB 布局建议
  9. 7修订历史记录

命令说明

RX 数据块

BSL 内核从地址字段中指定的位置开始写入字节 D1 到 Dn。

RX 数据块快速

除了没有表明数据被正确编程的应答之外,该命令与RX数据块命令一样。它主要被用于加速 USB 编程。

RX 密码

如果密码与 BSL 中断矢量表(位于地址 0xFFE0 和 0xFFFF 之间)中的头 16 个字向匹配,BSL内核则接收包含在数据包内的密码,并解锁 BSL保护命令。当输入错误密码时,会启动批量擦除。这意味着所有的代码闪存被擦除,但不会擦除信息内存

擦除段

包含给定地址的闪存段被擦除。

解锁和锁定信息

该命令使得 INFO_A 锁切换以保护或者锁定 INFO_A 段。有关此锁定的更多细节,请参阅 MSP430F5xx 和 MSP430F6xx 系列用户指南。该命令必须在 INFO_A 的擦除段命令之前发送,但在批量擦除之前则不需要。

擦除块

包含给定地址的闪存块被擦除。

批量擦除

MSP430 MCU 中的所有代码闪存均被擦除。该功能不会擦除信息内存。

CRC 检查

该 MCU 使用 CCITT 标准执行 16 位 CRC 检查。给定的地址为 CRC 检查的第一个字节。两个字节用于长度。

加载 PC

使用 CALLA 指令使BSL在指定地址开始执行。由于 BSL 代码随这个指令立即退出,所以无法预计内核响应。

TX BSL 版本

BSL 传输其版本信息(更多细节请参阅Topic Link Label3.7.3)。

TX 缓冲器大小

BSL传输一个值,该值表示其数据缓冲器中用于发送或接收BSL核心数据包的可用字节数。