1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
#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