通用MCU BOOT接口基础指令使用指引

9 篇文章 0 订阅
7 篇文章 0 订阅

本使用指南主要描述 N32G45x 系列、N32G4FR 系列、N32WB452 系列
MCU 的 BOOT 接口基础指令,便于使用国民技术 BOOT Loader 进行下载开 发

  1. BOOT 简述
    使用指南适用于 N32G45x、N32G4FR、N32WB452 系列芯片,提供了用户下载功能,
    具体如下:
  1. 支持 USART1(PA9/PA10,自动波特率检测,支持的波特率 4800、9600、14400、
    19200、38400、57600、115200、128000)和 USB 接口(DFU 协议)下载程序到用户
    区;
  2. 支持 Flash 擦除功能(下载前确保该页已经被擦除);
  3. 支持数据或程序下载功能;
  4. 支持下载数据 CRC32 校验;
  5. 支持上电 BOOT 自校验;
  6. 支持跳转到用户区执行;
  7. 支持软件复位芯片操作。。
    本文档详细描述了通用 MCU 芯片 BOOT 的功能、实现及使用介绍。
  1. BOOT 流程及命令处理
    BOOT 程序支持通过 URART/USB 接口下载用户程序和数据。上电时,自动识别使用
    的接口。下面阐述相关命令处理流程。
    1.1 命令及数据结构
    1.1.1 命令列表
    Table2.1 命令定义
    在这里插入图片描述

1.1.2 数据结构
这里介绍下文阐述中的一些约定,其中,“<>”代表必须包含的字段,“()”代表根据参数
不同包含的字段。
3. 逻辑层指令数据结构

  1. 上层指令结构:
    <CMD_H + CMD_L + LEN + Par> + (DAT)。
    CMD_H 代表一级命令字段,CMD_L 代表二级命令字段;LEN 代表发送数据长度;
    Par 代表 4 个字节命令参数;DAT 代表上层指令往下层发送的具体数据;
  2. 下层应答结构:
    < CMD_H + CMD_L + LEN > + (DAT) + <CR1+CR2>。
    CMD_H 代表一级命令字段,CMD_L 代表二级命令字段,下层的命令字段和对应
    上层的命令字段相同;LEN 代表发送数据长度;DAT 代表下层向上层应答的具体数据;
    CR1+CR2 代表向上层返回的指令执行结果,若上层发送命令一级、二级命令字段不属
    于任何命令,BOOT 回复 CR1=0xBB,CR2 = 0xCC。
  1. 物理层指令数据结构
  1. USB 接口指令数据结构
    USB 接口采用 DFU 协议,详情见’DFU_1.1’文档:
     上位机下发上层指令:
    使用 DFU_DNLOAD 请求下发上层指令数据。
     上位机获取下层应答指令:
    使用 DFU_GETSTATUS 请求获取下层应答指令数据。
  2. 串口指令数据结构:
     上位机下发上层指令:
    STA1 + STA2 + {上层指令结构} + XOR。
    STA1 和 STA2 是串口发送命令的起始字节,STA1=0xAA,STA2=0x55。用于
    芯片识别上位机发送串口数据流。
    XOR 代表之前命令字节的异或运算值(STA1 + STA2 + {上层指令结构})。
     上位机接收下层应答:
    STA1 + STA2 + {下层应答结构} + XOR。
    STA1 和 STA2 是串口发送命令的起始字节,STA1=0xAA,STA2=0x55。用于
    上位机识别芯片发送串口数据流
    XOR 代表之前命令字节的异或运算值(STA1 + STA2 + {下层应答结构})。
    1.2 命令说明
    1.2.1 CMD_GET_INF
    该命令提供的功能是读取 BOOT 版本号、芯片型号索引、芯片 ID、芯片系列化信息共
    4 种信息。
    上层指令:
    在这里插入图片描述
    保留值:0x00。 LEN 发送数据长度:0x00(LEN[0])、0x00(LEN[1]),LEN = LEN[0] +(LEN[1]<<8)
    在这里插入图片描述
    在这里插入图片描述
     过程字节(CMD_H)和上层指令中的(CMD_H)对应。
     LEN 是数据长度:0x33(LEN[0])、0x00(LEN[1]),LEN = LEN[0] + (LEN[1]<<8)。  DAT[0]芯片型号索引
    产品编号:0x01
     DAT[1] 0xXY,BOOT 命令集版本号(BCD 码)
    0x10:指示 BOOT 使用的命令集版本,表示使用 V1.0 的命令集版本
     DAT[2]:BOOT 代码版本
     DAT[3~50] 48Byte
    DAT[3~18]:16Byte UCID(例:36 01 01 A0 15 50 36 33 50 30 35 30 30 09 7D 22),
    DAT[19~30]:12Byte Chip ID(UID)(例:36 01 01 50 36 33 50 30 35 09 7D 22)
    DAT[31~34]:4Byte DBGMCU_IDCODE(例:01 54 87 F8)
    UCID/ UID/ DBGMCU_IDCODE 具体定义见《UM_N32G45x 系列用户手册》 《UM_N32G4FR 系列用户手册》《UM_N32WB452 系列用户手册》
    DAT[35~50]:16Byte (保留);  状态字节(CR1、CR2)根据命令执行情况分为:
  1. 返回成功:状态标志位(0xA0、0x00)。
  2. 返回失败:状态标志位(0xB0、0x00)。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值