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

Dependents:   hello SerialTestv11 SerialTestv12 Sierpinski ... more

mbed 2

This is the mbed 2 library. If you'd like to learn about Mbed OS please see the mbed-os docs.

Committer:
AnnaBridge
Date:
Thu Nov 08 11:45:42 2018 +0000
Revision:
171:3a7713b1edbc
Parent:
TARGET_NUCLEO_L011K4/TARGET_STM/TARGET_STM32L0/device/stm32l0xx_hal_flash.h@167:84c0a372a020
mbed library. Release version 164

Who changed what in which revision?

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