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****/
+
    

