2026-04-23 14:02:03 +08:00
|
|
|
#ifndef __UPDATE_H
|
|
|
|
|
#define __UPDATE_H
|
|
|
|
|
|
|
|
|
|
#include <stdint.h>
|
|
|
|
|
#include "bsp.h"
|
|
|
|
|
#include "UartDebug.h"
|
|
|
|
|
|
|
|
|
|
#define APP_START_FLAG 0x55AA5A5A
|
|
|
|
|
#define APP_UPDATE_FLAG 0xA5A5AA55
|
|
|
|
|
|
|
|
|
|
#define FLASH_SECTOR_SIZE 0x200ul
|
|
|
|
|
#define FLASH_BASE ((uint32_t)0x00000000)
|
|
|
|
|
#define FLASH_SIZE (256u * FLASH_SECTOR_SIZE)
|
|
|
|
|
|
|
|
|
|
#define SRAM_BASE ((uint32_t)0x20000000)
|
|
|
|
|
#define RAM_SIZE 0x2000ul
|
|
|
|
|
|
|
|
|
|
#define BOOT_ADDRESS FLASH_BASE
|
|
|
|
|
#define BOOT_SIZE (20 * FLASH_SECTOR_SIZE)
|
|
|
|
|
#define DEV_MAC_ADDRESS (BOOT_ADDRESS + BOOT_SIZE) //0x00002800
|
|
|
|
|
#define DEV_MAC_SIZE FLASH_SECTOR_SIZE
|
|
|
|
|
#define APP_ADDRESS (DEV_MAC_ADDRESS + DEV_MAC_SIZE)
|
|
|
|
|
|
|
|
|
|
#define BOOT_PARA_ADDRESS (0x0001FC00)//(FLASH_BASE + BOOT_SIZE)
|
|
|
|
|
#define BOOT_PARA_SIZE (FLASH_SECTOR_SIZE)
|
|
|
|
|
|
|
|
|
|
typedef struct {
|
|
|
|
|
uint32_t AppFlag;
|
|
|
|
|
uint32_t UpdateFlag;
|
|
|
|
|
uint32_t PackageCnt;
|
|
|
|
|
uint32_t AppSize;
|
|
|
|
|
uint32_t Crc32Check;
|
2026-05-11 10:10:13 +08:00
|
|
|
uint32_t FirstRunFlag;//第一次运行
|
|
|
|
|
uint8_t DevMac[6];//设备MAC
|
|
|
|
|
uint32_t LoraFreq;//Lora频率
|
2026-04-23 14:02:03 +08:00
|
|
|
}BootPara_t, *BootPara;
|
|
|
|
|
|
|
|
|
|
//主机下发升级请求载荷结构体
|
|
|
|
|
typedef struct {
|
|
|
|
|
uint16_t PackageNum;
|
|
|
|
|
uint32_t AppSize;
|
|
|
|
|
uint32_t AppCrc32;
|
|
|
|
|
}__attribute__ ((packed))UpDataRequset_t, *UDReq;
|
|
|
|
|
|
|
|
|
|
//帧头结构体
|
|
|
|
|
typedef struct {
|
|
|
|
|
uint8_t Header;
|
|
|
|
|
uint8_t DevMac[6];
|
|
|
|
|
uint8_t Cmd;
|
|
|
|
|
uint8_t PayloadLen;
|
|
|
|
|
}__attribute__((packed))UpdateFrameHeader_t,*pUpdateFrameHeader;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//输入接口函数定义,需根据接口重新定义
|
|
|
|
|
#define U_DBG_LOG(...) DBG_LOG(__VA_ARGS__)
|
|
|
|
|
#define U_DELAY_MS(x) delay_ms(x)
|
|
|
|
|
#define U_SYSTEM_TESET() SystemReset()
|
|
|
|
|
#define SAVE_BOOT_PARA(addr) FlashWrite(BOOT_PARA_ADDRESS, addr, sizeof(BLPara) / 4)
|
|
|
|
|
#define READ_BOOT_PARA(addr) FlashRead(BOOT_PARA_ADDRESS, addr, sizeof(BLPara) / 4)
|
|
|
|
|
|
|
|
|
|
//输出接口
|
|
|
|
|
void Update(uint8_t *PayLoad);
|
|
|
|
|
void UpdateInit(void);
|
2026-05-11 10:10:13 +08:00
|
|
|
extern BootPara_t BLPara;
|
2026-04-23 14:02:03 +08:00
|
|
|
#endif
|