77 lines
1.5 KiB
C
77 lines
1.5 KiB
C
|
|
#ifndef __STAPP_H__
|
|
#define __STAPP_H__
|
|
|
|
#include "config.h"
|
|
|
|
//-----------------------------------------------------
|
|
|
|
#define APP_SAVE_NONE 0
|
|
#define APP_SAVE_NORFLASH 1 // 外部norflash中
|
|
#define APP_SAVE_EXRAM 2 // 外部RAM中
|
|
#define APP_SAVE_INFLASH 3 // 直接在FLASH区域中(Cortex-M4处理器禁止使用该方式)
|
|
|
|
#ifndef APP_SAVE_TO
|
|
#define APP_SAVE_TO APP_SAVE_NONE //
|
|
#endif
|
|
|
|
//-----------------------------------------------------
|
|
|
|
// 升级文件头
|
|
typedef struct
|
|
{
|
|
// 0x00
|
|
char fileName[32]; // 文件名称
|
|
// 0x20
|
|
u32 dataSize; // 数据字节数
|
|
u32 dataChecksum; // 数据累加校验和
|
|
|
|
// 0x28
|
|
u8 reserved1[0x30-0x28]; // 保留区1
|
|
|
|
// 0x30
|
|
u8 reserved2[0x64-0x30]; // 保留区2
|
|
|
|
// 0x64
|
|
u8 reserved3[0x80-0x64]; // 保留区3
|
|
|
|
// 0x80
|
|
u8 reserved4[0x100-0x80]; // 保留区4
|
|
}__attribute__ ((packed)) AppFileHead;
|
|
|
|
|
|
// 数据文件控制结构
|
|
typedef struct
|
|
{
|
|
int enflag; // 文件有效标志
|
|
AppFileHead fileHead; // 升级文件头描述
|
|
|
|
u8 pAppBuff[1024]; // 升级数据存储地址
|
|
|
|
}AppFileCtrl;
|
|
|
|
//-----------------------------------------------------
|
|
|
|
#ifdef _IN_STAPP_C
|
|
AppFileCtrl g_appFile;
|
|
#else
|
|
extern AppFileCtrl g_appFile;
|
|
#endif
|
|
|
|
//-----------------------------------------------------
|
|
|
|
// 支持的数据包长度
|
|
#define SUPPORT_LEN_1 128 // for xmodem
|
|
#define SUPPORT_LEN_2 1024 // for xmodem or ethernet
|
|
|
|
void InitSaveApp(void);
|
|
int SaveAppData(int idx, u8 * pBuf, int len, u32 ofst);
|
|
int IsAppReceiveDone(void);
|
|
int IsSaveDataCorrect(void);
|
|
void StartAppUpdate(int reboot);
|
|
u32 GetAppSaveDataCrc(u32 addr, u32 size);
|
|
|
|
//-----------------------------------------------------
|
|
|
|
#endif
|