A31R71x F/W Packages  1.5.0
ABOV Cortex-M0+ Core based MCUs Integrated Driver
A31R71x_hal_fmc.h
Go to the documentation of this file.
1 /***************************************************************************//****************************************************************************/
34 
35 #ifndef _FMC_H_
36 #define _FMC_H_
37 
38 #include "A31R71x.h"
39 #include "A31R71x_hal_aa_types.h"
40 
41 #ifdef __cplusplus
42 extern "C" {
43 #endif
44 
45 //******************************************************************************
46 // Constant
47 //******************************************************************************
48 
49 //---------- Flash Memory Control Constants Definition ----------
50 #define FLASH_ID1 0x08192A3B
51 #define FLASH_ID2 0x4C5D6E7F
52 #define FLASH_IDXOR 0x9C752FC2
53 #define FLASH_ADDR_CD0 0x5FFFFFFF
54 #define FLASH_ADDR_CD1 0x5F9A30D7
55 #define FLASH_ADDR_CDXOR 0xA498DF92
56 #define FLASH_ADDR_INIT 0x5FFFFF80
57 #define FLASH_CLR_PAGEBUF 0x6C930001
58 #define FLASH_CHIPER_WOPT 0xC1BE0555
59 #define FLASH_BULK_CODE 0x6C93A408
60 #define FLASH_MEM_PGM_CODE 0x6C93A400
61 #define FLASH_OPT_PGM_CODE 0x6C933800
62 
63 #define FLASH_START_ADDR (0x10000000)
64 #define FLASH_END_ADDR (0x1000FFFF)
65 #define CFG_OPT_SADDR (0x1FFFF200)
66 #define CFG_OPT_EADDR (0x1FFFF7FF)
67 #define SECTOR_SIZE_BYTE (0x80uL)
68 
69 //---------- Flash Erase/Write Code Constanst Definition ----------
70 #define FLASH_BULK_ERASE 0x9AB1E0F8
71 #define FLASH_PAGE_ERASE 0x190CD5A2
72 #define FLASH_PAGE_WRITE 0x54760F54
73 
74 //---------- Flash Procedure Good/Fail Constant Definition ----------
75 #define FLASH_PGM_GOOD 0x0uL
76 #define FLASH_PGM_FAIL 0x9uL
77 
78 //******************************************************************************
79 // Variable
80 //******************************************************************************
81 
82 extern uint32_t flash_id1_reg;
83 extern uint32_t flash_id2_reg;
84 extern uint32_t flash_addr_code0;
85 extern uint32_t flash_addr_code1;
86 
87 //******************************************************************************
88 // Function
89 //******************************************************************************
90 
91 void HAL_FMC_FlashEntry( void );
92 void HAL_FMC_FlashExit( void );
93 uint32_t HAL_FMC_FlashFunction( uint32_t u32FncSel, uint32_t u32Addr, uint32_t* u32Buf );
94 
95 uint32_t HAL_FMC_BulkErase( uint32_t u32UserId );
96 uint32_t HAL_FMC_PageErase( uint32_t u32UserId, uint32_t u32Addr );
97 uint32_t HAL_FMC_PageWrite( uint32_t u32UserId, uint32_t u32Addr, uint32_t* u32Buf );
98 
99 #ifdef __cplusplus
100 }
101 #endif
102 
103 #endif /* _FMC_H_ */
104 
void HAL_FMC_FlashExit(void)
Exit of Flash Memory Control.
uint32_t flash_id1_reg
uint32_t HAL_FMC_BulkErase(uint32_t u32UserId)
Flash Bulk(Chip) Erase Function.
uint32_t flash_addr_code0
uint32_t flash_addr_code1
uint32_t flash_id2_reg
uint32_t HAL_FMC_PageWrite(uint32_t u32UserId, uint32_t u32Addr, uint32_t *u32Buf)
Flash Page Write Function.
uint32_t HAL_FMC_FlashFunction(uint32_t u32FncSel, uint32_t u32Addr, uint32_t *u32Buf)
Flash Page Erase/Write and Bulk(Chip) Erase.
Contains the ABOV typedefs for C standard types. It is intended to be used in ISO C conforming develo...
void HAL_FMC_FlashEntry(void)
Entry of Flash Memory Control.
uint32_t HAL_FMC_PageErase(uint32_t u32UserId, uint32_t u32Addr)
Flash Page Erase Function.