39 #ifndef __STM32F4xx_HAL_FLASH_H 40 #define __STM32F4xx_HAL_FLASH_H 78 __IO FLASH_ProcedureTypeDef ProcedureOnGoing;
80 __IO uint32_t NbSectorsToErase;
82 __IO uint8_t VoltageForErase;
88 __IO uint32_t Address;
92 __IO uint32_t ErrorCode;
108 #define HAL_FLASH_ERROR_NONE ((uint32_t)0x00000000U) 109 #define HAL_FLASH_ERROR_RD ((uint32_t)0x00000001U) 110 #define HAL_FLASH_ERROR_PGS ((uint32_t)0x00000002U) 111 #define HAL_FLASH_ERROR_PGP ((uint32_t)0x00000004U) 112 #define HAL_FLASH_ERROR_PGA ((uint32_t)0x00000008U) 113 #define HAL_FLASH_ERROR_WRP ((uint32_t)0x00000010U) 114 #define HAL_FLASH_ERROR_OPERATION ((uint32_t)0x00000020U) 122 #define FLASH_TYPEPROGRAM_BYTE ((uint32_t)0x00U) 123 #define FLASH_TYPEPROGRAM_HALFWORD ((uint32_t)0x01U) 124 #define FLASH_TYPEPROGRAM_WORD ((uint32_t)0x02U) 125 #define FLASH_TYPEPROGRAM_DOUBLEWORD ((uint32_t)0x03U) 134 #define FLASH_FLAG_EOP FLASH_SR_EOP 135 #define FLASH_FLAG_OPERR FLASH_SR_SOP 136 #define FLASH_FLAG_WRPERR FLASH_SR_WRPERR 137 #define FLASH_FLAG_PGAERR FLASH_SR_PGAERR 138 #define FLASH_FLAG_PGPERR FLASH_SR_PGPERR 139 #define FLASH_FLAG_PGSERR FLASH_SR_PGSERR 140 #define FLASH_FLAG_RDERR ((uint32_t)0x00000100U) 141 #define FLASH_FLAG_BSY FLASH_SR_BSY 150 #define FLASH_IT_EOP FLASH_CR_EOPIE 151 #define FLASH_IT_ERR ((uint32_t)0x02000000U) 159 #define FLASH_PSIZE_BYTE ((uint32_t)0x00000000U) 160 #define FLASH_PSIZE_HALF_WORD ((uint32_t)0x00000100U) 161 #define FLASH_PSIZE_WORD ((uint32_t)0x00000200U) 162 #define FLASH_PSIZE_DOUBLE_WORD ((uint32_t)0x00000300U) 163 #define CR_PSIZE_MASK ((uint32_t)0xFFFFFCFFU) 171 #define RDP_KEY ((uint16_t)0x00A5U) 172 #define FLASH_KEY1 ((uint32_t)0x45670123U) 173 #define FLASH_KEY2 ((uint32_t)0xCDEF89ABU) 174 #define FLASH_OPT_KEY1 ((uint32_t)0x08192A3BU) 175 #define FLASH_OPT_KEY2 ((uint32_t)0x4C5D6E7FU) 194 #define __HAL_FLASH_SET_LATENCY(__LATENCY__) (*(__IO uint8_t *)ACR_BYTE0_ADDRESS = (uint8_t)(__LATENCY__)) 201 #define __HAL_FLASH_GET_LATENCY() (READ_BIT((FLASH->ACR), FLASH_ACR_LATENCY)) 207 #define __HAL_FLASH_PREFETCH_BUFFER_ENABLE() (FLASH->ACR |= FLASH_ACR_PRFTEN) 213 #define __HAL_FLASH_PREFETCH_BUFFER_DISABLE() (FLASH->ACR &= (~FLASH_ACR_PRFTEN)) 219 #define __HAL_FLASH_INSTRUCTION_CACHE_ENABLE() (FLASH->ACR |= FLASH_ACR_ICEN) 225 #define __HAL_FLASH_INSTRUCTION_CACHE_DISABLE() (FLASH->ACR &= (~FLASH_ACR_ICEN)) 231 #define __HAL_FLASH_DATA_CACHE_ENABLE() (FLASH->ACR |= FLASH_ACR_DCEN) 237 #define __HAL_FLASH_DATA_CACHE_DISABLE() (FLASH->ACR &= (~FLASH_ACR_DCEN)) 244 #define __HAL_FLASH_INSTRUCTION_CACHE_RESET() do {FLASH->ACR |= FLASH_ACR_ICRST; \ 245 FLASH->ACR &= ~FLASH_ACR_ICRST; \ 253 #define __HAL_FLASH_DATA_CACHE_RESET() do {FLASH->ACR |= FLASH_ACR_DCRST; \ 254 FLASH->ACR &= ~FLASH_ACR_DCRST; \ 264 #define __HAL_FLASH_ENABLE_IT(__INTERRUPT__) (FLASH->CR |= (__INTERRUPT__)) 274 #define __HAL_FLASH_DISABLE_IT(__INTERRUPT__) (FLASH->CR &= ~(uint32_t)(__INTERRUPT__)) 290 #define __HAL_FLASH_GET_FLAG(__FLAG__) ((FLASH->SR & (__FLAG__))==(__FLAG__)) 305 #define __HAL_FLASH_CLEAR_FLAG(__FLAG__) (FLASH->SR = (__FLAG__)) 322 HAL_StatusTypeDef HAL_FLASH_Program(uint32_t TypeProgram, uint32_t Address, uint64_t Data);
323 HAL_StatusTypeDef HAL_FLASH_Program_IT(uint32_t TypeProgram, uint32_t Address, uint64_t Data);
325 void HAL_FLASH_IRQHandler(
void);
327 void HAL_FLASH_EndOfOperationCallback(uint32_t ReturnValue);
328 void HAL_FLASH_OperationErrorCallback(uint32_t ReturnValue);
351 uint32_t HAL_FLASH_GetError(
void);
377 #define ACR_BYTE0_ADDRESS ((uint32_t)0x40023C00U) 381 #define OPTCR_BYTE0_ADDRESS ((uint32_t)0x40023C14U) 385 #define OPTCR_BYTE1_ADDRESS ((uint32_t)0x40023C15U) 389 #define OPTCR_BYTE2_ADDRESS ((uint32_t)0x40023C16U) 393 #define OPTCR_BYTE3_ADDRESS ((uint32_t)0x40023C17U) 407 #define IS_FLASH_TYPEPROGRAM(VALUE)(((VALUE) == FLASH_TYPEPROGRAM_BYTE) || \ 408 ((VALUE) == FLASH_TYPEPROGRAM_HALFWORD) || \ 409 ((VALUE) == FLASH_TYPEPROGRAM_WORD) || \ 410 ((VALUE) == FLASH_TYPEPROGRAM_DOUBLEWORD)) This file contains HAL common defines, enumeration, macros and structures definitions.
Header file of FLASH RAMFUNC driver.
FLASH handle Structure definition.
Definition: stm32f4xx_hal_flash.h:76
HAL_StatusTypeDef
HAL Status structures definition.
Definition: stm32f4xx_hal_def.h:57
#define __IO
Definition: core_cm0.h:213
Header file of FLASH HAL Extension module.
FLASH_ProcedureTypeDef
FLASH Procedure structure definition.
Definition: stm32f4xx_hal_flash.h:65
HAL_LockTypeDef
HAL Lock structures definition.
Definition: stm32f4xx_hal_def.h:68