Files

61 lines
1.7 KiB
C
Raw Permalink Normal View History

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;
}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);
#endif