STM32F769IDiscovery  1.00
uDANTE Audio Networking with STM32F7 DISCO board
stm32f7xx_hal_flash.h
Go to the documentation of this file.
1 
38 /* Define to prevent recursive inclusion -------------------------------------*/
39 #ifndef __STM32F7xx_HAL_FLASH_H
40 #define __STM32F7xx_HAL_FLASH_H
41 
42 #ifdef __cplusplus
43  extern "C" {
44 #endif
45 
46 /* Includes ------------------------------------------------------------------*/
47 #include "stm32f7xx_hal_def.h"
48 
57 /* Exported types ------------------------------------------------------------*/
65 typedef enum
66 {
72 
73 
77 typedef struct
78 {
79  __IO FLASH_ProcedureTypeDef ProcedureOnGoing; /* Internal variable to indicate which procedure is ongoing or not in IT context */
80 
81  __IO uint32_t NbSectorsToErase; /* Internal variable to save the remaining sectors to erase in IT context */
82 
83  __IO uint8_t VoltageForErase; /* Internal variable to provide voltage range selected by user in IT context */
84 
85  __IO uint32_t Sector; /* Internal variable to define the current sector which is erasing */
86 
87  __IO uint32_t Address; /* Internal variable to save address selected for program */
88 
89  HAL_LockTypeDef Lock; /* FLASH locking object */
90 
91  __IO uint32_t ErrorCode; /* FLASH error code */
92 
94 
99 /* Exported constants --------------------------------------------------------*/
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)
121 #define FLASH_TYPEPROGRAM_BYTE ((uint32_t)0x00U)
122 #define FLASH_TYPEPROGRAM_HALFWORD ((uint32_t)0x01U)
123 #define FLASH_TYPEPROGRAM_WORD ((uint32_t)0x02U)
124 #define FLASH_TYPEPROGRAM_DOUBLEWORD ((uint32_t)0x03U)
133 #define FLASH_FLAG_EOP FLASH_SR_EOP
134 #define FLASH_FLAG_OPERR FLASH_SR_OPERR
135 #define FLASH_FLAG_WRPERR FLASH_SR_WRPERR
136 #define FLASH_FLAG_PGAERR FLASH_SR_PGAERR
137 #define FLASH_FLAG_PGPERR FLASH_SR_PGPERR
138 #define FLASH_FLAG_ERSERR FLASH_SR_ERSERR
139 #define FLASH_FLAG_BSY FLASH_SR_BSY
148 #define FLASH_IT_EOP FLASH_CR_EOPIE
149 #define FLASH_IT_ERR ((uint32_t)0x02000000U)
157 #define FLASH_PSIZE_BYTE ((uint32_t)0x00000000U)
158 #define FLASH_PSIZE_HALF_WORD ((uint32_t)FLASH_CR_PSIZE_0)
159 #define FLASH_PSIZE_WORD ((uint32_t)FLASH_CR_PSIZE_1)
160 #define FLASH_PSIZE_DOUBLE_WORD ((uint32_t)FLASH_CR_PSIZE)
161 #define CR_PSIZE_MASK ((uint32_t)0xFFFFFCFFU)
162 
169 #define FLASH_KEY1 ((uint32_t)0x45670123U)
170 #define FLASH_KEY2 ((uint32_t)0xCDEF89ABU)
171 #define FLASH_OPT_KEY1 ((uint32_t)0x08192A3BU)
172 #define FLASH_OPT_KEY2 ((uint32_t)0x4C5D6E7FU)
173 
180 #define FLASH_SECTOR_0 ((uint32_t)0U)
181 #define FLASH_SECTOR_1 ((uint32_t)1U)
182 #define FLASH_SECTOR_2 ((uint32_t)2U)
183 #define FLASH_SECTOR_3 ((uint32_t)3U)
184 #define FLASH_SECTOR_4 ((uint32_t)4U)
185 #define FLASH_SECTOR_5 ((uint32_t)5U)
186 #define FLASH_SECTOR_6 ((uint32_t)6U)
187 #define FLASH_SECTOR_7 ((uint32_t)7U)
196 /* Exported macro ------------------------------------------------------------*/
197 
206 #define __HAL_FLASH_SET_LATENCY(__LATENCY__) \
207  MODIFY_REG(FLASH->ACR, FLASH_ACR_LATENCY, (uint32_t)(__LATENCY__))
208 
214 #define __HAL_FLASH_GET_LATENCY() (READ_BIT((FLASH->ACR), FLASH_ACR_LATENCY))
215 
220 #define __HAL_FLASH_PREFETCH_BUFFER_ENABLE() (FLASH->ACR |= FLASH_ACR_PRFTEN)
221 
226 #define __HAL_FLASH_PREFETCH_BUFFER_DISABLE() (FLASH->ACR &= (~FLASH_ACR_PRFTEN))
227 
233 #define __HAL_FLASH_ART_ENABLE() SET_BIT(FLASH->ACR, FLASH_ACR_ARTEN)
234 
239 #define __HAL_FLASH_ART_DISABLE() CLEAR_BIT(FLASH->ACR, FLASH_ACR_ARTEN)
240 
247 #define __HAL_FLASH_ART_RESET() (FLASH->ACR |= FLASH_ACR_ARTRST)
248 
257 #define __HAL_FLASH_ENABLE_IT(__INTERRUPT__) (FLASH->CR |= (__INTERRUPT__))
258 
267 #define __HAL_FLASH_DISABLE_IT(__INTERRUPT__) (FLASH->CR &= ~(uint32_t)(__INTERRUPT__))
268 
282 #define __HAL_FLASH_GET_FLAG(__FLAG__) ((FLASH->SR & (__FLAG__)))
283 
296 #define __HAL_FLASH_CLEAR_FLAG(__FLAG__) (FLASH->SR = (__FLAG__))
297 
301 /* Include FLASH HAL Extension module */
302 #include "stm32f7xx_hal_flash_ex.h"
303 
304 /* Exported functions --------------------------------------------------------*/
311 /* Program operation functions ***********************************************/
312 HAL_StatusTypeDef HAL_FLASH_Program(uint32_t TypeProgram, uint32_t Address, uint64_t Data);
313 HAL_StatusTypeDef HAL_FLASH_Program_IT(uint32_t TypeProgram, uint32_t Address, uint64_t Data);
314 /* FLASH IRQ handler method */
315 void HAL_FLASH_IRQHandler(void);
316 /* Callbacks in non blocking modes */
317 void HAL_FLASH_EndOfOperationCallback(uint32_t ReturnValue);
318 void HAL_FLASH_OperationErrorCallback(uint32_t ReturnValue);
326 /* Peripheral Control functions **********************************************/
331 /* Option bytes control */
340 /* Peripheral State functions ************************************************/
341 uint32_t HAL_FLASH_GetError(void);
350 /* Private types -------------------------------------------------------------*/
351 /* Private variables ---------------------------------------------------------*/
359 /* Private constants ---------------------------------------------------------*/
367 #define OPTCR_BYTE1_ADDRESS ((uint32_t)0x40023C15)
368 
373 /* Private macros ------------------------------------------------------------*/
381 #define IS_FLASH_TYPEPROGRAM(VALUE)(((VALUE) == FLASH_TYPEPROGRAM_BYTE) || \
382  ((VALUE) == FLASH_TYPEPROGRAM_HALFWORD) || \
383  ((VALUE) == FLASH_TYPEPROGRAM_WORD) || \
384  ((VALUE) == FLASH_TYPEPROGRAM_DOUBLEWORD))
385 
393 /* Private functions ---------------------------------------------------------*/
410 #ifdef __cplusplus
411 }
412 #endif
413 
414 #endif /* __STM32F7xx_HAL_FLASH_H */
415 
416 /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
HAL_StatusTypeDef HAL_FLASH_OB_Lock(void)
void HAL_FLASH_OperationErrorCallback(uint32_t ReturnValue)
HAL_LockTypeDef
HAL Lock structures definition.
void HAL_FLASH_IRQHandler(void)
__IO FLASH_ProcedureTypeDef ProcedureOnGoing
HAL_StatusTypeDef HAL_FLASH_OB_Launch(void)
HAL_StatusTypeDef HAL_FLASH_Program(uint32_t TypeProgram, uint32_t Address, uint64_t Data)
FLASH handle Structure definition.
__IO uint32_t NbSectorsToErase
Header file of FLASH HAL Extension module.
#define __IO
Definition: core_cm0.h:213
HAL_StatusTypeDef FLASH_WaitForLastOperation(uint32_t Timeout)
uint32_t HAL_FLASH_GetError(void)
void HAL_FLASH_EndOfOperationCallback(uint32_t ReturnValue)
FLASH_ProcedureTypeDef
FLASH Procedure structure definition.
HAL_StatusTypeDef HAL_FLASH_OB_Unlock(void)
HAL_StatusTypeDef HAL_FLASH_Lock(void)
This file contains HAL common defines, enumeration, macros and structures definitions.
HAL_StatusTypeDef HAL_FLASH_Unlock(void)
HAL_StatusTypeDef
HAL Status structures definition.
HAL_StatusTypeDef HAL_FLASH_Program_IT(uint32_t TypeProgram, uint32_t Address, uint64_t Data)