#ifndef INTERNAL_FLASH_H__ #define INTERNAL_FLASH_H__ typedef enum { INT_FLASH_PASS = 0U, INT_FLASH_FAIL, } Int_Flash_Result_en_t; typedef enum { INT_DATA_FLASH_IDLE = 0U, INT_DATA_FLASH_BUSY, INT_DATA_FLASH_ERROR, } Int_Data_Flash_Status_en_t; typedef void (*Int_Flash_Cb_Func_t)(void); #define INT_DATA_FLASH_START_ADDR (0xFF200000UL) #define INT_DATA_FLASH_END_ADDR (0xFF20FFFFUL) #define INT_DATA_FLASH_BLOCK_SIZE (64U) #define INT_DATA_FLASH_BUFFER_SIZE (256U) /* 256 * 4 = 1024 bytes */ #define INT_CODE_FLASH_START_ADDR (0x00000000UL) #define INT_CODE_FLASH_END_ADDR (0x003FFFFFUL) #define INT_CODE_FLASH_8k_BLOCK_START (0x00000000UL) #define INT_CODE_FLASH_32k_BLOCK_START (0x00010000UL) #define INT_CODE_FLASH_BLOCK_0_7_SIZE (8U * 1024U) #define INT_CODE_FLASH_BLOCK_8_133_SIZE (32U * 1024U) #define INT_CODE_FLASH_SIZE (INT_CODE_FLASH_END_ADDR - INT_CODE_FLASH_START_ADDR + 1UL) extern void Int_Flash_Init(void); extern void Int_Data_Flash_Read(uint32_t u32Addr, uint32_t u32Data[], uint32_t u32Len); extern void Int_Data_Flash_Erase(uint32_t u32StartAddr, uint32_t u32EndAddr); extern uint32_t Int_Data_Flash_Blank_Check(uint32_t u32StartAddr, uint32_t u32EndAddr); extern void Int_Data_Flash_Write(uint32_t u32Addr, uint32_t u32Data[], uint32_t u32Len); extern Int_Data_Flash_Status_en_t Int_Data_Flash_Status_Get(void); extern void Int_Data_Flash_Register_P_E_Complete_Cb(Int_Flash_Cb_Func_t pfnCmpleteCb); extern void Int_Data_Flash_Force_Stop(void); extern Int_Flash_Result_en_t Int_Code_Flash_Read(uint32_t u32Addr, uint32_t u32Data[], uint32_t u32Len); extern Int_Flash_Result_en_t Int_Code_Flash_Erase(uint32_t u32StartAddr, uint32_t u32EndAddr); extern uint32_t Int_Code_Flash_Blank_Check(uint32_t u32StartAddr, uint32_t u32EndAddr); extern Int_Flash_Result_en_t Int_Code_Flash_Write(uint32_t u32Addr, uint32_t u32Data[], uint32_t u32Len); extern void Int_Code_Flash_Force_Stop(void); extern Int_Flash_Result_en_t Int_Config_Set_Read(uint32_t u32Addr, uint16_t u16Data[], uint32_t u32Len); extern Int_Flash_Result_en_t Int_Config_Program_Set_Write(uint32_t u32Addr, uint16_t u16Data[], uint32_t u32Len); extern void Int_Flash_Ready_ISR(void); #endif