first submission
This commit is contained in:
@@ -0,0 +1,83 @@
|
||||
/********************************** (C) COPYRIGHT *******************************
|
||||
* File Name : IAP_Task.h
|
||||
* Author : WCH
|
||||
* Version : V1.0.0
|
||||
* Date : 2022/05/25
|
||||
* Description : This file contains the headers of the IAP task.
|
||||
*********************************************************************************
|
||||
* Copyright (c) 2021 Nanjing Qinheng Microelectronics Co., Ltd.
|
||||
* Attention: This software (modified or not) and binary are used for
|
||||
* microcontroller manufactured by Nanjing Qinheng Microelectronics.
|
||||
*******************************************************************************/
|
||||
#ifndef __IAP_TASK_H__
|
||||
#define __IAP_TASK_H__
|
||||
|
||||
#include "debug.h"
|
||||
#include "ch32v20x_it.h"
|
||||
|
||||
/*
|
||||
flash:128K
|
||||
BIM area(Image Boot Manager):40K
|
||||
USER area(用户代码区):44K
|
||||
BACKUP area(代码备份区):44K
|
||||
address assignment:
|
||||
0x0 size:0xA000
|
||||
0xA000 size:0xB000
|
||||
0x15000 size:0xB000
|
||||
*/
|
||||
|
||||
/*address assignment */
|
||||
#define BIM_IMAGE_START_ADD ((uint32_t) 0x08000000)
|
||||
#define BIM_IMAGE_MAX_SIZE 0xA000
|
||||
|
||||
#define USER_IMAGE_START_ADD ((uint32_t) 0x0800A000)
|
||||
#define USER_IMAGE_MAX_SIZE 0xB000
|
||||
|
||||
#define BACKUP_IMAGE_START_ADD ((uint32_t) 0x08015000)
|
||||
#define BACKUP_IMAGE_MAX_SIZE 0xB000
|
||||
|
||||
#define UPDATA_FLAG_STORAGE_ADD ((uint32_t) 0x0801FF00)
|
||||
|
||||
#define FLASH_BLOCK_SIZE 4096
|
||||
|
||||
#define READ_DATA_LEN 2048
|
||||
|
||||
#define FLASH_PAGE_SIZE 256
|
||||
|
||||
/*Flash operation information*/
|
||||
#define BIN_INF_LEN 512
|
||||
|
||||
#define FILE_FLAG "WCHNET"
|
||||
|
||||
#define IMAGE_FLAG_UPDATE 0x57434820 //'W','C','H',' '
|
||||
|
||||
typedef struct
|
||||
{
|
||||
u8 iapFileFlag[8]; //8-byte IAP flag, fixed as "WCHNET", the extra space is 0
|
||||
u32 iapFileLen; //4 bytes IAP file length, which is bin file length + 512 bytes
|
||||
u32 iapFileCheckSum; //4-byte checksum
|
||||
}iapFileHeader;
|
||||
|
||||
typedef struct{
|
||||
u16 readIndex;
|
||||
u16 writeIndex;
|
||||
u16 buffUsedLen;
|
||||
u8 *dataBuff;
|
||||
}ethDataDeal;
|
||||
|
||||
extern ethDataDeal dataDeal;
|
||||
extern iapFileHeader iapPara;
|
||||
extern u32 fileDataLen;
|
||||
extern u32 fileCheckSum;
|
||||
|
||||
extern u8 IAPCopyFlashDeal(void);
|
||||
extern void IAPParaInit(void);
|
||||
extern void saveUpdatedFile(void);
|
||||
extern void receUpdatedFile(u8 socketid);
|
||||
extern void IAPFileParaCheck(u8 socketid);
|
||||
extern void IAP_EEPROM_ERASE_44k(u32 StartAddr);
|
||||
extern void IAP_EEPROM_READ( u32 StartAddr, u8 *Buffer, u32 Length );
|
||||
extern void IAP_EEPROM_ERASE(uint32_t Page_Address, u32 Length);
|
||||
extern void IAP_EEPROM_WRITE( u32 StartAddr, u8 *Buffer, u32 Length );
|
||||
|
||||
#endif /* __IAP_TASK_H__ */
|
||||
Reference in New Issue
Block a user