39#ifndef __STM32F7xx_HAL_FLASH_H
40#define __STM32F7xx_HAL_FLASH_H
71} FLASH_ProcedureTypeDef;
79 __IO FLASH_ProcedureTypeDef ProcedureOnGoing;
81 __IO uint32_t NbSectorsToErase;
83 __IO uint8_t VoltageForErase;
87 __IO uint32_t Address;
91 __IO uint32_t ErrorCode;
108#define HAL_FLASH_ERROR_NONE ((uint32_t)0x00000000U)
109#define HAL_FLASH_ERROR_ERS ((uint32_t)0x00000002U)
110#define HAL_FLASH_ERROR_PGP ((uint32_t)0x00000004U)
111#define HAL_FLASH_ERROR_PGA ((uint32_t)0x00000008U)
112#define HAL_FLASH_ERROR_WRP ((uint32_t)0x00000010U)
113#define HAL_FLASH_ERROR_OPERATION ((uint32_t)0x00000020U)
114#define HAL_FLASH_ERROR_RD ((uint32_t)0x00000040U)
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_OPERR
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_ERSERR FLASH_SR_ERSERR
140#define FLASH_FLAG_BSY FLASH_SR_BSY
142#if defined (FLASH_OPTCR2_PCROP)
143#define FLASH_FLAG_RDERR FLASH_SR_RDERR
144#define FLASH_FLAG_ALL_ERRORS (FLASH_FLAG_OPERR | FLASH_FLAG_WRPERR | FLASH_FLAG_PGAERR | \
145 FLASH_FLAG_PGPERR | FLASH_FLAG_ERSERR | FLASH_FLAG_RDERR)
147#define FLASH_FLAG_ALL_ERRORS (FLASH_FLAG_OPERR | FLASH_FLAG_WRPERR | FLASH_FLAG_PGAERR | \
148 FLASH_FLAG_PGPERR | FLASH_FLAG_ERSERR)
158#define FLASH_IT_EOP FLASH_CR_EOPIE
159#define FLASH_IT_ERR ((uint32_t)0x02000000U)
167#define FLASH_PSIZE_BYTE ((uint32_t)0x00000000U)
168#define FLASH_PSIZE_HALF_WORD ((uint32_t)FLASH_CR_PSIZE_0)
169#define FLASH_PSIZE_WORD ((uint32_t)FLASH_CR_PSIZE_1)
170#define FLASH_PSIZE_DOUBLE_WORD ((uint32_t)FLASH_CR_PSIZE)
171#define CR_PSIZE_MASK ((uint32_t)0xFFFFFCFFU)
179#define FLASH_KEY1 ((uint32_t)0x45670123U)
180#define FLASH_KEY2 ((uint32_t)0xCDEF89ABU)
181#define FLASH_OPT_KEY1 ((uint32_t)0x08192A3BU)
182#define FLASH_OPT_KEY2 ((uint32_t)0x4C5D6E7FU)
190#define FLASH_SECTOR_0 ((uint32_t)0U)
191#define FLASH_SECTOR_1 ((uint32_t)1U)
192#define FLASH_SECTOR_2 ((uint32_t)2U)
193#define FLASH_SECTOR_3 ((uint32_t)3U)
194#define FLASH_SECTOR_4 ((uint32_t)4U)
195#define FLASH_SECTOR_5 ((uint32_t)5U)
196#define FLASH_SECTOR_6 ((uint32_t)6U)
197#define FLASH_SECTOR_7 ((uint32_t)7U)
216#define __HAL_FLASH_SET_LATENCY(__LATENCY__) \
217 MODIFY_REG(FLASH->ACR, FLASH_ACR_LATENCY, (uint32_t)(__LATENCY__))
224#define __HAL_FLASH_GET_LATENCY() (READ_BIT((FLASH->ACR), FLASH_ACR_LATENCY))
230#define __HAL_FLASH_PREFETCH_BUFFER_ENABLE() (FLASH->ACR |= FLASH_ACR_PRFTEN)
236#define __HAL_FLASH_PREFETCH_BUFFER_DISABLE() (FLASH->ACR &= (~FLASH_ACR_PRFTEN))
243#define __HAL_FLASH_ART_ENABLE() SET_BIT(FLASH->ACR, FLASH_ACR_ARTEN)
249#define __HAL_FLASH_ART_DISABLE() CLEAR_BIT(FLASH->ACR, FLASH_ACR_ARTEN)
257#define __HAL_FLASH_ART_RESET() (FLASH->ACR |= FLASH_ACR_ARTRST)
267#define __HAL_FLASH_ENABLE_IT(__INTERRUPT__) (FLASH->CR |= (__INTERRUPT__))
277#define __HAL_FLASH_DISABLE_IT(__INTERRUPT__) (FLASH->CR &= ~(uint32_t)(__INTERRUPT__))
292#define __HAL_FLASH_GET_FLAG(__FLAG__) ((FLASH->SR & (__FLAG__)))
306#define __HAL_FLASH_CLEAR_FLAG(__FLAG__) (FLASH->SR = (__FLAG__))
322HAL_StatusTypeDef
HAL_FLASH_Program(uint32_t TypeProgram, uint32_t Address, uint64_t Data);
377#define OPTCR_BYTE1_ADDRESS ((uint32_t)0x40023C15)
391#define IS_FLASH_TYPEPROGRAM(VALUE)(((VALUE) == FLASH_TYPEPROGRAM_BYTE) || \
392 ((VALUE) == FLASH_TYPEPROGRAM_HALFWORD) || \
393 ((VALUE) == FLASH_TYPEPROGRAM_WORD) || \
394 ((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.
HAL_LockTypeDef
HAL Lock structures definition
This file contains HAL common defines, enumeration, macros and structures definitions.
Header file of FLASH HAL Extension module.
FLASH handle Structure definition