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修订历史记录

数据流结构

  • 前八个字节(从 HDR 到 LH)是必须的(xx 代表虚拟数据)。
  • 数据字节 D1 至 Dn 是可选的。
  • 校验和的两个字节(CLK 和 CKH)是必须的。
  • 除使用 TX 数据块和 TX BSL 版本命令之外,由BSL确认是必需的。
表 2-1 BSL 命令的数据帧(1)(3)(6)
接收到的 BSL 命令 HDR CMD L1 L2 AL AH LL LH D1 D2…Dn CKL CKH ACK(2)
RX 数据块 80 12 n n AL AH n–4 0 D1 D2 … Dn–4 CKL CKH ACK
RX 密码 80 10 24 24 xx xx xx xx D1 D2 … D20 CKL CKH ACK
擦除段 80 16 04 04 AL AH 02 A5 – – – CKL CKH ACK
擦除主存储器或者信息存储器 80 16 04 04 AL AH 04 A5 – – – CKL CKH ACK
批量擦除 80 18 04 04 xx xx 06 A5 – – – CKL CKH ACK
擦除检查(4) 80 1C 04 04 AL AH LL LH – – – CKL CKH ACK
更改波特率(5) 80 20 04 04 D1 D2 D3 xx – – – CKL CKH ACK
设定存储器偏移 80 21 04 04 xx xx AL AH – – – CKL CKH ACK
加载 PC 80 1A 04 04 AL AH xx xx – – – CKL CKH ACK
TX 数据块 80 14 04 04 AL AH n 0 – – – CKL CKH
BSL 响应 80 xx n n D1 D2 ... ... ... … Dn CKL CKH
TX BSL 版本(4) 80 1E 04 04 xx xx xx xx – – – CKL CKH
BSL 响应 80 xx 10 10 D1 D2 ... ... … D10 CKL CKH
所有数字为采用十六进制符号的字节。
ACK 由 BSL 发回。
同步序列不是数据帧的一部分。
擦除检查和 TX BSL 版本命令是 BSL V1.50 或者更高版本(不包括 2.x BSL)中的标准命令集的命令。
更改波特率命令不是标准命令集的命令(它在 V1.60 或更高版本或在可载入 的BL_150S_14x.txt 中可用)。
缩写:
HDR:标头。80h 和 8Fh之间的任一值(通常为 80h)。
CMD:命令标识
L1L2:由 AL 到 Dn 组成的字节的数量。限制:L1 = L2,L1 < 255,L1 偶数
ALAH:块起始地址或擦除(校验)地址或跳转地址 LO 或 HI 字节
LLLH:纯数据字节数(最多 250 个)或擦除信息 LO 或 HI 字节或擦除检查的块长度(FFFFh 最大值)
D1Dn:数据字节
CKLCKH:16 位校验和 LO 或 HI 字节
xx:可以是任何数据
:无字符(数据字节)接收或传输
ACK:BSL 返回的确认字符。可以是 DATA_ACK = 90h:帧已正确接收,命令已成功执行,或 DATA_NAK = A0h:帧无效(例如,错误的校验和,L1 ≠ L2)、命令未定义、不被允许或执行失败。
n:由 AL 到 Dn 组成的字节的数量