ZDBMS/header_drv/McuFlash.h

85 lines
2.6 KiB
C

#ifndef __MCU_FLASH_H
#define __MCU_FLASH_H
#define XRAM_MAP_ADDR 0x0000
#define MCUFLASH_BK1_ADDR 0x0000
#define MCUFLASH_BK2_ADDR (MCUFLASH_BK1_ADDR + 512)
#define MCUFLASH_BK1_FLG_ADDR (MCUFLASH_BK1_ADDR + 510)
#define MCUFLASH_BK2_FLG_ADDR (MCUFLASH_BK2_ADDR + 510)
#define MCUFLASH_SECTOR_SIZE 512 //1Sector的长度为512字节
#define MCU_FLASH_WATI_DELAY 2
/**************************************************************************************/
//MCU Flash中区块地址定义
/**************************************************************************************/
//系统信息区开始 SubClassID=0x00
#define SYS_PARA_MAP_ADDR XRAM_MAP_ADDR
#define SYS_PARA_LEN 48
//用户自定义参数区开始 SubClassID=0x01
#define SYSINFO_MAP_ADDR (SYS_PARA_MAP_ADDR+SYS_PARA_LEN)
#define SYSINFO_LEN 50
//充电参数区开始 SubClassID=0x02
#define CHG_PARA_MAP_ADDR (SYSINFO_MAP_ADDR+SYSINFO_LEN)
#define CHG_PARA_LEN 18
//放电参数区开始 SubClassID=0x03
#define DSG_PARA_MAP_ADDR (CHG_PARA_MAP_ADDR+CHG_PARA_LEN)
#define DSG_PARA_LEN 21
//预留参数区开始 SubClassID=0x04
//Reserved
//放电PWM参数区开始 SubClassID=0x05
#define DSG_PWM_PARA_MAP_ADDR (DSG_PARA_MAP_ADDR+DSG_PARA_LEN)
#define DSG_PWM_PARA_LEN 5
//充电温度保护参数开始 SubClassID=0x06
#define CHG_TEMP_PARA_MAP_ADDR (DSG_PWM_PARA_MAP_ADDR+DSG_PWM_PARA_LEN)
#define CHG_TEMP_PARA_LEN 11
//放电温度保护参数开始 SubClassID=0x07
#define DSG_TEMP_PARA_MAP_ADDR (CHG_TEMP_PARA_MAP_ADDR+CHG_TEMP_PARA_LEN)
#define DSG_TEMP_PARA_LEN 9
//平衡参数区开始 SubClassID=0x08
#define BAL_PARA_MAP_ADDR (DSG_TEMP_PARA_MAP_ADDR+DSG_TEMP_PARA_LEN)
#define BAL_PARA_LEN 8
//容量统计参数开始 SubClassID=0x09
#define SOC_PARA_MAP_ADDR (BAL_PARA_MAP_ADDR+BAL_PARA_LEN)
#define SOC_PARA_LEN 17
//AFE参数区开始 SubClassID=0x0A
#define AFE_PARA_MAP_ADDR (SOC_PARA_MAP_ADDR+SOC_PARA_LEN)
#define AFE_PARA_LEN 4
//校准参数区开始 SubClassID=0x0B
#define CALI_PARA_MAP_ADDR (AFE_PARA_MAP_ADDR+AFE_PARA_LEN)
#define CALI_PARA_LEN 12
#define RESERVED_DATA_MAP_ADDR (CALI_PARA_MAP_ADDR+CALI_PARA_LEN)
#define RESERVED_DATA_LEN (510-(RESERVED_DATA_MAP_ADDR))
#define DataflashCheck_Map_ADDR 0xfe
#define DataflashCheck_LEN 0x0002
extern BOOL bMcuFlashWrWaitFlg;
extern BOOL bMcuFlashWrFlg;
extern BOOL bMcuFlashErr;
extern U8 xdata ucMcuFlashWrValid;
extern U8 xdata bMcuFlashWrWaitCnt;
extern BOOL McuFlashRead(U16 SourceAddr, U8 xdata *TargetAddr, U16 Length);
extern BOOL McuFlashWrite(U16 McuFlashAddr, U16 XramAddr);
extern void McuFlashWrOneByte(U16 McuFlashAddr,U8 WrData);
extern void McuFlashProcess(void);
extern void McuFlashWrWaitCheck(void);
extern BOOL McuFlashCheckFlg(U16 Saddr);
#endif