Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependents: hello SerialTestv11 SerialTestv12 Sierpinski ... more
Diff: TARGET_NUCLEO_L152RE/stm32l1xx_hal_flash.h
- Revision:
- 122:f9eeca106725
- Parent:
- 90:cb3d968589d8
diff -r 6c34061e7c34 -r f9eeca106725 TARGET_NUCLEO_L152RE/stm32l1xx_hal_flash.h
--- a/TARGET_NUCLEO_L152RE/stm32l1xx_hal_flash.h Wed May 25 16:44:06 2016 +0100
+++ b/TARGET_NUCLEO_L152RE/stm32l1xx_hal_flash.h Thu Jul 07 14:34:11 2016 +0100
@@ -2,13 +2,13 @@
******************************************************************************
* @file stm32l1xx_hal_flash.h
* @author MCD Application Team
- * @version V1.0.0
- * @date 5-September-2014
+ * @version V1.1.3
+ * @date 04-March-2016
* @brief Header file of Flash HAL module.
******************************************************************************
* @attention
- *
- * <h2><center>© COPYRIGHT(c) 2014 STMicroelectronics</center></h2>
+ *
+ * <h2><center>© COPYRIGHT(c) 2016 STMicroelectronics</center></h2>
*
* Redistribution and use in source and binary forms, with or without modification,
* are permitted provided that the following conditions are met:
@@ -32,8 +32,8 @@
* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*
- ******************************************************************************
- */
+ ******************************************************************************
+ */
/* Define to prevent recursive inclusion -------------------------------------*/
#ifndef __STM32L1xx_HAL_FLASH_H
@@ -45,44 +45,50 @@
/* Includes ------------------------------------------------------------------*/
#include "stm32l1xx_hal_def.h"
-
+
/** @addtogroup STM32L1xx_HAL_Driver
* @{
*/
/** @addtogroup FLASH
* @{
- */
+ */
+
+/** @addtogroup FLASH_Private_Constants
+ * @{
+ */
+#define FLASH_TIMEOUT_VALUE ((uint32_t)50000)/* 50 s */
+/**
+ * @}
+ */
+
+/** @addtogroup FLASH_Private_Macros
+ * @{
+ */
+
+#define IS_FLASH_TYPEPROGRAM(_VALUE_) (((_VALUE_) == FLASH_TYPEPROGRAM_WORD))
+
+#define IS_FLASH_LATENCY(__LATENCY__) (((__LATENCY__) == FLASH_LATENCY_0) || \
+ ((__LATENCY__) == FLASH_LATENCY_1))
+
+/**
+ * @}
+ */
/* Exported types ------------------------------------------------------------*/
-
/** @defgroup FLASH_Exported_Types FLASH Exported Types
* @{
*/
-/**
- * @brief FLASH Error structure definition
- */
-typedef enum
-{
- FLASH_ERROR_SIZE = 0x01,
- FLASH_ERROR_OPTV = 0x02,
- FLASH_ERROR_OPTVUSR = 0x04,
- FLASH_ERROR_PGA = 0x08,
- FLASH_ERROR_WRP = 0x10,
- FLASH_ERROR_RD = 0x20,
- FLASH_ERROR_OPERATION = 0x40
-}FLASH_ErrorTypeDef;
-
/**
* @brief FLASH Procedure structure definition
*/
typedef enum
{
- FLASH_PROC_NONE = 0,
- FLASH_PROC_PAGEERASE,
- FLASH_PROC_PROGRAM
+ FLASH_PROC_NONE = 0,
+ FLASH_PROC_PAGEERASE = 1,
+ FLASH_PROC_PROGRAM = 2,
} FLASH_ProcedureTypeDef;
/**
@@ -90,70 +96,74 @@
*/
typedef struct
{
- __IO FLASH_ProcedureTypeDef ProcedureOnGoing; /*Internal variable to indicate which procedure is ongoing or not in IT context*/
-
- __IO uint32_t NbPagesToErase; /*Internal variable to save the remaining sectors to erase in IT context*/
-
- __IO uint32_t Page; /*Internal variable to define the current sector which is erasing*/
+ __IO FLASH_ProcedureTypeDef ProcedureOnGoing; /*!< Internal variable to indicate which procedure is ongoing or not in IT context */
- __IO uint32_t Address; /*Internal variable to save address selected for program*/
-
- HAL_LockTypeDef Lock; /* FLASH locking object */
+ __IO uint32_t NbPagesToErase; /*!< Internal variable to save the remaining sectors to erase in IT context*/
+
+ __IO uint32_t Address; /*!< Internal variable to save address selected for program or erase */
+
+ __IO uint32_t Page; /*!< Internal variable to define the current page which is erasing */
- __IO FLASH_ErrorTypeDef ErrorCode; /* FLASH error code */
+ HAL_LockTypeDef Lock; /*!< FLASH locking object */
-}FLASH_ProcessTypeDef;
+ __IO uint32_t ErrorCode; /*!< FLASH error code
+ This parameter can be a value of @ref FLASH_Error_Codes */
+} FLASH_ProcessTypeDef;
/**
* @}
- */
-
-/** @addtogroup FLASH_Internal_Variables
- * @{
- */
-
-/**
- * @brief Variable used for Program/Erase sectors under interruption.
- * Put as extern as used also in flash_ex.c.
*/
-extern FLASH_ProcessTypeDef ProcFlash;
-
-/**
- * @}
- */
/* Exported constants --------------------------------------------------------*/
-
/** @defgroup FLASH_Exported_Constants FLASH Exported Constants
* @{
*/
-#define HAL_FLASH_TIMEOUT_VALUE ((uint32_t)50000) /* 50 s */
+/** @defgroup FLASH_Error_Codes FLASH Error Codes
+ * @{
+ */
-#define FLASH_PAGE_SIZE ((uint32_t)256)
-
-/** @defgroup FLASH_Type_Program FLASH Type Program
- * @{
- */
-#define TYPEPROGRAM_WORD ((uint32_t)0x02) /*!< Program a word (32-bit) at a specified address */
-
-#define IS_TYPEPROGRAMFLASH(_VALUE_) (((_VALUE_) == TYPEPROGRAM_WORD))
+#define HAL_FLASH_ERROR_NONE ((uint32_t)0x00) /*!< No error */
+#define HAL_FLASH_ERROR_PGA ((uint32_t)0x01) /*!< Programming alignment error */
+#define HAL_FLASH_ERROR_WRP ((uint32_t)0x02) /*!< Write protection error */
+#define HAL_FLASH_ERROR_OPTV ((uint32_t)0x04) /*!< Option validity error */
+#define HAL_FLASH_ERROR_SIZE ((uint32_t)0x08) /*!< */
+#define HAL_FLASH_ERROR_OPTVUSR ((uint32_t)0x10) /*!< Option UserValidity Error. */
+#define HAL_FLASH_ERROR_RD ((uint32_t)0x20) /*!< Read protected error */
+#define HAL_FLASH_ERROR_OPERATION ((uint32_t)0x40) /*!< Not used */
/**
* @}
*/
-
-/** @defgroup FLASH_Latency FLASH Latency
+
+/** @defgroup FLASH_Page_Size FLASH Page Size
+ * @{
+ */
+
+#define FLASH_PAGE_SIZE ((uint32_t)256)
+
+/**
+ * @}
+ */
+
+/** @defgroup FLASH_Type_Program FLASH Type Program
* @{
*/
-#define FLASH_LATENCY_0 ((uint8_t)0x00) /*!< FLASH Zero Latency cycle */
-#define FLASH_LATENCY_1 ((uint8_t)0x01) /*!< FLASH One Latency cycle */
+#define FLASH_TYPEPROGRAM_WORD ((uint32_t)0x02) /*!<Program a word (32-bit) at a specified address.*/
-#define IS_FLASH_LATENCY(__LATENCY__) (((__LATENCY__) == FLASH_LATENCY_0) || \
- ((__LATENCY__) == FLASH_LATENCY_1))
/**
* @}
+ */
+
+/** @defgroup FLASH_Latency FLASH Latency
+ * @{
*/
+#define FLASH_LATENCY_0 ((uint32_t)0x00000000) /*!< FLASH Zero Latency cycle */
+#define FLASH_LATENCY_1 FLASH_ACR_LATENCY /*!< FLASH One Latency cycle */
+
+/**
+ * @}
+ */
/** @defgroup FLASH_Interrupts FLASH Interrupts
* @{
@@ -205,22 +215,17 @@
/**
* @}
*/
-
-
-
-#if defined ( __ICCARM__ )
-#define InterruptType_ACTLR_DISMCYCINT_Msk IntType_ACTLR_DISMCYCINT_Msk
-#endif
-
/**
* @}
- */
-
+ */
+
/* Exported macro ------------------------------------------------------------*/
/** @defgroup FLASH_Exported_Macros FLASH Exported Macros
- * @{
- */
+ * @brief macros to control FLASH features
+ * @{
+ */
+
/** @defgroup FLASH_Interrupt FLASH Interrupts
* @brief macros to handle FLASH interrupts
@@ -229,56 +234,55 @@
/**
* @brief Enable the specified FLASH interrupt.
- * @param __INTERRUPT__ : FLASH interrupt
+ * @param __INTERRUPT__ FLASH interrupt
* This parameter can be any combination of the following values:
- * @arg FLASH_IT_EOP: End of FLASH Operation Interrupt
- * @arg FLASH_IT_ERR: Error Interrupt
+ * @arg @ref FLASH_IT_EOP End of FLASH Operation Interrupt
+ * @arg @ref FLASH_IT_ERR Error Interrupt
* @retval none
*/
-#define __HAL_FLASH_ENABLE_IT(__INTERRUPT__) ((FLASH->PECR) |= (__INTERRUPT__))
+#define __HAL_FLASH_ENABLE_IT(__INTERRUPT__) SET_BIT((FLASH->PECR), (__INTERRUPT__))
/**
* @brief Disable the specified FLASH interrupt.
- * @param __INTERRUPT__ : FLASH interrupt
+ * @param __INTERRUPT__ FLASH interrupt
* This parameter can be any combination of the following values:
- * @arg FLASH_IT_EOP: End of FLASH Operation Interrupt
- * @arg FLASH_IT_ERR: Error Interrupt
+ * @arg @ref FLASH_IT_EOP End of FLASH Operation Interrupt
+ * @arg @ref FLASH_IT_ERR Error Interrupt
* @retval none
*/
-#define __HAL_FLASH_DISABLE_IT(__INTERRUPT__) ((FLASH->PECR) &= ~(uint32_t)(__INTERRUPT__))
+#define __HAL_FLASH_DISABLE_IT(__INTERRUPT__) CLEAR_BIT((FLASH->PECR), (uint32_t)(__INTERRUPT__))
/**
* @brief Get the specified FLASH flag status.
- * @param __FLAG__: specifies the FLASH flag to check.
+ * @param __FLAG__ specifies the FLASH flag to check.
* This parameter can be one of the following values:
- * @arg FLASH_FLAG_BSY : FLASH Busy flag
- * @arg FLASH_FLAG_EOP : FLASH End of Operation flag
- * @arg FLASH_FLAG_ENDHV : FLASH End of High Voltage flag
- * @arg FLASH_FLAG_READY: FLASH Ready flag after low power mode
- * @arg FLASH_FLAG_WRPERR: FLASH Write protected error flag
- * @arg FLASH_FLAG_PGAERR: FLASH Programming Alignment error flag
- * @arg FLASH_FLAG_SIZERR: FLASH Size error flag
- * @arg FLASH_FLAG_OPTVERR: FLASH Option validity error error flag
- * @arg FLASH_FLAG_OPTVERRUSR : FLASH Option UserValidity (available only Cat.3, Cat.4 and Cat.5 devices)
- * @arg FLASH_FLAG_RDERR : FLASH Read Protection error flag (PCROP) (available only Cat.2 and Cat.3 devices)
+ * @arg @ref FLASH_FLAG_BSY FLASH Busy flag
+ * @arg @ref FLASH_FLAG_EOP FLASH End of Operation flag
+ * @arg @ref FLASH_FLAG_ENDHV FLASH End of High Voltage flag
+ * @arg @ref FLASH_FLAG_READY FLASH Ready flag after low power mode
+ * @arg @ref FLASH_FLAG_PGAERR FLASH Programming Alignment error flag
+ * @arg @ref FLASH_FLAG_SIZERR FLASH Size error flag
+ * @arg @ref FLASH_FLAG_OPTVERR FLASH Option validity error error flag
+ * @arg @ref FLASH_FLAG_OPTVERRUSR FLASH Option UserValidity (available only Cat.3, Cat.4 and Cat.5 devices)
+ * @arg @ref FLASH_FLAG_RDERR FLASH Read Protection error flag (PCROP) (available only Cat.2 and Cat.3 devices)
+ * @arg @ref FLASH_FLAG_WRPERR FLASH Write protected error flag
* @retval The new state of __FLAG__ (SET or RESET).
*/
#define __HAL_FLASH_GET_FLAG(__FLAG__) (((FLASH->SR) & (__FLAG__)) == (__FLAG__))
/**
* @brief Clear the specified FLASH flag.
- * @param __FLAG__: specifies the FLASH flags to clear.
+ * @param __FLAG__ specifies the FLASH flags to clear.
* This parameter can be any combination of the following values:
- * @arg FLASH_FLAG_BSY : FLASH Busy flag
- * @arg FLASH_FLAG_EOP : FLASH End of Operation flag
- * @arg FLASH_FLAG_ENDHV : FLASH End of High Voltage flag
- * @arg FLASH_FLAG_READY: FLASH Ready flag after low power mode
- * @arg FLASH_FLAG_WRPERR: FLASH Write protected error flag
- * @arg FLASH_FLAG_PGAERR: FLASH Programming Alignment error flag
- * @arg FLASH_FLAG_SIZERR: FLASH Size error flag
- * @arg FLASH_FLAG_OPTVERR: FLASH Option validity error error flag
- * @arg FLASH_FLAG_OPTVERRUSR : FLASH Option UserValidity (available only Cat.3, Cat.4 and Cat.5 devices)
- * @arg FLASH_FLAG_RDERR : FLASH Read Protection error flag (PCROP) (available only Cat.2 and Cat.3 devices)
+ * @arg @ref FLASH_FLAG_EOP FLASH End of Operation flag
+ * @arg @ref FLASH_FLAG_ENDHV FLASH End of High Voltage flag
+ * @arg @ref FLASH_FLAG_READY FLASH Ready flag after low power mode
+ * @arg @ref FLASH_FLAG_PGAERR FLASH Programming Alignment error flag
+ * @arg @ref FLASH_FLAG_SIZERR FLASH Size error flag
+ * @arg @ref FLASH_FLAG_OPTVERR FLASH Option validity error error flag
+ * @arg @ref FLASH_FLAG_OPTVERRUSR FLASH Option UserValidity (available only Cat.3, Cat.4 and Cat.5 devices)
+ * @arg @ref FLASH_FLAG_RDERR FLASH Read Protection error flag (PCROP) (available only Cat.2 and Cat.3 devices)
+ * @arg @ref FLASH_FLAG_WRPERR FLASH Write protected error flag
* @retval none
*/
#define __HAL_FLASH_CLEAR_FLAG(__FLAG__) ((FLASH->SR) = (__FLAG__))
@@ -291,86 +295,74 @@
* @}
*/
-/* Include FLASH HAL Extension module */
-#include "stm32l1xx_hal_flash_ex.h"
-#include "stm32l1xx_hal_flash_ramfunc.h"
+/* Include FLASH HAL Extended module */
+#include "stm32l1xx_hal_flash_ex.h"
+#include "stm32l1xx_hal_flash_ramfunc.h"
-/* Exported functions ------------------------------------------------------- */
-
+/* Exported functions --------------------------------------------------------*/
/** @addtogroup FLASH_Exported_Functions
* @{
*/
-
+
/** @addtogroup FLASH_Exported_Functions_Group1
* @{
*/
-
-/**
- * @brief FLASH memory functions that can be executed from FLASH.
- */
-/* Program operation functions ***********************************************/
-HAL_StatusTypeDef HAL_FLASH_Program(uint32_t TypeProgram, uint32_t Address, uint64_t Data);
-HAL_StatusTypeDef HAL_FLASH_Program_IT(uint32_t TypeProgram, uint32_t Address, uint64_t Data);
+/* IO operation functions *****************************************************/
+HAL_StatusTypeDef HAL_FLASH_Program(uint32_t TypeProgram, uint32_t Address, uint64_t Data);
+HAL_StatusTypeDef HAL_FLASH_Program_IT(uint32_t TypeProgram, uint32_t Address, uint64_t Data);
/* FLASH IRQ handler function */
-void HAL_FLASH_IRQHandler(void);
+void HAL_FLASH_IRQHandler(void);
+/* Callbacks in non blocking modes */
+void HAL_FLASH_EndOfOperationCallback(uint32_t ReturnValue);
+void HAL_FLASH_OperationErrorCallback(uint32_t ReturnValue);
-/* Callbacks in non blocking modes */
-void HAL_FLASH_EndOfOperationCallback(uint32_t ReturnValue);
-void HAL_FLASH_OperationErrorCallback(uint32_t ReturnValue);
-
/**
* @}
- */
+ */
/** @addtogroup FLASH_Exported_Functions_Group2
* @{
*/
-
-/* FLASH Memory Programming functions *****************************************/
-HAL_StatusTypeDef HAL_FLASH_Unlock(void);
-HAL_StatusTypeDef HAL_FLASH_Lock(void);
-
-/* Option Bytes Programming functions *****************************************/
-HAL_StatusTypeDef HAL_FLASH_OB_Unlock(void);
-HAL_StatusTypeDef HAL_FLASH_OB_Lock(void);
-HAL_StatusTypeDef HAL_FLASH_OB_Launch(void);
+/* Peripheral Control functions ***********************************************/
+HAL_StatusTypeDef HAL_FLASH_Unlock(void);
+HAL_StatusTypeDef HAL_FLASH_Lock(void);
+HAL_StatusTypeDef HAL_FLASH_OB_Unlock(void);
+HAL_StatusTypeDef HAL_FLASH_OB_Lock(void);
+HAL_StatusTypeDef HAL_FLASH_OB_Launch(void);
/**
* @}
- */
+ */
/** @addtogroup FLASH_Exported_Functions_Group3
* @{
*/
-
-/* Peripheral State methods **************************************************/
-FLASH_ErrorTypeDef HAL_FLASH_GetError(void);
+/* Peripheral State and Error functions ***************************************/
+uint32_t HAL_FLASH_GetError(void);
/**
* @}
- */
+ */
/**
* @}
- */
-
-/** @addtogroup FLASH_Internal_Functions
- * @{
*/
-/**
- * @brief Function used internally by HAL FLASH driver.
- */
-HAL_StatusTypeDef FLASH_WaitForLastOperation(uint32_t Timeout);
+/* Private function -------------------------------------------------*/
+/** @addtogroup FLASH_Private_Functions
+ * @{
+ */
+void FLASH_PageErase(uint32_t PageAddress);
+HAL_StatusTypeDef FLASH_WaitForLastOperation(uint32_t Timeout);
/**
* @}
- */
+ */
/**
* @}
- */
+ */
/**
* @}
@@ -382,4 +374,5 @@
#endif /* __STM32L1xx_HAL_FLASH_H */
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
+/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
+


