57 #ifdef HAL_FIREWALL_MODULE_ENABLED 112 __HAL_RCC_FIREWALL_CLK_ENABLE();
115 if (__HAL_FIREWALL_IS_ENABLED() != RESET)
122 if (fw_init->CodeSegmentLength != 0U)
124 assert_param(IS_FIREWALL_CODE_SEGMENT_ADDRESS(fw_init->CodeSegmentStartAddress));
125 assert_param(IS_FIREWALL_CODE_SEGMENT_LENGTH(fw_init->CodeSegmentStartAddress, fw_init->CodeSegmentLength));
127 if (fw_init->NonVDataSegmentLength < 0x100U)
133 if (fw_init->NonVDataSegmentLength != 0U)
135 assert_param(IS_FIREWALL_NONVOLATILEDATA_SEGMENT_ADDRESS(fw_init->NonVDataSegmentStartAddress));
136 assert_param(IS_FIREWALL_NONVOLATILEDATA_SEGMENT_LENGTH(fw_init->NonVDataSegmentStartAddress, fw_init->NonVDataSegmentLength));
139 if (fw_init->VDataSegmentLength != 0U)
141 assert_param(IS_FIREWALL_VOLATILEDATA_SEGMENT_ADDRESS(fw_init->VDataSegmentStartAddress));
142 assert_param(IS_FIREWALL_VOLATILEDATA_SEGMENT_LENGTH(fw_init->VDataSegmentStartAddress, fw_init->VDataSegmentLength));
146 assert_param(IS_FIREWALL_VOLATILEDATA_EXECUTE(fw_init->VolatileDataExecution));
147 assert_param(IS_FIREWALL_VOLATILEDATA_SHARE(fw_init->VolatileDataShared));
153 WRITE_REG(FIREWALL->CSSA, (FW_CSSA_ADD & fw_init->CodeSegmentStartAddress));
155 WRITE_REG(FIREWALL->CSL, (FW_CSL_LENG & fw_init->CodeSegmentLength));
158 WRITE_REG(FIREWALL->NVDSSA, (FW_NVDSSA_ADD & fw_init->NonVDataSegmentStartAddress));
160 WRITE_REG(FIREWALL->NVDSL, (FW_NVDSL_LENG & fw_init->NonVDataSegmentLength));
163 WRITE_REG(FIREWALL->VDSSA, (FW_VDSSA_ADD & fw_init->VDataSegmentStartAddress));
165 WRITE_REG(FIREWALL->VDSL, (FW_VDSL_LENG & fw_init->VDataSegmentLength));
169 MODIFY_REG(FIREWALL->CR, FW_CR_VDS|FW_CR_VDE, fw_init->VolatileDataExecution|fw_init->VolatileDataShared);
189 __HAL_RCC_FIREWALL_CLK_ENABLE();
192 fw_config->CodeSegmentStartAddress = (READ_REG(FIREWALL->CSSA) & FW_CSSA_ADD);
193 fw_config->CodeSegmentLength = (READ_REG(FIREWALL->CSL) & FW_CSL_LENG);
196 fw_config->NonVDataSegmentStartAddress = (READ_REG(FIREWALL->NVDSSA) & FW_NVDSSA_ADD);
197 fw_config->NonVDataSegmentLength = (READ_REG(FIREWALL->NVDSL) & FW_NVDSL_LENG);
200 fw_config->VDataSegmentStartAddress = (READ_REG(FIREWALL->VDSSA) & FW_VDSSA_ADD);
201 fw_config->VDataSegmentLength = (READ_REG(FIREWALL->VDSL) & FW_VDSL_LENG);
204 fw_config->VolatileDataExecution = (READ_REG(FIREWALL->CR) & FW_CR_VDE);
207 fw_config->VolatileDataShared = (READ_REG(FIREWALL->CR) & FW_CR_VDS);
224 CLEAR_BIT(SYSCFG->CFGR1, SYSCFG_CFGR1_FWDIS);
249 SET_BIT(FIREWALL->CR, 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 all the functions prototypes for the HAL module driver.
CLEAR_BIT(hrtc->Instance->CR, RTC_CR_WUTE)
void HAL_FIREWALL_EnablePreArmFlag(void)
Enable FIREWALL pre arm.
void HAL_FIREWALL_EnableFirewall(void)
Enable FIREWALL.
MODIFY_REG(hrtc->Instance->CR, RTC_CR_WUCKSEL,(uint32_t) WakeUpClock)
HAL_StatusTypeDef HAL_FIREWALL_Config(FIREWALL_InitTypeDef *fw_init)
Initialize the Firewall according to the FIREWALL_InitTypeDef structure parameters.
assert_param(IS_RTC_WAKEUP_CLOCK(WakeUpClock))