ZDBMS/header_bootloader/Flash.h

97 lines
3.5 KiB
C
Raw Normal View History

2025-02-06 07:35:32 +00:00
/*******************************************************************************
<EFBFBD><EFBFBD>Ȩ<EFBFBD><EFBFBD><EFBFBD><EFBFBD> (C), 2018,<EFBFBD><EFBFBD>ӱ<EFBFBD><EFBFBD><EFBFBD>ӹɷ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>޹<EFBFBD>˾
********************************************************************************/
#ifndef __FLASH_H__
#define __FLASH_H__
#include "C51_TYPE.H"
#define MCU_TYPE_CODE 0x00
#define MCU_TYPE_E2P 0x01
#define BOOT_PGR_OK 0x00
#define BOOT_PGR_ERASE_ERR 0x01
#define BOOT_PGR_WR_ERR 0x02
#define BootMcuWdtClear() RSTSTAT &= 0xF8; //<2F><EFBFBD>Ź<EFBFBD>
/******************************************************************************
MCU <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>64K
Boot<EFBFBD><EFBFBD>ռ<EFBFBD><EFBFBD>4K (0x0000~0x0FFF)
App<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ռ<EFBFBD><EFBFBD>29K (0x1000~0x83FF)
App<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ռ<EFBFBD><EFBFBD>30K (0x8400~0xFBFF) CODE<EFBFBD>Ͳ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>CODE<EFBFBD><EFBFBD>
App<EFBFBD><EFBFBD><EFBFBD>ݲ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ռ<EFBFBD><EFBFBD>1K (0xFC00~0xFFFF)
*******************************************************************************/
#define MCU_CODE_SECTOR_SIZE ((U32)0x200)
#define BOOT_CODE_START_ADDR ((U32)0x0000) //BOOT<4F><54><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʼ<EFBFBD><CABC>ַ
#define BOOT_CODE_SIZE ((U32)4*1024) //BOOT<4F><54><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʼ<EFBFBD><CABC>ַ
#define IAP_CODE_START_ADDR ((U32)BOOT_CODE_START_ADDR+BOOT_CODE_SIZE)//APP<50><50><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʼ<EFBFBD><CABC>ַ
#define IAP_CODE_SIZE ((U32)29*1024) //APP<50><50><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>29K
#define IAP_CODE_END_ADDR ((U32)IAP_CODE_START_ADDR+IAP_CODE_SIZE-1)
#define IAP_BK_CODE_START_ADDR ((U32)IAP_CODE_START_ADDR+IAP_CODE_SIZE) //APP<50><50><EFBFBD>򱸷<EFBFBD><F2B1B8B7><EFBFBD><EFBFBD><EFBFBD>ʼ<EFBFBD><CABC>ַ
#define IAP_BK_CODE_SIZE ((U32)30*1024) //APP<50><50><EFBFBD>򱸷<EFBFBD><F2B1B8B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַ
#define IAP_BK_CODE_END_ADDR ((U32)IAP_BK_CODE_START_ADDR+IAP_BK_CODE_SIZE-1)
#define APP_PARA_START_ADDR ((U32)0x0000) //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʼ<EFBFBD><CABC>ַ--EEPROM<4F><4D>ַ<EFBFBD><D6B7>0<EFBFBD><30>ʼ
#define APP_PARA_SIZE ((U32)1*1024) //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>1K
#define BOOT_FLG_START_ADDR ((U32)BOOT_CODE_START_ADDR+BOOT_CODE_SIZE-MCU_CODE_SECTOR_SIZE)//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>BOOT<4F><54><EFBFBD><EFBFBD><EFBFBD><EFBFBD>1<EFBFBD><31>Sector
#define BOOT_FLG_IAP_ADDR ((U32)BOOT_FLG_START_ADDR+MCU_CODE_SECTOR_SIZE-1) //IAP<41><50>־<EFBFBD><D6BE><EFBFBD><EFBFBD><EFBFBD>ڱ<EFBFBD>־Sector<6F><72><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD>ֽ<EFBFBD>
#define BOOT_FLG_ISP_ADDR ((U32)BOOT_FLG_START_ADDR+MCU_CODE_SECTOR_SIZE-1) //IAP<41><50>־<EFBFBD><D6BE><EFBFBD><EFBFBD><EFBFBD>ڱ<EFBFBD>־Sector<6F><72><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD>ֽ<EFBFBD>
#define ISP_CODE_START_ADDR ((U32)IAP_CODE_START_ADDR) //APP<50><50><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʼ<EFBFBD><CABC>ַ
#define ISP_CODE_SIZE ((U32)59*1024) //APP<50><50><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>59K<39><4B><EFBFBD><EFBFBD>1K<31>IJ<EFBFBD><C4B2><EFBFBD><EFBFBD><EFBFBD>
extern U8 ucMcuFlashWrValid;
extern U8 McuFlashRdOneByte(U32 xdata McuFlashAddr, U8 xdata McuType);
extern void McuFlashEraseSector(U32 xdata McuFlashAddr, U8 xdata McuType);
extern BOOL McuFlashBlankCheck(U32 xdata McuFlashAddr, U8 xdata McuType);
extern void McuFlashWrOneByte(U32 xdata McuFlashAddr, U8 xdata WrData, U8 xdata McuType);
extern BOOL BootUpgradeCode(void);
#endif
//#define MCU_CODE_SECTOR_SIZE ((U32)0x200)
//#define BOOT_CODE_START_ADDR ((U32)0x0000) //BOOT<4F><54><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʼ<EFBFBD><CABC>ַ
//#define BOOT_CODE_SIZE ((U32)4*1024) //BOOT<4F><54><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʼ<EFBFBD><CABC>ַ
//#define IAP_CODE_START_ADDR (0x0000+4096)//APP<50><50><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʼ<EFBFBD><CABC>ַ
//#define IAP_CODE_SIZE ((U32)29*1024) //APP<50><50><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>29K
//#define IAP_CODE_END_ADDR (4096+29K-1)
//#define IAP_BK_CODE_START_ADDR (4096+29K) //APP<50><50><EFBFBD>򱸷<EFBFBD><F2B1B8B7><EFBFBD><EFBFBD><EFBFBD>ʼ<EFBFBD><CABC>ַ
//#define IAP_BK_CODE_SIZE ((U32)30*1024) //APP<50><50><EFBFBD>򱸷<EFBFBD><F2B1B8B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַ
//#define IAP_BK_CODE_END_ADDR (33K+30K-1)
//#define APP_PARA_START_ADDR ((U32)0x0000) //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʼ<EFBFBD><CABC>ַ--EEPROM<4F><4D>ַ<EFBFBD><D6B7>0<EFBFBD><30>ʼ
//#define APP_PARA_SIZE ((U32)1*1024) //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>1K
//#define BOOT_FLG_START_ADDR (0x0000+4096-0x200)//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>BOOT<4F><54><EFBFBD><EFBFBD><EFBFBD><EFBFBD>1<EFBFBD><31>Sector
//#define BOOT_FLG_IAP_ADDR (3.5K+0x200-1) //IAP<41><50>־<EFBFBD><D6BE><EFBFBD><EFBFBD><EFBFBD>ڱ<EFBFBD>־Sector<6F><72><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD>ֽ<EFBFBD>
//#define BOOT_FLG_ISP_ADDR (3.5K+0x200-1) //IAP<41><50>־<EFBFBD><D6BE><EFBFBD><EFBFBD><EFBFBD>ڱ<EFBFBD>־Sector<6F><72><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD>ֽ<EFBFBD>
//#define ISP_CODE_START_ADDR (4096) //APP<50><50><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʼ<EFBFBD><CABC>ַ
//#define ISP_CODE_SIZE ((U32)59*1024) //APP<50><50><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>60K<30><4B><EFBFBD><EFBFBD>1K<31>IJ<EFBFBD><C4B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>