打印
[开发工具]

国民技术通用MCU BOOT接口基础指令使用指南

[复制链接]
664|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
断桥不断|  楼主 | 2023-2-23 21:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
N32G45x系列、N32G4FR系列、N32WB452系列MCU的BOOT接口基础指令,便于使用国民技术BOOTLoader进行下载开发。
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的功能、实现及使用介绍。

2.BOOT流程及命令处理
BOOT程序支持通过URART/USB接口下载用户程序和数据。上电时,自动识别使用的接口。下面阐述相关命令处理流程。
1.1命令及数据结构
1.1.1命令列表
命令名称键值简要说明
CMD_GET_INF0x10读取芯片型号索引、BOOT版本号、芯片ID
CMD_FLASH_ERASE0x30擦除FLASH
CMD_FLASH_DWNLD0x31下载用户程序到FLASH
CMD_DATA_CRC_CHECK0x32CRC校验下载用户程序
CMD_OPT_RW0x40读取昭己置选项字节(包含了读保护等级、FLASH页写保护、DataO/1配置、USER配置)
CMD_SYS_RESET0x50系统复位
CMD_APP_GO0x51跳转到用户区执行程序


1.1.2 数据结构
这里介绍下文阐述中的一些约定,其中,“<>”代表必须包含的字段,“()”代表根据参数不同包含的字段。
1. 逻辑层指令数据结构
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。
2. 物理层指令数据结构 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 + {下层应答结构})

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

17

主题

27

帖子

1

粉丝