43 #if defined(USE_FULL_DDL_DRIVER)
52 #define ASSERT_PARAM(_PARAM_) ((void)0U)
69#define DDL_FLASH_TIMEOUT_VALUE 500000U
71#define IS_DDL_FLASH_ERASE_TYPE(__REG_ERASE_TYPE__) \
72 (((__REG_ERASE_TYPE__) == FLASH_DDL_CHIP_ERASE_TYPE_SECTOR) \
73 || ((__REG_ERASE_TYPE__) == FLASH_DDL_CHIP_ERASE_TYPE_BLOCK) \
74 || ((__REG_ERASE_TYPE__) == FLASH_DDL_CHIP_ERASE_TYPE_MAIN) \
77#define IS_DDL_FLASH_MAIN_BASE_ADDRESS(__BASE_ADDRESS__) \
78 (((__BASE_ADDRESS__ >= 0x08000000UL) && (__BASE_ADDRESS__ <= 0x0801FFFFUL)) ? 1UL : 0UL)
80#define IS_DDL_FLASH_SYSINFO_BASE_ADDRESS(__BASE_ADDRESS__) \
81 (((__BASE_ADDRESS__ >= 0x08020000UL) && (__BASE_ADDRESS__ <= 0x080203FFUL)) ? 1UL : 0UL)
83#define IS_DDL_FLASH_READ_PROTECTION_LEVEL(__LEVEL__) \
84 (((__LEVEL__) == DDL_FLASH_READ_PROTECTION_LEVEL_0) \
85 || ((__LEVEL__) == DDL_FLASH_READ_PROTECTION_LEVEL_1) \
86 || ((__LEVEL__) == DDL_FLASH_READ_PROTECTION_LEVEL_2) \
89#define IS_DDL_FLASH_IWDT_SOFTWARE_ENABLE(__SOFTWARE_ENABLE__) \
90 (((__SOFTWARE_ENABLE__) == DDL_FLASH_IWDT_ENABLE_HARDWARE) \
91 || ((__SOFTWARE_ENABLE__) == DDL_FLASH_IWDT_ENABLE_SOFTWARE) \
94#define IS_DDL_FLASH_WWDT_SOFTWARE_ENABLE(__SOFTWARE_ENABLE__) \
95 (((__SOFTWARE_ENABLE__) == DDL_FLASH_WWDT_ENABLE_HARDWARE) \
96 || ((__SOFTWARE_ENABLE__) == DDL_FLASH_WWDT_ENABLE_SOFTWARE) \
99#define IS_DDL_FLASH_WRITE_PROTECTION(__WRITE_PROTECTION__) \
100 (((__WRITE_PROTECTION__) == DDL_FLASH_WRITE_PROTECTION_DISABLE) \
101 || ((__WRITE_PROTECTION__) == DDL_FLASH_WRITE_PROTECTION_ENABLE) \
104#define IS_DDL_FLASH_NMI_ENABLE(__NMIEN__) \
105 (((__NMIEN__) == DDL_FLASH_NMI_DISABLE) \
106 || ((__NMIEN__) == DDL_FLASH_NMI_ENABLE) \
109#define IS_DDL_FLASH_ADC_TRIM(__TRIM__) \
110 (((__TRIM__) == DDL_FLASH_ADC_TRIM_SOFTWARE) \
111 || ((__TRIM__) == DDL_FLASH_ADC_TRIM_HARDWARE) \
114#define IS_DDL_FLASH_WRITE_PROTECTION_SECTORS(__SECTORS__) \
115 (((__SECTORS__) == DDL_FLASH_SECTOR_NONE) \
116 || ((__SECTORS__) == DDL_FLASH_SECTOR_0_31) \
117 || ((__SECTORS__) == DDL_FLASH_SECTOR_32_63) \
118 || ((__SECTORS__) == DDL_FLASH_SECTOR_64_95) \
119 || ((__SECTORS__) == DDL_FLASH_SECTOR_96_127) \
120 || ((__SECTORS__) == DDL_FLASH_SECTOR_128_159) \
121 || ((__SECTORS__) == DDL_FLASH_SECTOR_160_191) \
122 || ((__SECTORS__) == DDL_FLASH_SECTOR_192_223) \
123 || ((__SECTORS__) == DDL_FLASH_SECTOR_224_255) \
155 ErrorStatus status = SUCCESS;
231 for (uint32_t i = 0; i < length; i++)
233 data[i] = *((uint32_t *)(baseAddr + i *
sizeof(uint32_t)));
246 for (uint32_t i = 0; i < length; i++)
248 *((uint32_t *)(baseAddr + i *
sizeof(uint32_t))) = data[i];
267 FLASH_OPT_InitStruct->
bootAddr = 0x4000;
281 ErrorStatus status = SUCCESS;
293 (void)*((
volatile uint32_t *)0x1FFF0000U);
311 MODIFY_REG(FLASH->OBCR1,
313 | FLASH_OBCR1_IWDTSWBF \
314 | FLASH_OBCR1_WWDTSWBF \
315 | FLASH_OBCR1_WLOCKENBF \
316 | FLASH_OBCR1_NMIDISWBF \
317 | FLASH_OBCR1_ADTSLOADWBF \
318 | FLASH_OBCR1_WLOCKBF ,
323 | FLASH_OPT_InitStruct->
adcTrim \
337 MODIFY_REG(FLASH->OBCR2, FLASH_OBCR2_BOOTADDRBF, FLASH_OPT_InitStruct->
bootAddr);
383 ErrorStatus status = SUCCESS;
393 for (uint32_t i = 0; i < numWords; i++)
405 *((uint32_t*)(baseAddr + i *
sizeof(uint32_t))) = data[i];
G32 assert template file. This file should be copied to the application folder and renamed to g32_ass...
#define ASSERT_PARAM(_PARAM_)
Header file of FLASH DDL module.
Header file of RCM DDL module.
#define DDL_FLASH_IWDT_ENABLE_SOFTWARE
#define DDL_FLASH_READ_PROTECTION_LEVEL_1
#define DDL_FLASH_SECTOR_NONE
#define DDL_FLASH_WRITE_PROTECTION_DISABLE
#define DDL_FLASH_WWDT_ENABLE_SOFTWARE
#define DDL_FLASH_NMI_DISABLE
#define DDL_FLASH_ADC_TRIM_SOFTWARE
__STATIC_INLINE void DDL_FLASH_SetErasureType(uint32_t type)
Types of chip erasure configuration.
__STATIC_INLINE void DDL_FLASH_EnableErasure(void)
Start erasure.
__STATIC_INLINE uint32_t DDL_FLASH_GetBootAddrTransferActualAddress(void)
Retrieve the data in the BOOTADDR option byte, which corresponds to the converted address.
__STATIC_INLINE void DDL_FLASH_OptionByteForcedUpdate(void)
Forced update of the options byte.
__STATIC_INLINE void DDL_FLASH_OptionByteUpdate(void)
Byte programming options.
__STATIC_INLINE void DDL_FLASH_EnableProgram(void)
Start program.
__STATIC_INLINE uint32_t DDL_FLASH_IsActiveFlag_PRD(void)
Programming completed flag.
__STATIC_INLINE uint32_t DDL_FLASH_IsActiveFlag_OPBPRD(void)
The optionbyte programming completion flag.
__STATIC_INLINE void DDL_FLASH_ClearFlag_PRD(void)
Clear programming completed flag.
__STATIC_INLINE uint32_t DDL_FLASH_IsActiveFlag_MAINUNLOCK(void)
Locking flag for main area.
__STATIC_INLINE uint32_t DDL_FLASH_IsActiveFlag_WRPRTERR(void)
Write protection error flag.
__STATIC_INLINE uint32_t DDL_FLASH_IsActiveFlag_ERD(void)
Erase completed flag.
__STATIC_INLINE uint32_t DDL_FLASH_IsActiveFlag_OPUNLOCK(void)
Locking flag for option byte area.
__STATIC_INLINE uint32_t DDL_FLASH_IsActiveFlag_BUSY(void)
FLASH erasing busy flag.
__STATIC_INLINE uint32_t DDL_FLASH_IsActiveFlag_WADRERR(void)
Incorrect address write flag.
__STATIC_INLINE void DDL_FLASH_ClearFlag_ERD(void)
Clear erase completed flag.
ErrorStatus DDL_FLASH_EraseMain(uint32_t type, uint32_t baseAddr)
Erase the main area of the flash.
void DDL_FLASH_ReadData(uint32_t baseAddr, uint32_t *data, uint32_t length)
Erase the systemInfo area of the flash.
ErrorStatus DDL_FLASH_MainProgram(uint32_t baseAddr, uint32_t *data, uint32_t numWords)
Program the systemInfo area of the flash.
void DDL_FLASH_WriteData(uint32_t baseAddr, uint32_t *data, uint32_t length)
Erase the systemInfo area of the flash.
void DDL_FLASH_OPT_StructInit(DDL_FLASH_OPT_InitTypeDef *FLASH_OPT_InitStruct)
Set each DDL_FLASH_OPT_InitTypeDef field to default value.
ErrorStatus DDL_FLASH_OptionByteProgram(DDL_FLASH_OPT_InitTypeDef *FLASH_OPT_InitStruct)
Flash option byte programming.
#define IS_DDL_FLASH_READ_PROTECTION_LEVEL(__LEVEL__)
#define IS_DDL_FLASH_WRITE_PROTECTION_SECTORS(__SECTORS__)
#define IS_DDL_FLASH_ADC_TRIM(__TRIM__)
#define IS_DDL_FLASH_IWDT_SOFTWARE_ENABLE(__SOFTWARE_ENABLE__)
#define IS_DDL_FLASH_WWDT_SOFTWARE_ENABLE(__SOFTWARE_ENABLE__)
#define DDL_FLASH_TIMEOUT_VALUE
#define IS_DDL_FLASH_MAIN_BASE_ADDRESS(__BASE_ADDRESS__)
#define IS_DDL_FLASH_NMI_ENABLE(__NMIEN__)
#define IS_DDL_FLASH_WRITE_PROTECTION(__WRITE_PROTECTION__)
#define IS_DDL_FLASH_ERASE_TYPE(__REG_ERASE_TYPE__)
#define __DDL_FLASH_WRITE_TO_ADDRESS(__ADDR__, __DATA__)
#define __DDL_FLASH_IS_VALID_BOOT_ADDRESS(__TRNS_BOOT_ADDR__)
Flash Options Byte Structure definition.
uint32_t readProtectionLevel
uint32_t wwdtSoftwareEnable
uint32_t writeProtectionEnable
uint32_t writeProtectionSectors
uint32_t iwdtSoftwareEnable