BabyOS_Protocol/README.md
bean e5ed917faf
update README.md.
Signed-off-by: bean <notrynohigh@outlook.com>
2024-05-14 10:11:15 +00:00

2.3 KiB
Raw Blame History

BabyOS_Protocol

介绍

使用QTCreate编写的上位机配合BabyOS的通用协议b_mod_protocol使用。上位机协议格式配置如下

头部 ID 长度 指令 参数 校验
1Byte 4Bytes 2Bytes 1Byte 0~nBytes 1Byte

上位机的设备ID为 0x1314


测试指令

指令 参数(7Bytes)
0x1 "BabyOS"

设置时间指令

指令 参数(4Bytes)
0x2 UTC

查询新固件信息

(设备==>上位机)

指令 参数(0Bytes)
0x3 无参数

新固件信息

(上位机==>设备)

指令 参数(72Bytes)
0x3 文件大小4Bytes CRC32校验值(4Bytes) 固件名64Bytes
固件名长度不足64字节时补0
typedef struct
{
	uint32_t size;
	uint32_t crc32;
	char filename[64];
}fwinfo_t;

请求分包数据指令

(设备==>上位机)

指令 参数(2Bytes)
0x4 分包序号2Bytes
分包序号从0开始

回复分包数据指令

(上位机==>设备)

指令 参数(514Bytes)
0x4 分包序号2Bytes 数据长度512Bytes
剩余长度不足512字节时补0

上报升级/传输文件结果指令

(设备==>上位机)

指令 参数(1Bytes)
0x5 升级结果1Bytes
校验成功0
校验失败1
固件名不匹配2
文件长度不合理3

确认升级结果指令

(上位机==>设备)

指令 参数(0Bytes)
0x5 无参数

传输文件至FLASH

(上位机==>设备)

指令 参数(16Bytes)
0x6 文件大小4Bytes CRC32校验值(4Bytes) 设备号4Bytes偏移地址4Bytes
typedef struct
{
	uint32_t size;
	uint32_t crc32;
	uint32_t dev_no;
    uint32_t offset;
}file_trans_t;

通过指令4获取文件数据。