244 lines
11 KiB
C
244 lines
11 KiB
C
|
#ifndef __PTZ_UPDATE_H_
|
|||
|
#define __PTZ_UPDATE_H_
|
|||
|
|
|||
|
#include "comm_types.h"
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
#pragma pack(push,1)
|
|||
|
|
|||
|
#define HARD_WARE_TYPE_DEFAULT_K (*((u_int8_t *)"G"))
|
|||
|
#define HARD_WARE_TYPE_DEFAULT_6 (*((u_int8_t *)"D"))
|
|||
|
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.hpk<70><6B><EFBFBD>ļ<EFBFBD>ͷ
|
|||
|
typedef struct _UpdateFileHead_
|
|||
|
{
|
|||
|
u_int32_t flag; // 4byte <09><>־<EFBFBD><D6BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ"HYPK" <09><><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Դ˿<D4B4>ͷ<EFBFBD><CDB7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD>ǷǷ<C7B7><C7B7>ļ<EFBFBD>
|
|||
|
u_int32_t head_len; //4byte ͷ<><CDB7><EFBFBD><EFBFBD> <09>ļ<EFBFBD>ͷ<EFBFBD><CDB7><EFBFBD>ȣ<EFBFBD><C8A3><EFBFBD><EFBFBD><EFBFBD>"<22><>־"
|
|||
|
u_int8_t file_type; //1byte <09>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD>ͣ<EFBFBD>1 1<><31>Ӧ<EFBFBD>ó<EFBFBD><C3B3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 2:bootloader
|
|||
|
u_int16_t file_format_ver; //2byte <20>ļ<EFBFBD><C4BC><EFBFBD>ʽ<EFBFBD>汾<EFBFBD>ţ<EFBFBD>1 <09><><EFBFBD><EFBFBD>ȷ<EFBFBD><C8B7><EFBFBD>ļ<EFBFBD><C4BC>Ĵ<EFBFBD><C4B4><EFBFBD><EFBFBD><EFBFBD>ʽ
|
|||
|
u_int8_t hardware_type[2]; //2byte Ӳ<><D3B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <09><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>õ<EFBFBD>Ӳ<EFBFBD><D3B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
u_int16_t hardware_ver; //2byte Ӳ<><D3B2><EFBFBD>汾 <09><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>õ<EFBFBD>Ӳ<EFBFBD><D3B2><EFBFBD>汾
|
|||
|
u_int32_t software_ver; //4byte <09><><EFBFBD><EFBFBD><EFBFBD>汾 <09><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ӧ<EFBFBD><D3A6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>汾
|
|||
|
u_int32_t data_len; //4byte <20><><EFBFBD>ݳ<EFBFBD><DDB3><EFBFBD>
|
|||
|
u_int32_t addr; //4byte <20><>д<EFBFBD><D0B4>ַ
|
|||
|
u_int8_t head_checksum; //1byte ͷУ<CDB7><D0A3> <09><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݵ<EFBFBD>checksum<75><6D><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"<22><>־"<22><><EFBFBD><EFBFBD><EFBFBD>ֽ<EFBFBD><D6BD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
}UpdateFileHead;
|
|||
|
|
|||
|
#define UPDATE_BUFF_SIZE 750 //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݰ<EFBFBD><DDB0><EFBFBD>С
|
|||
|
#define UPDATE_BUFF_FIFO_NUM 2 //ѭ<><D1AD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>洢<EFBFBD><E6B4A2><EFBFBD><EFBFBD><EFBFBD>ݰ<EFBFBD><DDB0><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
#define UPDATE_FILE_TYPE_APP 1 //<2F><><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>application<6F><6E>Ӧ<EFBFBD>ó<EFBFBD><C3B3><EFBFBD>
|
|||
|
#define UPDATE_FILE_TYPE_BOOT_LOADER 2 //<2F><><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>bootloader
|
|||
|
#define UPDATE_FILE_TYPE_CERT 3 //<2F><><EFBFBD><EFBFBD>оƬ֤<C6AC><D6A4>
|
|||
|
#define UPDATE_FILE_TYPE_PUB_KEY 4 //<2F><>Կ
|
|||
|
#define UPDATE_FILE_TYPE_CFG_FILE 5 //<2F><><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD>
|
|||
|
#define UPDATE_FILE_TYPE_CFG_IP 6 //IP<49><50><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD>
|
|||
|
#define UPDATE_FILE_TYPE_NW_INFO 7 //<2F><><EFBFBD><EFBFBD>̨<EFBFBD><CCA8><EFBFBD><EFBFBD>Ϣ
|
|||
|
|
|||
|
//<2F><><EFBFBD><EFBFBD>Э<EFBFBD><D0AD>֡<EFBFBD><D6A1><EFBFBD><EFBFBD>
|
|||
|
#define UPDATE_FRAME_TYPE_SEND 0X20 //<2F><>̨<EFBFBD><CCA8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
#define UPDATE_FRAME_TYPE_RECE 0X21 //<2F><>̨<EFBFBD><CCA8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
|||
|
#define UPDATE_FRAME_TYPE_KEEP_ALIVE 0X01 //<2F><><EFBFBD>Ա<EFBFBD><D4B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
#define UPDATE_FRAME_TYPE_GET_DEVICE_INFO 0X02 //<2F><><EFBFBD>ڻ<EFBFBD>ȡ<EFBFBD>豸<EFBFBD><E8B1B8>Ϣ<EFBFBD><CFA2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ӳ<EFBFBD><D3B2><EFBFBD>汾<EFBFBD><E6B1BE>
|
|||
|
#define UPDATE_FRAME_TYPE_RESET_DEVICE 0X03 //<2F>豸<EFBFBD><E8B1B8>λ
|
|||
|
#define UPDATE_FRAME_TYPE_BOOT_APP 0X04 //Ҫ<><D2AA><EFBFBD>豸<EFBFBD><E8B1B8><EFBFBD><EFBFBD>Ӧ<EFBFBD><D3A6>
|
|||
|
#define UPDATE_FRAME_TYPE_UPGRADE_REQ 0X05 //<2F><><EFBFBD><EFBFBD><EFBFBD>豸<EFBFBD><E8B1B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB>upgrade_request<73>ṹ
|
|||
|
#define UPDATE_FRAME_TYPE_UPGRADE_DATE 0X06 //<2F><><EFBFBD><EFBFBD><EFBFBD>豸<EFBFBD><E8B1B8><EFBFBD>ݣ<EFBFBD><DDA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB>upgrade_frame<6D>ṹ
|
|||
|
#define UPDATE_FRAME_TYPE_UPGRADE_FINISH 0X07 //<2F><><EFBFBD><EFBFBD><EFBFBD>豸<EFBFBD><E8B1B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>SRV->Device<63><65><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݿ<EFBFBD>
|
|||
|
//Device->Srv<72><76><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Dz<EFBFBD><C7B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>upgrade_retrans_table
|
|||
|
#define UPDATE_FRAME_TYPE_ERROR 0XF0 //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
|
|||
|
#define UPDATE_FRAME_TYPE_VER_INFO 0XF1 //<2F>汾<EFBFBD><E6B1BE>Ϣ
|
|||
|
|
|||
|
|
|||
|
#define UPDATE_FRAME_HEAD_FLAG 0X5AA5//֡ͷ
|
|||
|
|
|||
|
#define DEVICE_ID_LEN 17 //<2F>豸ID<49><44><EFBFBD><EFBFBD>
|
|||
|
|
|||
|
#define PTZ_UPDATE_PORT 9999 //<2F><>̨<EFBFBD><CCA8><EFBFBD><EFBFBD><EFBFBD>˿<EFBFBD>
|
|||
|
|
|||
|
#define PTZ_UPDATE_SERV_IP_A "192.168.8.222" //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>IP<49><50>ַ
|
|||
|
#define PTZ_UPDATE_SERV_IP_B "192.168.8.168"
|
|||
|
#define PTZ_UPDATE_SERV_PORT_A 8880 //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˶˿<CBB6>
|
|||
|
#define PTZ_UPDATE_SERV_PORT_B 8881 //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˶˿<CBB6>
|
|||
|
|
|||
|
#define BITS_PER_UNIT 8 //һ<><D2BB><EFBFBD>ֽڵ<D6BD>bit<69><74>
|
|||
|
|
|||
|
#define MAX_RETRANS_TABLE_LEN 256 //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>С
|
|||
|
|
|||
|
//<2F><>ȡÿһ֡<D2BB><D6A1>CRC16У<36><D0A3><EFBFBD><EFBFBD>
|
|||
|
#define UPDATE_FRAME_GET_CRC16(x) (*(u_int16_t *)(&((x)->data[(x)->data_len])))
|
|||
|
//<2F><><EFBFBD><EFBFBD>֡ͷ<D6A1><CDB7><EFBFBD><EFBFBD>
|
|||
|
#define UPDATE_FRAME_HEAD_SIZE(x) (((char *)((x)->data)) - (char *)(x))
|
|||
|
//<2F><><EFBFBD><EFBFBD>֡<EFBFBD><D6A1><EFBFBD>ܳ<EFBFBD><DCB3><EFBFBD>
|
|||
|
#define UPDATE_FRAME_SIZE(x) (((char *)&((x)->data[(x)->data_len])) - (char *)(x) + sizeof(u_int16_t))
|
|||
|
///<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC>ܳ<EFBFBD><DCB3><EFBFBD>
|
|||
|
#define UPDATE_FILE_TOTAL_LEN(x) ((x)->data_len + sizeof(*(x)) + sizeof(u_int16_t))
|
|||
|
///<2F><><EFBFBD>㲹<EFBFBD><E3B2B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD>С
|
|||
|
#define UPDATE_RETRANS_TABLE_SIZE(x) (((x)->count * sizeof((x)->index[0])) +sizeof((x)->count))
|
|||
|
|
|||
|
#define ON_CHIP_FLASH_SECTOR_SIZE 2048
|
|||
|
|
|||
|
#define UPDATE_ON_CHIP_FLASH_SECTOR_SIZE 2048
|
|||
|
#define UPDATE_EXT_FLASH_SECTOR_SIZE (1024*4)
|
|||
|
#define UPDATE_EXT_FLASH_BLOCK_NUM (0)
|
|||
|
#define UPDATE_EXT_FLASH_BLOCK_NUM16 (16)
|
|||
|
|
|||
|
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƭ<EFBFBD><C6AC>flash<73><68><EFBFBD><EFBFBD>ʱʹ<CAB1>õĵ<C3B5>ַ<EFBFBD><D6B7>Ϣ
|
|||
|
#define UPDATE_FLASH_BUFF_BEGIN_ADDR (1024*64*24)//1.5M-2M
|
|||
|
#define UPDATE_FLASH_BUFF_END_ADDR (1024*64*32-1)
|
|||
|
#define UPDATE_FLASH_BUFF_SIZE (1024*64*8)//512k
|
|||
|
#define UPDATE_FLASH_BUFF_BEGIN_BLOCK (UPDATE_FLASH_BUFF_BEGIN_ADDR / Flash_BLOCKBYTE_LENGTH)
|
|||
|
|
|||
|
//bootloader<65><72>ַ<EFBFBD><D6B7>Ϣ--Ƭ<><C6AC>
|
|||
|
#define UPDATE_BOOTLOADER_ADDR_BEGIN (0x08000000)//Bootloader<65><72>ʼ<EFBFBD><CABC>ַ
|
|||
|
#define UPDATE_BOOTLOADER_ADDR_END (0x0800BFFF)//bootloader<65><72><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD>64KB<4B><42>ռ4<D5BC><34><EFBFBD><EFBFBD><EFBFBD><EFBFBD>0<EFBFBD><30>1<EFBFBD><31>2<EFBFBD><32>3
|
|||
|
#define UPDATE_BOOTLOADER_SECTOR_BEGIN CTL_SECTOR_NUMBER_0 //Bootloader<65><72>ʼsector
|
|||
|
|
|||
|
//Ӧ<>ó<EFBFBD><C3B3><EFBFBD><EFBFBD><EFBFBD>ַ<EFBFBD><D6B7>Ϣ--Ƭ<><C6AC>
|
|||
|
#define UPDATE_APP_ADDR_BEGIN (0x08010000)//Ӧ<>ó<EFBFBD><C3B3><EFBFBD><EFBFBD><EFBFBD>ʼ<EFBFBD><CABC>ַ
|
|||
|
#define UPDATE_APP_ADDR_END (0x0807FFFF)//Ӧ<>ó<EFBFBD><C3B3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD>448kB<6B><42>ռ4<D5BC><34><EFBFBD><EFBFBD><EFBFBD><EFBFBD>4<EFBFBD><34>5<EFBFBD><35>6<EFBFBD><36>7
|
|||
|
#define UPDATE_APP_SECTOR_BEGIN CTL_SECTOR_NUMBER_4 //Ӧ<>ó<EFBFBD><C3B3><EFBFBD><EFBFBD><EFBFBD>ʼsector
|
|||
|
|
|||
|
#define APP_ADD_BEGIN_OFFEST (0x08000000)
|
|||
|
|
|||
|
//<2F><>ȫ֤<C8AB><D6A4><EFBFBD><EFBFBD>ַ<EFBFBD><D6B7>Ϣ--<2D><><EFBFBD><EFBFBD>w25q128<32><38>
|
|||
|
#define UPDATE_CERT_ADDR_BEGIN (1024*4*2)//0block 2sector(4k) <20><>ͷ<EFBFBD><CDB7><EFBFBD><EFBFBD>1sector
|
|||
|
#define UPDATE_CERT_ADDR_END (1024*4*3-1)
|
|||
|
#define UPDATE_CERT_SECTOR_BEGIN (UPDATE_CERT_ADDR_BEGIN / UPDATE_EXT_FLASH_SECTOR_SIZE)//<2F><>ȫ<EFBFBD><C8AB><EFBFBD><EFBFBD>оƬ֤<C6AC><D6A4>
|
|||
|
|
|||
|
//<2F><>Կ<EFBFBD><D4BF>ַ<EFBFBD><D6B7>Ϣ--<2D><><EFBFBD><EFBFBD>w25q128<32><38>
|
|||
|
#define UPDATE_KEY_ADDR_BEGIN (1024*4*4)//0block 4sector(4k) <20><>ͷ<EFBFBD><CDB7><EFBFBD><EFBFBD>3sector
|
|||
|
#define UPDATE_KEY_ADDR_END (1024*4*5-1)
|
|||
|
#define UPDATE_KEY_SECTOR_BEGIN (UPDATE_KEY_ADDR_BEGIN / UPDATE_EXT_FLASH_SECTOR_SIZE)//<2F><>ȫ<EFBFBD><C8AB><EFBFBD><EFBFBD>оƬ<D0BE><C6AC>Կ
|
|||
|
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD>ַ<EFBFBD><D6B7>Ϣ--<2D><><EFBFBD><EFBFBD>w25q128<32><38>
|
|||
|
#define UPDATE_CFG_FILE_ADDR_BEGIN (1024*4*6)//0block 6sector(4k) <20><>ͷ<EFBFBD><CDB7><EFBFBD><EFBFBD>5sector
|
|||
|
#define UPDATE_CFG_FILE_ADDR_END (1024*4*7-1)
|
|||
|
#define UPDATE_CFG_FILE_SECTOR_BEGIN (UPDATE_CFG_FILE_ADDR_BEGIN / UPDATE_EXT_FLASH_SECTOR_SIZE)//<2F><><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD>
|
|||
|
|
|||
|
//IP<49><50><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD>ַ<EFBFBD><D6B7>Ϣ--<2D><><EFBFBD><EFBFBD>w25q128<32><38>
|
|||
|
#define UPDATE_CFG_IP_ADDR_BEGIN (1024*64*16+1024*4*1)//16block 1sector(4k) <20><>ͷ<EFBFBD><CDB7><EFBFBD><EFBFBD> block16 0sector
|
|||
|
#define UPDATE_CFG_IP_ADDR_END (1024*64*16+1024*4*2-1)
|
|||
|
#define UPDATE_CFG_IP_SECTOR_BEGIN ((UPDATE_CFG_IP_ADDR_BEGIN - Flash_BLOCKBYTE_LENGTH*16)/ UPDATE_EXT_FLASH_SECTOR_SIZE)//<2F><><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD>
|
|||
|
|
|||
|
//<2F><><EFBFBD><EFBFBD>̨<EFBFBD><CCA8><EFBFBD><EFBFBD>Ϣ<EFBFBD>ļ<EFBFBD><C4BC><EFBFBD>ַ<EFBFBD><D6B7>Ϣ--<2D><><EFBFBD><EFBFBD>w25q128<32><38>
|
|||
|
#define UPDATE_CFG_NW_INFO_ADDR_BEGIN (1024*64*16+1024*4*3)//16block 2sector(8k) <20><>ͷ<EFBFBD><CDB7><EFBFBD><EFBFBD> block16 3sector 4sector
|
|||
|
#define UPDATE_CFG_NW_INFO_ADDR_END (1024*64*16+1024*4*5-1)
|
|||
|
#define UPDATE_CFG_NW_INFO_SECTOR_BEGIN ((UPDATE_CFG_NW_INFO_ADDR_BEGIN - Flash_BLOCKBYTE_LENGTH*16)/ UPDATE_EXT_FLASH_SECTOR_SIZE)//<2F><><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD>
|
|||
|
|
|||
|
|
|||
|
|
|||
|
////Ӧ<>ó<EFBFBD><C3B3><EFBFBD><EFBFBD><EFBFBD>ͷ<EFBFBD>洢<EFBFBD><E6B4A2>ַ<EFBFBD><D6B7>Ϣ<EFBFBD><CFA2><EFBFBD><EFBFBD>Ӧ<EFBFBD>ó<EFBFBD><C3B3><EFBFBD>ǰ4K<34><4B><EFBFBD><EFBFBD>--Ƭ<><C6AC>
|
|||
|
//#define APP_PKG_HEAD_BEGIN 0x0800C000//(APP_ADDR_BEGIN - 4096)
|
|||
|
//#define APP_PKG_HEAD_END 0x0800FFFF//(APP_ADDR_BEGIN-1)
|
|||
|
//#define APP_PKG_HEAD_SECTOR_BEGIN CTL_SECTOR_NUMBER_3//3 //ͷ<>洢<EFBFBD><E6B4A2>sector(APP_PKG_HEAD_BEGIN/ON_CHIP_FLASH_SECTOR_SIZE)
|
|||
|
//#define APP_PGK_HEAD ((hy_release_file_head*)APP_PKG_HEAD_BEGIN)
|
|||
|
|
|||
|
//Ӧ<>ó<EFBFBD><C3B3><EFBFBD><EFBFBD><EFBFBD>ͷ<EFBFBD>洢<EFBFBD><E6B4A2>ַ<EFBFBD><D6B7>Ϣ<EFBFBD><CFA2><EFBFBD><EFBFBD>Ӧ<EFBFBD>ó<EFBFBD><C3B3><EFBFBD>ǰ2<C7B0><32>sector<6F><72><EFBFBD><EFBFBD>--Ƭ<><C6AC>
|
|||
|
#define UPDATE_APP_PKG_HEAD_BEGIN 0x0800C000
|
|||
|
#define UPDATE_APP_PKG_HEAD_END 0x0800FFFF
|
|||
|
#define UPDATE_APP_PKG_HEAD_SECTOR_BEGIN CTL_SECTOR_NUMBER_3//ͷ<>洢<EFBFBD><E6B4A2>sector
|
|||
|
#define UPDATE_APP_PKG_HEAD ((UpdateFileHead*)UPDATE_APP_PKG_HEAD_BEGIN)
|
|||
|
|
|||
|
//<2F><>ȫ֤<C8AB><D6A4><EFBFBD><EFBFBD>ͷ<EFBFBD>洢<EFBFBD><E6B4A2>ַ<EFBFBD><D6B7>Ϣ<EFBFBD><CFA2><EFBFBD><EFBFBD>оƬ<D0BE><C6AC>ȫ֤<C8AB><D6A4>ǰ1<C7B0><31>sector<6F><72><EFBFBD><EFBFBD>--<2D><><EFBFBD><EFBFBD>w25q128<32><38>
|
|||
|
#define UPDATE_CERT_HEAD_BEGIN (UPDATE_CERT_ADDR_BEGIN - UPDATE_EXT_FLASH_SECTOR_SIZE)
|
|||
|
#define UPDATE_CERT_HEAD_END (UPDATE_CERT_ADDR_BEGIN-1)
|
|||
|
#define UPDATE_CERT_HEAD_SECTOR_BEGIN (UPDATE_CERT_HEAD_BEGIN/UPDATE_EXT_FLASH_SECTOR_SIZE)//ͷ<>洢<EFBFBD><E6B4A2>sector
|
|||
|
|
|||
|
//<2F><>Կ<EFBFBD><D4BF>ͷ<EFBFBD>洢<EFBFBD><E6B4A2>ַ<EFBFBD><D6B7>Ϣ<EFBFBD><CFA2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Կǰ1<C7B0><31>sector<6F><72><EFBFBD><EFBFBD>--<2D><><EFBFBD><EFBFBD>w25q128<32><38>
|
|||
|
#define UPDATE_KEY_HEAD_BEGIN (UPDATE_KEY_ADDR_BEGIN - UPDATE_EXT_FLASH_SECTOR_SIZE)
|
|||
|
#define UPDATE_KEY_HEAD_END (UPDATE_KEY_ADDR_BEGIN-1)
|
|||
|
#define UPDATE_KEY_HEAD_SECTOR_BEGIN (UPDATE_KEY_HEAD_BEGIN/UPDATE_EXT_FLASH_SECTOR_SIZE)//ͷ<>洢<EFBFBD><E6B4A2>sector
|
|||
|
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD>ͷ<EFBFBD>洢<EFBFBD><E6B4A2>ַ<EFBFBD><D6B7>Ϣ<EFBFBD><CFA2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD>ǰ1<C7B0><31>sector<6F><72><EFBFBD><EFBFBD>--<2D><><EFBFBD><EFBFBD>w25q128<32><38>
|
|||
|
#define UPDATE_CFG_FILE_HEAD_BEGIN (UPDATE_CFG_FILE_ADDR_BEGIN - UPDATE_EXT_FLASH_SECTOR_SIZE)
|
|||
|
#define UPDATE_CFG_FILE_HEAD_END (UPDATE_CFG_FILE_ADDR_BEGIN-1)
|
|||
|
#define UPDATE_CFG_FILE_HEAD_SECTOR_BEGIN (UPDATE_CFG_FILE_HEAD_BEGIN/UPDATE_EXT_FLASH_SECTOR_SIZE)//ͷ<>洢<EFBFBD><E6B4A2>sector
|
|||
|
|
|||
|
//IP<49><50><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD>ͷ<EFBFBD>洢<EFBFBD><E6B4A2>ַ<EFBFBD><D6B7>Ϣ<EFBFBD><CFA2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD>ǰ1<C7B0><31>sector<6F><72><EFBFBD><EFBFBD>--<2D><><EFBFBD><EFBFBD>w25q128<32><38>
|
|||
|
#define UPDATE_CFG_IP_HEAD_BEGIN (UPDATE_CFG_IP_ADDR_BEGIN - UPDATE_EXT_FLASH_SECTOR_SIZE)
|
|||
|
#define UPDATE_CFG_IP_HEAD_END (UPDATE_CFG_IP_ADDR_BEGIN-1)
|
|||
|
#define UPDATE_CFG_IP_HEAD_SECTOR_BEGIN ((UPDATE_CFG_IP_HEAD_BEGIN - Flash_BLOCKBYTE_LENGTH*16)/UPDATE_EXT_FLASH_SECTOR_SIZE)//ͷ<>洢<EFBFBD><E6B4A2>sector
|
|||
|
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD>ļ<EFBFBD><C4BC><EFBFBD>ͷ<EFBFBD>洢<EFBFBD><E6B4A2>ַ<EFBFBD><D6B7>Ϣ<EFBFBD><CFA2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD>ǰ1<C7B0><31>sector<6F><72><EFBFBD><EFBFBD>--<2D><><EFBFBD><EFBFBD>w25q128<32><38>
|
|||
|
#define UPDATE_CFG_NW_INFO_HEAD_BEGIN (UPDATE_CFG_NW_INFO_ADDR_BEGIN - UPDATE_EXT_FLASH_SECTOR_SIZE)
|
|||
|
#define UPDATE_CFG_NW_INFO_HEAD_END (UPDATE_CFG_NW_INFO_ADDR_BEGIN-1)
|
|||
|
#define UPDATE_CFG_NW_INFO_HEAD_SECTOR_BEGIN ((UPDATE_CFG_NW_INFO_HEAD_BEGIN - Flash_BLOCKBYTE_LENGTH*16)/UPDATE_EXT_FLASH_SECTOR_SIZE)//ͷ<>洢<EFBFBD><E6B4A2>sector
|
|||
|
|
|||
|
|
|||
|
#define UPDATE_RELEASE_FILE_FLAG (*((u_int32_t *)"HYPK"))
|
|||
|
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>е<EFBFBD>״̬
|
|||
|
#define UPDATE_STATE_DEAD 0 //<2F><>ʼ״̬<D7B4><CCAC><EFBFBD><EFBFBD>δ<EFBFBD><CEB4><EFBFBD>ӵ<EFBFBD><D3B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
#define UPDATE_STATE_IDEL 1 //<2F><><EFBFBD><EFBFBD>״̬<D7B4><CCAC>ϵͳƽʱ<C6BD><CAB1>״̬
|
|||
|
#define UPDATE_STATE_UPGRADE_DATA_TRANS 2 //<2F>ȴ<EFBFBD>ά<EFBFBD><CEAC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>״̬
|
|||
|
|
|||
|
|
|||
|
#define flash_buff_crc16(len) (_flash_buff_crc16(UPDATE_FLASH_BUFF_BEGIN_ADDR, len));
|
|||
|
|
|||
|
|
|||
|
///<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݰ<EFBFBD>ѭ<EFBFBD><D1AD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ṹ<EFBFBD><E1B9B9>
|
|||
|
typedef struct _UpdateRecvFifoBuff_
|
|||
|
{
|
|||
|
unsigned short int data_len;//<2F><><EFBFBD>ݳ<EFBFBD><DDB3><EFBFBD>
|
|||
|
unsigned char data_buff[UPDATE_BUFF_SIZE];//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݰ<EFBFBD>
|
|||
|
}UpdateRecvFifoBuff;
|
|||
|
|
|||
|
///<2F><><EFBFBD><EFBFBD>֡<EFBFBD>ṹ<EFBFBD><E1B9B9>
|
|||
|
typedef struct _UpdateFrame_
|
|||
|
{
|
|||
|
unsigned short int flag; // 2byte ֡<><D6A1>ʼ<EFBFBD><CABC>־<EFBFBD><D6BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ5AA5
|
|||
|
unsigned short int data_len; // 2byte <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݳ<EFBFBD><DDB3><EFBFBD>
|
|||
|
unsigned char id[DEVICE_ID_LEN]; //<2F>豸ID
|
|||
|
unsigned char frame_type; //֡<><D6A1><EFBFBD><EFBFBD>,<2C>ǽ<EFBFBD><C7BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݻ<EFBFBD><DDBB>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
unsigned char pack_type; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͣ<EFBFBD><CDA3><EFBFBD>֡<EFBFBD>Ĺ<EFBFBD><C4B9>ܣ<EFBFBD><DCA3><EFBFBD>ʾ<EFBFBD><CABE>֡<EFBFBD><D6A1><EFBFBD><EFBFBD>ָ<EFBFBD><D6B8>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
unsigned char data[2];
|
|||
|
}UpdateFrame;
|
|||
|
|
|||
|
///<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><F3A3ACB0><EFBFBD><EFBFBD>ļ<EFBFBD>ͷ<EFBFBD><CDB7><EFBFBD><EFBFBD><EFBFBD>豸<EFBFBD><E8B1B8><EFBFBD><EFBFBD><EFBFBD><D7BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>У<EFBFBD><D0A3>ļ<EFBFBD>ͷ<EFBFBD><CDB7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD>ٴη<D9B4><CEB7><EFBFBD>
|
|||
|
typedef struct _UpdateRequest_
|
|||
|
{
|
|||
|
u_int32_t total_len; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ܳ<EFBFBD><DCB3><EFBFBD>
|
|||
|
u_int16_t frame_len; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ÿ<EFBFBD><C3BF><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
u_int16_t frame_count; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͷ<EFBFBD>Ƭ<EFBFBD><C6AC><EFBFBD><EFBFBD>
|
|||
|
UpdateFileHead file_head; //<2F>ļ<EFBFBD>ͷ<EFBFBD><CDB7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
|
|||
|
}UpdateRequest;
|
|||
|
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>device->servr<76><72><EFBFBD><EFBFBD><EFBFBD><EFBFBD> count == 0<><30><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɹ<EFBFBD>
|
|||
|
typedef struct _UpdateRetransTable_
|
|||
|
{
|
|||
|
u_int16_t count; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
u_int16_t index[1]; //<2F><><EFBFBD>ű<EFBFBD>
|
|||
|
}UpdateRetransTable;
|
|||
|
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD>ݣ<EFBFBD><DDA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD>ݷ<EFBFBD>Ƭ<EFBFBD><C6AC><EFBFBD><EFBFBD>
|
|||
|
typedef struct _UpdateData_
|
|||
|
{
|
|||
|
u_int16_t index; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
u_int16_t data_len; //<2F><>֡<EFBFBD><D6A1><EFBFBD>ݳ<EFBFBD><DDB3>ȣ<EFBFBD>д<EFBFBD><D0B4>ƫ<EFBFBD><C6AB><EFBFBD><EFBFBD>Ϊ
|
|||
|
u_int8_t data[1]; //<2F><><EFBFBD><EFBFBD>
|
|||
|
}UpdateData;
|
|||
|
|
|||
|
|
|||
|
RAM_FUNC void OnChip_Flash_init(void);
|
|||
|
RAM_FUNC u_int8_t OnChip_Flash_erase_sector(u_int16_t sectorNo);
|
|||
|
RAM_FUNC u_int8_t OnChip_Flash_write_in_sector(u_int16_t sectNo,u_int16_t offset,u_int16_t cnt,u_int8_t buf[]);
|
|||
|
RAM_FUNC u_int8_t OnChip_Flash_write(u_int32_t addr,u_int16_t cnt, u_int8_t buf[]);
|
|||
|
RAM_FUNC u_int32_t OnChip_Flash_cmd_launch(void);
|
|||
|
RAM_FUNC u_int8_t OnChip_Flash_read_in_sector(u_int16_t sectNo,u_int16_t offset,u_int16_t cnt,u_int8_t*bBuf);
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
#pragma pack(pop)
|
|||
|
|
|||
|
void init_update_module();
|
|||
|
|
|||
|
#endif
|