39#ifndef __STM32F4xx_HAL_FLASH_H
40#define __STM32F4xx_HAL_FLASH_H
71} FLASH_ProcedureTypeDef;
108#define HAL_FLASH_ERROR_NONE ((uint32_t)0x00000000)
109#define HAL_FLASH_ERROR_RD ((uint32_t)0x00000001)
110#define HAL_FLASH_ERROR_PGS ((uint32_t)0x00000002)
111#define HAL_FLASH_ERROR_PGP ((uint32_t)0x00000004)
112#define HAL_FLASH_ERROR_PGA ((uint32_t)0x00000008)
113#define HAL_FLASH_ERROR_WRP ((uint32_t)0x00000010)
114#define HAL_FLASH_ERROR_OPERATION ((uint32_t)0x00000020)
122#define FLASH_TYPEPROGRAM_BYTE ((uint32_t)0x00)
123#define FLASH_TYPEPROGRAM_HALFWORD ((uint32_t)0x01)
124#define FLASH_TYPEPROGRAM_WORD ((uint32_t)0x02)
125#define FLASH_TYPEPROGRAM_DOUBLEWORD ((uint32_t)0x03)
134#define FLASH_FLAG_EOP FLASH_SR_EOP
137#define FLASH_FLAG_OPERR FLASH_SR_OPERR
139#define FLASH_FLAG_OPERR FLASH_SR_SOP
141#define FLASH_FLAG_WRPERR FLASH_SR_WRPERR
142#define FLASH_FLAG_PGAERR FLASH_SR_PGAERR
143#define FLASH_FLAG_PGPERR FLASH_SR_PGPERR
144#define FLASH_FLAG_PGSERR FLASH_SR_PGSERR
145#define FLASH_FLAG_RDERR ((uint32_t)0x00000100)
146#define FLASH_FLAG_BSY FLASH_SR_BSY
155#define FLASH_IT_EOP FLASH_CR_EOPIE
156#define FLASH_IT_ERR ((uint32_t)0x02000000)
164#define FLASH_PSIZE_BYTE ((uint32_t)0x00000000)
165#define FLASH_PSIZE_HALF_WORD ((uint32_t)0x00000100)
166#define FLASH_PSIZE_WORD ((uint32_t)0x00000200)
167#define FLASH_PSIZE_DOUBLE_WORD ((uint32_t)0x00000300)
168#define CR_PSIZE_MASK ((uint32_t)0xFFFFFCFF)
176#define RDP_KEY ((uint16_t)0x00A5)
177#define FLASH_KEY1 ((uint32_t)0x45670123)
178#define FLASH_KEY2 ((uint32_t)0xCDEF89AB)
179#define FLASH_OPT_KEY1 ((uint32_t)0x08192A3B)
180#define FLASH_OPT_KEY2 ((uint32_t)0x4C5D6E7F)
199#define __HAL_FLASH_SET_LATENCY(__LATENCY__) (*(__IO uint8_t *)ACR_BYTE0_ADDRESS = (uint8_t)(__LATENCY__))
206#define __HAL_FLASH_GET_LATENCY() (READ_BIT((FLASH->ACR), FLASH_ACR_LATENCY))
212#define __HAL_FLASH_PREFETCH_BUFFER_ENABLE() (FLASH->ACR |= FLASH_ACR_PRFTEN)
218#define __HAL_FLASH_PREFETCH_BUFFER_DISABLE() (FLASH->ACR &= (~FLASH_ACR_PRFTEN))
224#define __HAL_FLASH_INSTRUCTION_CACHE_ENABLE() (FLASH->ACR |= FLASH_ACR_ICEN)
230#define __HAL_FLASH_INSTRUCTION_CACHE_DISABLE() (FLASH->ACR &= (~FLASH_ACR_ICEN))
236#define __HAL_FLASH_DATA_CACHE_ENABLE() (FLASH->ACR |= FLASH_ACR_DCEN)
242#define __HAL_FLASH_DATA_CACHE_DISABLE() (FLASH->ACR &= (~FLASH_ACR_DCEN))
249#define __HAL_FLASH_INSTRUCTION_CACHE_RESET() do {FLASH->ACR |= FLASH_ACR_ICRST; \
250 FLASH->ACR &= ~FLASH_ACR_ICRST; \
258#define __HAL_FLASH_DATA_CACHE_RESET() do {FLASH->ACR |= FLASH_ACR_DCRST; \
259 FLASH->ACR &= ~FLASH_ACR_DCRST; \
269#define __HAL_FLASH_ENABLE_IT(__INTERRUPT__) (FLASH->CR |= (__INTERRUPT__))
279#define __HAL_FLASH_DISABLE_IT(__INTERRUPT__) (FLASH->CR &= ~(uint32_t)(__INTERRUPT__))
295#define __HAL_FLASH_GET_FLAG(__FLAG__) ((FLASH->SR & (__FLAG__)))
310#define __HAL_FLASH_CLEAR_FLAG(__FLAG__) (FLASH->SR = (__FLAG__))
327HAL_StatusTypeDef
HAL_FLASH_Program(uint32_t TypeProgram, uint32_t Address, uint64_t Data);
382#define ACR_BYTE0_ADDRESS ((uint32_t)0x40023C00)
386#define OPTCR_BYTE0_ADDRESS ((uint32_t)0x40023C14)
390#define OPTCR_BYTE1_ADDRESS ((uint32_t)0x40023C15)
394#define OPTCR_BYTE2_ADDRESS ((uint32_t)0x40023C16)
398#define OPTCR_BYTE3_ADDRESS ((uint32_t)0x40023C17)
412#define IS_FLASH_TYPEPROGRAM(VALUE)(((VALUE) == FLASH_TYPEPROGRAM_BYTE) || \
413 ((VALUE) == FLASH_TYPEPROGRAM_HALFWORD) || \
414 ((VALUE) == FLASH_TYPEPROGRAM_WORD) || \
415 ((VALUE) == FLASH_TYPEPROGRAM_DOUBLEWORD))
void HAL_FLASH_IRQHandler(void)
This function handles FLASH interrupt request.
__weak void HAL_FLASH_OperationErrorCallback(uint32_t ReturnValue)
FLASH operation error interrupt callback.
__weak void HAL_FLASH_EndOfOperationCallback(uint32_t ReturnValue)
FLASH end of operation interrupt callback.
HAL_StatusTypeDef HAL_FLASH_Program_IT(uint32_t TypeProgram, uint32_t Address, uint64_t Data)
Program byte, halfword, word or double word at a specified address with interrupt enabled.
HAL_StatusTypeDef HAL_FLASH_Program(uint32_t TypeProgram, uint32_t Address, uint64_t Data)
Program byte, halfword, word or double word at a specified address.
HAL_StatusTypeDef HAL_FLASH_OB_Launch(void)
Launch the option byte loading.
HAL_StatusTypeDef HAL_FLASH_Unlock(void)
Unlock the FLASH control register access.
HAL_StatusTypeDef HAL_FLASH_OB_Lock(void)
Lock the FLASH Option Control Registers access.
HAL_StatusTypeDef HAL_FLASH_OB_Unlock(void)
Unlock the FLASH Option Control Registers access.
HAL_StatusTypeDef HAL_FLASH_Lock(void)
Locks the FLASH control register access.
uint32_t HAL_FLASH_GetError(void)
Get the specific FLASH error flag.
HAL_StatusTypeDef FLASH_WaitForLastOperation(uint32_t Timeout)
Wait for a FLASH operation to complete.
This file contains HAL common defines, enumeration, macros and structures definitions.
HAL_LockTypeDef
HAL Lock structures definition
Header file of FLASH HAL Extension module.
Header file of FLASH RAMFUNC driver.
FLASH handle Structure definition
__IO uint32_t NbSectorsToErase
__IO uint8_t VoltageForErase
__IO FLASH_ProcedureTypeDef ProcedureOnGoing