114 #ifdef HAL_FLASH_MODULE_ENABLED 121 #define SECTOR_MASK ((uint32_t)0xFFFFFF07U) 122 #define FLASH_TIMEOUT_VALUE ((uint32_t)50000U) 142 static void FLASH_Program_DoubleWord(uint32_t Address, uint64_t Data);
143 static void FLASH_Program_Word(uint32_t Address, uint32_t Data);
144 static void FLASH_Program_HalfWord(uint32_t Address, uint16_t Data);
145 static void FLASH_Program_Byte(uint32_t Address, uint8_t Data);
146 static void FLASH_SetErrorCode(
void);
202 FLASH_Program_Byte(Address, (uint8_t) Data);
209 FLASH_Program_HalfWord(Address, (uint16_t) Data);
216 FLASH_Program_Word(Address, (uint32_t) Data);
223 FLASH_Program_DoubleWord(Address, Data);
279 FLASH_Program_Byte(Address, (uint8_t) Data);
286 FLASH_Program_HalfWord(Address, (uint16_t) Data);
293 FLASH_Program_Word(Address, (uint32_t) Data);
300 FLASH_Program_DoubleWord(Address, Data);
322 FLASH->CR &= SECTOR_MASK;
355 pFlash.
Sector = temp = 0xFFFFFFFFU;
403 pFlash.
Sector = 0xFFFFFFFFU;
422 FLASH_SetErrorCode();
622 uint32_t tickstart = 0;
637 if((Timeout == 0)||((
HAL_GetTick() - tickstart ) > Timeout))
648 FLASH_SetErrorCode();
669 static void FLASH_Program_DoubleWord(uint32_t Address, uint64_t Data)
679 *(
__IO uint64_t*)Address = Data;
699 static void FLASH_Program_Word(uint32_t Address, uint32_t Data)
709 *(
__IO uint32_t*)Address = Data;
728 static void FLASH_Program_HalfWord(uint32_t Address, uint16_t Data)
738 *(
__IO uint16_t*)Address = Data;
758 static void FLASH_Program_Byte(uint32_t Address, uint8_t Data)
768 *(
__IO uint8_t*)Address = Data;
779 static void FLASH_SetErrorCode(
void)
void FLASH_Erase_Sector(uint32_t Sector, uint8_t VoltageRange)
#define FLASH_FLAG_ERSERR
HAL_StatusTypeDef HAL_FLASH_OB_Lock(void)
#define assert_param(expr)
Include module's header file.
void HAL_FLASH_OperationErrorCallback(uint32_t ReturnValue)
#define __HAL_FLASH_GET_FLAG(__FLAG__)
Get the specified FLASH flag status.
#define __HAL_UNLOCK(__HANDLE__)
#define FLASH_TYPEPROGRAM_DOUBLEWORD
void HAL_FLASH_IRQHandler(void)
#define FLASH_FLAG_PGAERR
#define FLASH_PSIZE_HALF_WORD
#define FLASH_TYPEPROGRAM_WORD
__IO FLASH_ProcedureTypeDef ProcedureOnGoing
#define FLASH_FLAG_WRPERR
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.
#define FLASH_TYPEPROGRAM_BYTE
#define __HAL_LOCK(__HANDLE__)
#define __DSB()
Data Synchronization Barrier.
#define FLASH_OPTCR_OPTLOCK
__IO uint32_t NbSectorsToErase
#define HAL_FLASH_ERROR_NONE
This file contains all the functions prototypes for the HAL module driver.
HAL_StatusTypeDef FLASH_WaitForLastOperation(uint32_t Timeout)
uint32_t HAL_FLASH_GetError(void)
void HAL_FLASH_EndOfOperationCallback(uint32_t ReturnValue)
#define __HAL_FLASH_CLEAR_FLAG(__FLAG__)
Clear the specified FLASH flag.
#define FLASH_OPTCR_OPTSTRT
#define FLASH_TYPEPROGRAM_HALFWORD
#define HAL_FLASH_ERROR_PGA
HAL_StatusTypeDef HAL_FLASH_OB_Unlock(void)
#define FLASH_FLAG_PGPERR
#define IS_FLASH_ADDRESS(ADDRESS)
#define HAL_FLASH_ERROR_PGP
__IO uint8_t VoltageForErase
HAL_StatusTypeDef HAL_FLASH_Lock(void)
#define IS_FLASH_TYPEPROGRAM(VALUE)
#define HAL_FLASH_ERROR_OPERATION
HAL_StatusTypeDef HAL_FLASH_Unlock(void)
#define HAL_FLASH_ERROR_ERS
HAL_StatusTypeDef
HAL Status structures definition.
uint32_t HAL_GetTick(void)
Provides a tick value in millisecond.
#define HAL_FLASH_ERROR_WRP
HAL_StatusTypeDef HAL_FLASH_Program_IT(uint32_t TypeProgram, uint32_t Address, uint64_t Data)
#define __HAL_FLASH_ENABLE_IT(__INTERRUPT__)
Enable the specified FLASH interrupt.
#define __HAL_FLASH_DISABLE_IT(__INTERRUPT__)
Disable the specified FLASH interrupt.
#define FLASH_PSIZE_DOUBLE_WORD