21 #ifndef __STM32L4xx_HAL_FIREWALL_H 22 #define __STM32L4xx_HAL_FIREWALL_H 49 uint32_t CodeSegmentStartAddress;
52 uint32_t CodeSegmentLength;
55 uint32_t NonVDataSegmentStartAddress;
58 uint32_t NonVDataSegmentLength;
61 uint32_t VDataSegmentStartAddress;
64 uint32_t VDataSegmentLength;
67 uint32_t VolatileDataExecution;
71 uint32_t VolatileDataShared;
75 }FIREWALL_InitTypeDef;
91 #define FIREWALL_VOLATILEDATA_NOT_EXECUTABLE ((uint32_t)0x0000) 92 #define FIREWALL_VOLATILEDATA_EXECUTABLE ((uint32_t)FW_CR_VDE) 100 #define FIREWALL_VOLATILEDATA_NOT_SHARED ((uint32_t)0x0000) 101 #define FIREWALL_VOLATILEDATA_SHARED ((uint32_t)FW_CR_VDS) 109 #define FIREWALL_PRE_ARM_RESET ((uint32_t)0x0000) 110 #define FIREWALL_PRE_ARM_SET ((uint32_t)FW_CR_FPA) 124 #define IS_FIREWALL_CODE_SEGMENT_ADDRESS(ADDRESS) (((ADDRESS) >= FLASH_BASE) && ((ADDRESS) < (FLASH_BASE + FLASH_SIZE))) 125 #define IS_FIREWALL_CODE_SEGMENT_LENGTH(ADDRESS, LENGTH) (((ADDRESS) + (LENGTH)) <= (FLASH_BASE + FLASH_SIZE)) 127 #define IS_FIREWALL_NONVOLATILEDATA_SEGMENT_ADDRESS(ADDRESS) (((ADDRESS) >= FLASH_BASE) && ((ADDRESS) < (FLASH_BASE + FLASH_SIZE))) 128 #define IS_FIREWALL_NONVOLATILEDATA_SEGMENT_LENGTH(ADDRESS, LENGTH) (((ADDRESS) + (LENGTH)) <= (FLASH_BASE + FLASH_SIZE)) 130 #define IS_FIREWALL_VOLATILEDATA_SEGMENT_ADDRESS(ADDRESS) (((ADDRESS) >= SRAM1_BASE) && ((ADDRESS) < (SRAM1_BASE + SRAM1_SIZE_MAX))) 131 #define IS_FIREWALL_VOLATILEDATA_SEGMENT_LENGTH(ADDRESS, LENGTH) (((ADDRESS) + (LENGTH)) <= (SRAM1_BASE + SRAM1_SIZE_MAX)) 134 #define IS_FIREWALL_VOLATILEDATA_SHARE(SHARE) (((SHARE) == FIREWALL_VOLATILEDATA_NOT_SHARED) || \ 135 ((SHARE) == FIREWALL_VOLATILEDATA_SHARED)) 137 #define IS_FIREWALL_VOLATILEDATA_EXECUTE(EXECUTE) (((EXECUTE) == FIREWALL_VOLATILEDATA_NOT_EXECUTABLE) || \ 138 ((EXECUTE) == FIREWALL_VOLATILEDATA_EXECUTABLE)) 152 #define __HAL_FIREWALL_IS_ENABLED() HAL_IS_BIT_CLR(SYSCFG->CFGR1, SYSCFG_CFGR1_FWDIS) 165 #define __HAL_FIREWALL_PREARM_ENABLE() \ 167 __IO uint32_t tmpreg; \ 168 SET_BIT(FIREWALL->CR, FW_CR_FPA) ; \ 171 tmpreg = READ_BIT(FIREWALL->CR, FW_CR_FPA) ; \ 187 #define __HAL_FIREWALL_PREARM_DISABLE() \ 189 __IO uint32_t tmpreg; \ 190 CLEAR_BIT(FIREWALL->CR, FW_CR_FPA) ; \ 193 tmpreg = READ_BIT(FIREWALL->CR, FW_CR_FPA) ; \ 206 #define __HAL_FIREWALL_VOLATILEDATA_SHARED_ENABLE() \ 208 __IO uint32_t tmpreg; \ 209 SET_BIT(FIREWALL->CR, FW_CR_VDS) ; \ 212 tmpreg = READ_BIT(FIREWALL->CR, FW_CR_VDS) ; \ 226 #define __HAL_FIREWALL_VOLATILEDATA_SHARED_DISABLE() \ 228 __IO uint32_t tmpreg; \ 229 CLEAR_BIT(FIREWALL->CR, FW_CR_VDS) ; \ 232 tmpreg = READ_BIT(FIREWALL->CR, FW_CR_VDS) ; \ 248 #define __HAL_FIREWALL_VOLATILEDATA_EXECUTION_ENABLE() \ 250 __IO uint32_t tmpreg; \ 251 SET_BIT(FIREWALL->CR, FW_CR_VDE) ; \ 254 tmpreg = READ_BIT(FIREWALL->CR, FW_CR_VDE) ; \ 268 #define __HAL_FIREWALL_VOLATILEDATA_EXECUTION_DISABLE() \ 270 __IO uint32_t tmpreg; \ 271 CLEAR_BIT(FIREWALL->CR, FW_CR_VDE) ; \ 274 tmpreg = READ_BIT(FIREWALL->CR, FW_CR_VDE) ; \ 287 #define __HAL_FIREWALL_GET_VOLATILEDATA_SHARED() ((FIREWALL->CR & FW_CR_VDS) == FW_CR_VDS) 297 #define __HAL_FIREWALL_GET_VOLATILEDATA_EXECUTION() ((FIREWALL->CR & FW_CR_VDE) == FW_CR_VDE) 307 #define __HAL_FIREWALL_GET_PREARM() ((FIREWALL->CR & FW_CR_FPA) == FW_CR_FPA) void HAL_FIREWALL_GetConfig(FIREWALL_InitTypeDef *fw_config)
Retrieve the Firewall configuration.
void HAL_FIREWALL_DisablePreArmFlag(void)
Disable FIREWALL pre arm.
This file contains HAL common defines, enumeration, macros and structures definitions.
void HAL_FIREWALL_EnablePreArmFlag(void)
Enable FIREWALL pre arm.
void HAL_FIREWALL_EnableFirewall(void)
Enable FIREWALL.
HAL_StatusTypeDef HAL_FIREWALL_Config(FIREWALL_InitTypeDef *fw_init)
Initialize the Firewall according to the FIREWALL_InitTypeDef structure parameters.