mbed library sources

Dependents:   Encrypted my_mbed lklk CyaSSL_DTLS_Cellular ... more

Superseded

This library was superseded by mbed-dev - https://os.mbed.com/users/mbed_official/code/mbed-dev/.

Development branch of the mbed library sources. This library is kept in synch with the latest changes from the mbed SDK and it is not guaranteed to work.

If you are looking for a stable and tested release, please import one of the official mbed library releases:

Import librarymbed

The official Mbed 2 C/C++ SDK provides the software platform and libraries to build your applications.

Committer:
mbed_official
Date:
Wed Jul 01 09:45:11 2015 +0100
Revision:
579:53297373a894
Parent:
489:119543c9f674
Synchronized with git revision d5b4d2ab9c47edb4dc5776e7177b0c2263459081

Full URL: https://github.com/mbedmicro/mbed/commit/d5b4d2ab9c47edb4dc5776e7177b0c2263459081/

Initial version of drivers for SAMR21

Who changed what in which revision?

UserRevisionLine numberNew contents of line
mbed_official 376:cb4d9db17537 1 /**
mbed_official 376:cb4d9db17537 2 ******************************************************************************
mbed_official 376:cb4d9db17537 3 * @file stm32l0xx_hal_flash.h
mbed_official 376:cb4d9db17537 4 * @author MCD Application Team
mbed_official 489:119543c9f674 5 * @version V1.2.0
mbed_official 489:119543c9f674 6 * @date 06-February-2015
mbed_official 489:119543c9f674 7 * @brief Header file of Flash HAL module.
mbed_official 376:cb4d9db17537 8 ******************************************************************************
mbed_official 376:cb4d9db17537 9 * @attention
mbed_official 376:cb4d9db17537 10 *
mbed_official 489:119543c9f674 11 * <h2><center>&copy; COPYRIGHT(c) 2015 STMicroelectronics</center></h2>
mbed_official 376:cb4d9db17537 12 *
mbed_official 376:cb4d9db17537 13 * Redistribution and use in source and binary forms, with or without modification,
mbed_official 376:cb4d9db17537 14 * are permitted provided that the following conditions are met:
mbed_official 376:cb4d9db17537 15 * 1. Redistributions of source code must retain the above copyright notice,
mbed_official 376:cb4d9db17537 16 * this list of conditions and the following disclaimer.
mbed_official 376:cb4d9db17537 17 * 2. Redistributions in binary form must reproduce the above copyright notice,
mbed_official 376:cb4d9db17537 18 * this list of conditions and the following disclaimer in the documentation
mbed_official 376:cb4d9db17537 19 * and/or other materials provided with the distribution.
mbed_official 376:cb4d9db17537 20 * 3. Neither the name of STMicroelectronics nor the names of its contributors
mbed_official 376:cb4d9db17537 21 * may be used to endorse or promote products derived from this software
mbed_official 376:cb4d9db17537 22 * without specific prior written permission.
mbed_official 376:cb4d9db17537 23 *
mbed_official 376:cb4d9db17537 24 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
mbed_official 376:cb4d9db17537 25 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
mbed_official 376:cb4d9db17537 26 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
mbed_official 376:cb4d9db17537 27 * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
mbed_official 376:cb4d9db17537 28 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
mbed_official 376:cb4d9db17537 29 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
mbed_official 376:cb4d9db17537 30 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
mbed_official 376:cb4d9db17537 31 * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
mbed_official 376:cb4d9db17537 32 * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
mbed_official 376:cb4d9db17537 33 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
mbed_official 376:cb4d9db17537 34 *
mbed_official 376:cb4d9db17537 35 ******************************************************************************
mbed_official 376:cb4d9db17537 36 */
mbed_official 376:cb4d9db17537 37
mbed_official 376:cb4d9db17537 38 /* Define to prevent recursive inclusion -------------------------------------*/
mbed_official 376:cb4d9db17537 39 #ifndef __STM32L0XX_HAL_FLASH_H
mbed_official 376:cb4d9db17537 40 #define __STM32L0XX_HAL_FLASH_H
mbed_official 376:cb4d9db17537 41
mbed_official 376:cb4d9db17537 42 #ifdef __cplusplus
mbed_official 376:cb4d9db17537 43 extern "C" {
mbed_official 376:cb4d9db17537 44 #endif
mbed_official 376:cb4d9db17537 45
mbed_official 376:cb4d9db17537 46 /* Includes ------------------------------------------------------------------*/
mbed_official 376:cb4d9db17537 47 #include "stm32l0xx_hal_def.h"
mbed_official 376:cb4d9db17537 48
mbed_official 376:cb4d9db17537 49 /** @addtogroup STM32L0xx_HAL_Driver
mbed_official 376:cb4d9db17537 50 * @{
mbed_official 376:cb4d9db17537 51 */
mbed_official 376:cb4d9db17537 52
mbed_official 489:119543c9f674 53 /** @defgroup FLASH FLASH
mbed_official 376:cb4d9db17537 54 * @{
mbed_official 376:cb4d9db17537 55 */
mbed_official 376:cb4d9db17537 56
mbed_official 489:119543c9f674 57 /** @defgroup FLASH_Exported_Types FLASH Exported Types
mbed_official 489:119543c9f674 58 * @{
mbed_official 489:119543c9f674 59 */
mbed_official 376:cb4d9db17537 60
mbed_official 376:cb4d9db17537 61 /**
mbed_official 376:cb4d9db17537 62 * @brief FLASH Procedure structure definition
mbed_official 376:cb4d9db17537 63 */
mbed_official 376:cb4d9db17537 64 typedef enum
mbed_official 376:cb4d9db17537 65 {
mbed_official 376:cb4d9db17537 66 FLASH_PROC_NONE = 0,
mbed_official 376:cb4d9db17537 67 FLASH_PROC_PAGEERASE,
mbed_official 376:cb4d9db17537 68 FLASH_PROC_PROGRAM
mbed_official 376:cb4d9db17537 69 } FLASH_ProcedureTypeDef;
mbed_official 376:cb4d9db17537 70
mbed_official 376:cb4d9db17537 71 /**
mbed_official 489:119543c9f674 72 * @brief FLASH Erase structure definition
mbed_official 489:119543c9f674 73 */
mbed_official 489:119543c9f674 74 typedef struct
mbed_official 489:119543c9f674 75 {
mbed_official 489:119543c9f674 76 uint32_t TypeErase; /*!< TypeErase: Page Erase only.
mbed_official 489:119543c9f674 77 This parameter can be a value of @ref FLASHEx_Type_Erase */
mbed_official 489:119543c9f674 78
mbed_official 489:119543c9f674 79 uint32_t PageAddress ; /*!< PageAddress : Initial FLASH address to be erased
mbed_official 489:119543c9f674 80 This parameter must be a value belonging to FLASH Programm address (depending on the devices) */
mbed_official 489:119543c9f674 81
mbed_official 489:119543c9f674 82 uint32_t NbPages; /*!< NbPages: Number of pages to be erased.
mbed_official 489:119543c9f674 83 This parameter must be a value between 1 and (max number of pages - value of Initial page)*/
mbed_official 376:cb4d9db17537 84
mbed_official 489:119543c9f674 85 } FLASH_EraseInitTypeDef;
mbed_official 376:cb4d9db17537 86 /**
mbed_official 489:119543c9f674 87 * @}
mbed_official 489:119543c9f674 88 */
mbed_official 489:119543c9f674 89
mbed_official 489:119543c9f674 90
mbed_official 489:119543c9f674 91 /** @defgroup FLASH_Private_Types FLASH Private Types
mbed_official 489:119543c9f674 92 * @{
mbed_official 489:119543c9f674 93 */
mbed_official 376:cb4d9db17537 94
mbed_official 376:cb4d9db17537 95 /**
mbed_official 376:cb4d9db17537 96 * @brief FLASH handle Structure definition
mbed_official 376:cb4d9db17537 97 */
mbed_official 376:cb4d9db17537 98 typedef struct
mbed_official 376:cb4d9db17537 99 {
mbed_official 489:119543c9f674 100 __IO FLASH_ProcedureTypeDef ProcedureOnGoing; /* Internal variable to indicate which procedure is ongoing or not in IT context */
mbed_official 376:cb4d9db17537 101
mbed_official 489:119543c9f674 102 __IO uint32_t NbPagesToErase; /* Internal variable to save the remaining sectors to erase in IT context */
mbed_official 376:cb4d9db17537 103
mbed_official 489:119543c9f674 104 __IO uint32_t Page; /* Internal variable to define the current sector which is erasing */
mbed_official 376:cb4d9db17537 105
mbed_official 489:119543c9f674 106 __IO uint32_t Address; /* Internal variable to save address selected for program */
mbed_official 376:cb4d9db17537 107
mbed_official 376:cb4d9db17537 108 HAL_LockTypeDef Lock; /* FLASH locking object */
mbed_official 376:cb4d9db17537 109
mbed_official 489:119543c9f674 110 __IO uint32_t ErrorCode; /* FLASH error code */
mbed_official 376:cb4d9db17537 111
mbed_official 376:cb4d9db17537 112 }FLASH_ProcessTypeDef;
mbed_official 376:cb4d9db17537 113 /**
mbed_official 376:cb4d9db17537 114 * @}
mbed_official 376:cb4d9db17537 115 */
mbed_official 376:cb4d9db17537 116
mbed_official 489:119543c9f674 117 /** @defgroup FLASH_Private_Variables FLASH Private Variables
mbed_official 376:cb4d9db17537 118 * @{
mbed_official 489:119543c9f674 119 */
mbed_official 489:119543c9f674 120
mbed_official 489:119543c9f674 121 /**
mbed_official 489:119543c9f674 122 * @brief Variable used for Program/Erase sectors under interruption.
mbed_official 489:119543c9f674 123 * Put as extern as used also in flash_ex.c.
mbed_official 376:cb4d9db17537 124 */
mbed_official 489:119543c9f674 125 extern FLASH_ProcessTypeDef ProcFlash;
mbed_official 376:cb4d9db17537 126 /**
mbed_official 376:cb4d9db17537 127 * @}
mbed_official 376:cb4d9db17537 128 */
mbed_official 376:cb4d9db17537 129
mbed_official 489:119543c9f674 130 /** @defgroup FLASH_Private_Constants FLASH Private Constants
mbed_official 376:cb4d9db17537 131 * @{
mbed_official 376:cb4d9db17537 132 */
mbed_official 489:119543c9f674 133 #define FLASH_TIMEOUT_VALUE ((uint32_t)50000) /* 50 s */
mbed_official 489:119543c9f674 134 #define FLASH_SIZE_DATA_REGISTER ((uint32_t)0x1FF8007C)
mbed_official 376:cb4d9db17537 135 /**
mbed_official 376:cb4d9db17537 136 * @}
mbed_official 376:cb4d9db17537 137 */
mbed_official 376:cb4d9db17537 138
mbed_official 489:119543c9f674 139
mbed_official 489:119543c9f674 140 /** @defgroup FLASH_Exported_Constants FLASH Public Constants
mbed_official 376:cb4d9db17537 141 * @{
mbed_official 376:cb4d9db17537 142 */
mbed_official 489:119543c9f674 143
mbed_official 489:119543c9f674 144 /**
mbed_official 489:119543c9f674 145 * @brief FLASH size information
mbed_official 489:119543c9f674 146 */
mbed_official 489:119543c9f674 147 #define FLASH_SIZE (uint32_t)(*((uint16_t *)FLASH_SIZE_DATA_REGISTER) * 1024)
mbed_official 489:119543c9f674 148 #define FLASH_PAGE_SIZE ((uint32_t)128)
mbed_official 489:119543c9f674 149
mbed_official 489:119543c9f674 150 /** @defgroup FLASH_Type_Program
mbed_official 489:119543c9f674 151 * @{
mbed_official 489:119543c9f674 152 */
mbed_official 489:119543c9f674 153 #define FLASH_TYPEPROGRAM_WORD ((uint32_t)0x02) /*!<Program a word (32-bit) at a specified address.*/
mbed_official 376:cb4d9db17537 154 /**
mbed_official 376:cb4d9db17537 155 * @}
mbed_official 376:cb4d9db17537 156 */
mbed_official 376:cb4d9db17537 157
mbed_official 489:119543c9f674 158 /** @defgroup FLASH_Latency FLASH Latency
mbed_official 376:cb4d9db17537 159 * @{
mbed_official 489:119543c9f674 160 */
mbed_official 489:119543c9f674 161 #define FLASH_LATENCY_0 ((uint8_t)0x00) /*!< FLASH Zero Latency cycle */
mbed_official 489:119543c9f674 162 #define FLASH_LATENCY_1 ((uint8_t)0x01) /*!< FLASH One Latency cycle */
mbed_official 376:cb4d9db17537 163 /**
mbed_official 376:cb4d9db17537 164 * @}
mbed_official 376:cb4d9db17537 165 */
mbed_official 376:cb4d9db17537 166
mbed_official 489:119543c9f674 167 /** @defgroup FLASH_Interrupts FLASH Interrupts
mbed_official 376:cb4d9db17537 168 * @{
mbed_official 376:cb4d9db17537 169 */
mbed_official 489:119543c9f674 170 #define FLASH_IT_EOP FLASH_PECR_EOPIE /*!< End of programming interrupt source */
mbed_official 489:119543c9f674 171 #define FLASH_IT_ERR FLASH_PECR_ERRIE /*!< Error interrupt source */
mbed_official 376:cb4d9db17537 172 /**
mbed_official 376:cb4d9db17537 173 * @}
mbed_official 376:cb4d9db17537 174 */
mbed_official 376:cb4d9db17537 175
mbed_official 489:119543c9f674 176 /** @defgroup FLASH_Flags FLASH Flags
mbed_official 376:cb4d9db17537 177 * @{
mbed_official 376:cb4d9db17537 178 */
mbed_official 489:119543c9f674 179 #define FLASH_FLAG_BSY FLASH_SR_BSY /*!< FLASH Busy flag */
mbed_official 489:119543c9f674 180 #define FLASH_FLAG_EOP FLASH_SR_EOP /*!< FLASH End of Programming flag */
mbed_official 489:119543c9f674 181 #define FLASH_FLAG_ENDHV FLASH_SR_HVOFF /*!< FLASH End of High Voltage flag */
mbed_official 489:119543c9f674 182 #define FLASH_FLAG_READY FLASH_SR_READY /*!< FLASH Ready flag after low power mode */
mbed_official 489:119543c9f674 183 #define FLASH_FLAG_WRPERR FLASH_SR_WRPERR /*!< FLASH Write protected error flag */
mbed_official 489:119543c9f674 184 #define FLASH_FLAG_PGAERR FLASH_SR_PGAERR /*!< FLASH Programming Alignment error flag */
mbed_official 489:119543c9f674 185 #define FLASH_FLAG_SIZERR FLASH_SR_SIZERR /*!< FLASH Size error flag */
mbed_official 489:119543c9f674 186 #define FLASH_FLAG_OPTVERR FLASH_SR_OPTVERR /*!< FLASH Option Validity error flag */
mbed_official 489:119543c9f674 187 #define FLASH_FLAG_RDERR FLASH_SR_RDERR /*!< FLASH Read protected error flag */
mbed_official 489:119543c9f674 188 #define FLASH_FLAG_FWWERR FLASH_SR_FWWERR /*!< FLASH Write or Errase operation aborted */
mbed_official 489:119543c9f674 189 #define FLASH_FLAG_NOTZEROERR FLASH_SR_NOTZEROERR /*!< FLASH Read protected error flag */
mbed_official 489:119543c9f674 190 /**
mbed_official 489:119543c9f674 191 * @}
mbed_official 489:119543c9f674 192 */
mbed_official 376:cb4d9db17537 193
mbed_official 489:119543c9f674 194 /** @defgroup FLASH_Error_Code Flash Error Code
mbed_official 489:119543c9f674 195 * @{
mbed_official 489:119543c9f674 196 */
mbed_official 489:119543c9f674 197 #define HAL_FLASH_ERROR_NONE 0x00
mbed_official 489:119543c9f674 198 #define HAL_FLASH_ERROR_RD 0x01
mbed_official 489:119543c9f674 199 #define HAL_FLASH_ERROR_SIZE 0x02
mbed_official 489:119543c9f674 200 #define HAL_FLASH_ERROR_PGA 0x04
mbed_official 489:119543c9f674 201 #define HAL_FLASH_ERROR_WRP 0x08
mbed_official 489:119543c9f674 202 #define HAL_FLASH_ERROR_OPTV 0x10
mbed_official 489:119543c9f674 203 #define HAL_FLASH_ERROR_FWWERR 0x20
mbed_official 489:119543c9f674 204 #define HAL_FLASH_ERROR_NOTZERO 0x40
mbed_official 489:119543c9f674 205 /**
mbed_official 489:119543c9f674 206 * @}
mbed_official 489:119543c9f674 207 */
mbed_official 489:119543c9f674 208
mbed_official 489:119543c9f674 209 /** @defgroup FLASH_Keys FLASH Keys
mbed_official 489:119543c9f674 210 * @{
mbed_official 489:119543c9f674 211 */
mbed_official 376:cb4d9db17537 212 #define FLASH_PDKEY1 ((uint32_t)0x04152637) /*!< Flash power down key1 */
mbed_official 376:cb4d9db17537 213 #define FLASH_PDKEY2 ((uint32_t)0xFAFBFCFD) /*!< Flash power down key2: used with FLASH_PDKEY1
mbed_official 489:119543c9f674 214 to unlock the RUN_PD bit in FLASH_ACR */
mbed_official 376:cb4d9db17537 215
mbed_official 376:cb4d9db17537 216 #define FLASH_PEKEY1 ((uint32_t)0x89ABCDEF) /*!< Flash program erase key1 */
mbed_official 376:cb4d9db17537 217 #define FLASH_PEKEY2 ((uint32_t)0x02030405) /*!< Flash program erase key: used with FLASH_PEKEY2
mbed_official 376:cb4d9db17537 218 to unlock the write access to the FLASH_PECR register and
mbed_official 376:cb4d9db17537 219 data EEPROM */
mbed_official 376:cb4d9db17537 220
mbed_official 376:cb4d9db17537 221 #define FLASH_PRGKEY1 ((uint32_t)0x8C9DAEBF) /*!< Flash program memory key1 */
mbed_official 376:cb4d9db17537 222 #define FLASH_PRGKEY2 ((uint32_t)0x13141516) /*!< Flash program memory key2: used with FLASH_PRGKEY2
mbed_official 376:cb4d9db17537 223 to unlock the program memory */
mbed_official 376:cb4d9db17537 224
mbed_official 376:cb4d9db17537 225 #define FLASH_OPTKEY1 ((uint32_t)0xFBEAD9C8) /*!< Flash option key1 */
mbed_official 376:cb4d9db17537 226 #define FLASH_OPTKEY2 ((uint32_t)0x24252627) /*!< Flash option key2: used with FLASH_OPTKEY1 to
mbed_official 489:119543c9f674 227 unlock the write access to the option byte block */
mbed_official 376:cb4d9db17537 228 /**
mbed_official 376:cb4d9db17537 229 * @}
mbed_official 376:cb4d9db17537 230 */
mbed_official 489:119543c9f674 231
mbed_official 376:cb4d9db17537 232 /* CMSIS_Legacy */
mbed_official 376:cb4d9db17537 233
mbed_official 376:cb4d9db17537 234 #if defined ( __ICCARM__ )
mbed_official 376:cb4d9db17537 235 #define InterruptType_ACTLR_DISMCYCINT_Msk IntType_ACTLR_DISMCYCINT_Msk
mbed_official 376:cb4d9db17537 236 #endif
mbed_official 376:cb4d9db17537 237
mbed_official 376:cb4d9db17537 238 /**
mbed_official 376:cb4d9db17537 239 * @}
mbed_official 489:119543c9f674 240 */
mbed_official 376:cb4d9db17537 241
mbed_official 489:119543c9f674 242 /** @defgroup FLASH_Exported_Macros FLASH Exported Macros
mbed_official 489:119543c9f674 243 * @{
mbed_official 489:119543c9f674 244 */
mbed_official 376:cb4d9db17537 245
mbed_official 489:119543c9f674 246 /** @defgroup FLASH_Interrupt macros to handle FLASH interrupts
mbed_official 489:119543c9f674 247 * @{
mbed_official 489:119543c9f674 248 */
mbed_official 376:cb4d9db17537 249 /**
mbed_official 489:119543c9f674 250 * @brief Enable/Disable the specified FLASH interrupt.
mbed_official 489:119543c9f674 251 * @param __INTERRUPT__ : FLASH interrupt
mbed_official 376:cb4d9db17537 252 * This parameter can be any combination of the following values:
mbed_official 376:cb4d9db17537 253 * @arg FLASH_IT_EOP: End of FLASH Operation Interrupt
mbed_official 376:cb4d9db17537 254 * @arg FLASH_IT_ERR: Error Interrupt
mbed_official 376:cb4d9db17537 255 * @retval none
mbed_official 489:119543c9f674 256 */
mbed_official 489:119543c9f674 257 #define __HAL_FLASH_ENABLE_IT(__INTERRUPT__) ((FLASH->PECR) |= (__INTERRUPT__))
mbed_official 489:119543c9f674 258 #define __HAL_FLASH_DISABLE_IT(__INTERRUPT__) ((FLASH->PECR) &= ~(uint32_t)(__INTERRUPT__))
mbed_official 376:cb4d9db17537 259
mbed_official 376:cb4d9db17537 260 /**
mbed_official 489:119543c9f674 261 * @brief Get the specified FLASH flag status.
mbed_official 376:cb4d9db17537 262 * @param __FLAG__: specifies the FLASH flag to check.
mbed_official 376:cb4d9db17537 263 * This parameter can be one of the following values:
mbed_official 489:119543c9f674 264 * @arg FLASH_FLAG_BSY : FLASH Busy flag
mbed_official 489:119543c9f674 265 * @arg FLASH_FLAG_EOP: FLASH End of Operation flag
mbed_official 489:119543c9f674 266 * @arg FLASH_FLAG_READY: FLASH Ready flag after low power mode
mbed_official 489:119543c9f674 267 * @arg FLASH_FLAG_ENDHV: FLASH End of high voltage flag
mbed_official 489:119543c9f674 268 * @arg FLASH_FLAG_WRPERR: FLASH Write protected error flag
mbed_official 489:119543c9f674 269 * @arg FLASH_FLAG_PGAERR: FLASH Programming Alignment error flag
mbed_official 489:119543c9f674 270 * @arg FLASH_FLAG_SIZERR: FLASH Size error flag
mbed_official 489:119543c9f674 271 * @arg FLASH_FLAG_OPTVERR: FLASH Option validity error flag
mbed_official 489:119543c9f674 272 * @arg FLASH_FLAG_RDERR: FLASH Read protected error flag
mbed_official 489:119543c9f674 273 * @arg FLASH_FLAG_FWWERR: FLASH Fetch While Write Error flag
mbed_official 376:cb4d9db17537 274 * @arg FLASH_FLAG_NOTZEROERR: Not Zero area error flag
mbed_official 489:119543c9f674 275 * @retval The new state of __FLAG__ (SET or RESET).
mbed_official 376:cb4d9db17537 276 */
mbed_official 489:119543c9f674 277 #define __HAL_FLASH_GET_FLAG(__FLAG__) (((FLASH->SR) & (__FLAG__)) == (__FLAG__))
mbed_official 376:cb4d9db17537 278
mbed_official 376:cb4d9db17537 279 /**
mbed_official 489:119543c9f674 280 * @brief Clear the specified FLASH flag.
mbed_official 376:cb4d9db17537 281 * @param __FLAG__: specifies the FLASH flags to clear.
mbed_official 376:cb4d9db17537 282 * This parameter can be any combination of the following values:
mbed_official 489:119543c9f674 283 * @arg FLASH_FLAG_EOP: FLASH End of Operation flag
mbed_official 489:119543c9f674 284 * @arg FLASH_FLAG_WRPERR: FLASH Write protected error flag
mbed_official 489:119543c9f674 285 * @arg FLASH_FLAG_PGAERR: FLASH Programming Alignment error flag
mbed_official 489:119543c9f674 286 * @arg FLASH_FLAG_SIZERR: FLASH size error flag
mbed_official 489:119543c9f674 287 * @arg FLASH_FLAG_OPTVERR: FLASH Option validity error flag
mbed_official 489:119543c9f674 288 * @arg FLASH_FLAG_RDERR: FLASH Read protected error flag
mbed_official 489:119543c9f674 289 * @arg FLASH_FLAG_FWWERR: FLASH Fetch While Write Error flag
mbed_official 489:119543c9f674 290 * @arg FLASH_FLAG_NOTZEROERR: Not Zero area error flag
mbed_official 376:cb4d9db17537 291 * @retval None
mbed_official 376:cb4d9db17537 292 */
mbed_official 376:cb4d9db17537 293 #define __HAL_FLASH_CLEAR_FLAG(__FLAG__) (FLASH->SR = (__FLAG__))
mbed_official 376:cb4d9db17537 294
mbed_official 376:cb4d9db17537 295 /**
mbed_official 376:cb4d9db17537 296 * @}
mbed_official 489:119543c9f674 297 */
mbed_official 489:119543c9f674 298
mbed_official 489:119543c9f674 299 /**
mbed_official 489:119543c9f674 300 * @}
mbed_official 489:119543c9f674 301 */
mbed_official 376:cb4d9db17537 302
mbed_official 376:cb4d9db17537 303 /* Include FLASH HAL Extension module */
mbed_official 376:cb4d9db17537 304 #include "stm32l0xx_hal_flash_ex.h"
mbed_official 376:cb4d9db17537 305 #include "stm32l0xx_hal_flash_ramfunc.h"
mbed_official 376:cb4d9db17537 306
mbed_official 376:cb4d9db17537 307 /* Exported functions ------------------------------------------------------- */
mbed_official 376:cb4d9db17537 308
mbed_official 489:119543c9f674 309 /** @defgroup FLASH_Exported_Functions FLASH Exported functions
mbed_official 489:119543c9f674 310 * @{
mbed_official 489:119543c9f674 311 */
mbed_official 489:119543c9f674 312
mbed_official 489:119543c9f674 313 /** @defgroup FLASH_Exported_Functions_Group1 Programming operation functions
mbed_official 489:119543c9f674 314 * @{
mbed_official 489:119543c9f674 315 */
mbed_official 489:119543c9f674 316
mbed_official 376:cb4d9db17537 317 /**
mbed_official 376:cb4d9db17537 318 * @brief FLASH memory functions that can be executed from FLASH.
mbed_official 489:119543c9f674 319 */
mbed_official 376:cb4d9db17537 320 /* Program operation functions ***********************************************/
mbed_official 376:cb4d9db17537 321 HAL_StatusTypeDef HAL_FLASH_Program(uint32_t TypeProgram, uint32_t Address, uint32_t Data);
mbed_official 376:cb4d9db17537 322 HAL_StatusTypeDef HAL_FLASH_Program_IT(uint32_t TypeProgram, uint32_t Address, uint32_t Data);
mbed_official 376:cb4d9db17537 323
mbed_official 489:119543c9f674 324 /* FLASH IRQ handler function ***********************************************/
mbed_official 376:cb4d9db17537 325 void HAL_FLASH_IRQHandler(void);
mbed_official 376:cb4d9db17537 326
mbed_official 489:119543c9f674 327 /* Callbacks in non blocking modes ******************************************/
mbed_official 376:cb4d9db17537 328 void HAL_FLASH_EndOfOperationCallback(uint32_t ReturnValue);
mbed_official 376:cb4d9db17537 329 void HAL_FLASH_OperationErrorCallback(uint32_t ReturnValue);
mbed_official 489:119543c9f674 330
mbed_official 489:119543c9f674 331 /**
mbed_official 489:119543c9f674 332 * @}
mbed_official 489:119543c9f674 333 */
mbed_official 376:cb4d9db17537 334
mbed_official 489:119543c9f674 335 /** @defgroup FLASH_Exported_Functions_Group2 Peripheral Control functions
mbed_official 489:119543c9f674 336 * @{
mbed_official 489:119543c9f674 337 */
mbed_official 489:119543c9f674 338
mbed_official 489:119543c9f674 339 /* FLASH Memory Programming functions *****************************************/
mbed_official 376:cb4d9db17537 340 HAL_StatusTypeDef HAL_FLASH_Unlock(void);
mbed_official 376:cb4d9db17537 341 HAL_StatusTypeDef HAL_FLASH_Lock(void);
mbed_official 489:119543c9f674 342
mbed_official 489:119543c9f674 343 /* Option Bytes Programming functions *****************************************/
mbed_official 376:cb4d9db17537 344 HAL_StatusTypeDef HAL_FLASH_OB_Unlock(void);
mbed_official 376:cb4d9db17537 345 HAL_StatusTypeDef HAL_FLASH_OB_Lock(void);
mbed_official 376:cb4d9db17537 346 HAL_StatusTypeDef HAL_FLASH_OB_Launch(void);
mbed_official 376:cb4d9db17537 347
mbed_official 489:119543c9f674 348 /**
mbed_official 489:119543c9f674 349 * @}
mbed_official 489:119543c9f674 350 */
mbed_official 489:119543c9f674 351
mbed_official 489:119543c9f674 352 /** @defgroup FLASH_Exported_Functions_Group3 Peripheral State and Errors functions
mbed_official 489:119543c9f674 353 * @{
mbed_official 489:119543c9f674 354 */
mbed_official 489:119543c9f674 355 /* Peripheral State methods **************************************************/
mbed_official 489:119543c9f674 356 uint32_t HAL_FLASH_GetError(void);
mbed_official 489:119543c9f674 357
mbed_official 489:119543c9f674 358 /**
mbed_official 489:119543c9f674 359 * @}
mbed_official 489:119543c9f674 360 */
mbed_official 489:119543c9f674 361
mbed_official 489:119543c9f674 362 /**
mbed_official 489:119543c9f674 363 * @}
mbed_official 489:119543c9f674 364 */
mbed_official 489:119543c9f674 365
mbed_official 489:119543c9f674 366 /** @defgroup FLASH_Private_Macros FLASH Private Macros
mbed_official 489:119543c9f674 367 * @{
mbed_official 489:119543c9f674 368 */
mbed_official 489:119543c9f674 369
mbed_official 489:119543c9f674 370 #define IS_FLASH_TYPEPROGRAM(VALUE) ((VALUE) == FLASH_TYPEPROGRAM_WORD)
mbed_official 376:cb4d9db17537 371
mbed_official 489:119543c9f674 372 #define IS_FLASH_LATENCY(__LATENCY__) (((__LATENCY__) == FLASH_LATENCY_0) || \
mbed_official 489:119543c9f674 373 ((__LATENCY__) == FLASH_LATENCY_1))
mbed_official 489:119543c9f674 374 /**
mbed_official 489:119543c9f674 375 * @}
mbed_official 489:119543c9f674 376 */
mbed_official 489:119543c9f674 377
mbed_official 489:119543c9f674 378
mbed_official 489:119543c9f674 379 /** @defgroup FLASH_Private_Functions FLASH Private functions
mbed_official 489:119543c9f674 380 * @{
mbed_official 489:119543c9f674 381 */
mbed_official 489:119543c9f674 382
mbed_official 489:119543c9f674 383 /**
mbed_official 489:119543c9f674 384 * @brief Function used internally by HAL FLASH driver.
mbed_official 489:119543c9f674 385 */
mbed_official 376:cb4d9db17537 386 HAL_StatusTypeDef FLASH_WaitForLastOperation(uint32_t Timeout);
mbed_official 489:119543c9f674 387 void FLASH_ErasePage(uint32_t Page_Address);
mbed_official 489:119543c9f674 388 /**
mbed_official 489:119543c9f674 389 * @}
mbed_official 489:119543c9f674 390 */
mbed_official 489:119543c9f674 391
mbed_official 489:119543c9f674 392 /**
mbed_official 489:119543c9f674 393 * @}
mbed_official 489:119543c9f674 394 */
mbed_official 489:119543c9f674 395
mbed_official 489:119543c9f674 396 /**
mbed_official 489:119543c9f674 397 * @}
mbed_official 489:119543c9f674 398 */
mbed_official 376:cb4d9db17537 399
mbed_official 376:cb4d9db17537 400 #ifdef __cplusplus
mbed_official 376:cb4d9db17537 401 }
mbed_official 376:cb4d9db17537 402 #endif
mbed_official 376:cb4d9db17537 403
mbed_official 376:cb4d9db17537 404 #endif /* __STM32L0XX_HAL_FLASH_H */
mbed_official 376:cb4d9db17537 405
mbed_official 489:119543c9f674 406 /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
mbed_official 376:cb4d9db17537 407