BootLoader重构: 适配HC32F460KETA并按传感器通用串口升级协议V1.1改造
主要修改事项: 1. 器件更换: HC32F460PETB改为HC32F460KETA, 更新MDK工程(uvprojx/uvoptx/RTE), 调试器切换为Segger J-Link 2. 新增自定义分散加载文件MDK/BootLoader_custom.sct 3. 新增传感器通用串口升级协议V1.1.xlsx(协议文档) 4. 时钟系统: 取消外部晶振, 改用内部HRC 16MHz -> MPLL 200MHz 5. 删除未使用模块: FatFS/SDCard/SHT20/SX127x(Lora)/AD7924/spiflash/ADS1231/Encryption及LoraTask/CatOneTask/RS485Task/DebugCmd/AppTask, 清理工程IncludePath 6. bsp: BootPara_t参数结构体与GateWay APP对齐(新增GwMac/SvrAddr/SvrPort/LoraFreq/通道配置), 新增RS485 Ch1(USART2)升级通道及RS485 Ch2(USART3)配置, GPIO仅保留RS485方向控制(PC7/PB13) 7. main: 设备MAC固定地址由0x2800改为0x4000并按宏构造(VerInfo/PrjNum/GwNum), 帧头由0x7a改为0x7D并带DevMac字段, 增加MAC匹配(支持0xFF广播), 升级命令更新(0x01 ACK/0x02请求数据/0x81请求/0x82下发), CRC32校验后写参数并复位 8. 跳转APP前关闭全局中断/停SysTick/禁用NVIC中断, 避免残留中断干扰APP 9. Flash擦除仅擦APP区(不擦参数区), 首次运行检测及旧参数区默认值补齐 10. 修复驱动头文件乱码注释(hc32f460_dcu.h/hc32f460_icg.h)
This commit is contained in:
@@ -9,13 +9,13 @@
|
||||
|
||||
typedef enum {
|
||||
UPDATE_CMD_NULL,
|
||||
UPDATE_CMD_SLAVE_RES, //从机应答主机下发
|
||||
UPDATE_CMD_SLAVE_REQ_DATA, //从机请求主机下发数据
|
||||
UPDATE_CMD_MASTER_REQ = 0x81, //主机请求升级
|
||||
UPDATE_CMD_MASTRE_RES_DATA, //主机发送数据
|
||||
UPDATE_CMD_SLAVE_RES = 0x01, //从机应答命令(ACK)
|
||||
UPDATE_CMD_SLAVE_REQ_DATA = 0x02, //从机请求数据命令
|
||||
UPDATE_CMD_MASTER_REQ = 0x81, //主机升级请求
|
||||
UPDATE_CMD_MASTRE_RES_DATA = 0x82, //主机下发数据
|
||||
}UpdateCmd_m;
|
||||
|
||||
//帧头结构体
|
||||
//帧头结构体
|
||||
typedef struct {
|
||||
uint8_t Header;
|
||||
uint8_t DevMac[6];
|
||||
@@ -24,20 +24,20 @@ typedef struct {
|
||||
}__attribute__ ((packed))FrameHeader_t, *FrameH;
|
||||
|
||||
|
||||
//主机下发升级请求载荷结构体
|
||||
//主机下发升级请求载荷结构体
|
||||
typedef struct {
|
||||
uint16_t PackageNum;
|
||||
uint32_t AppSize;
|
||||
uint32_t AppCrc32;
|
||||
}__attribute__ ((packed))UpDataRequset_t, *UDReq;
|
||||
|
||||
//从机请求下发结构体
|
||||
//从机请求下发数据结构体
|
||||
typedef struct {
|
||||
uint16_t PackageIndex;
|
||||
uint32_t PackageNum;
|
||||
uint16_t PackageNum;
|
||||
}__attribute__ ((packed))GetDataRequest_t, *GDReq;
|
||||
|
||||
//主机应答下发数据结构体
|
||||
//主机应答下发数据结构体
|
||||
typedef struct {
|
||||
uint16_t PackageIndex;
|
||||
uint16_t PackageNum;
|
||||
|
||||
Reference in New Issue
Block a user