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
mbed library. Release version 164

Who changed what in which revision?

UserRevisionLine numberNew contents of line
AnnaBridge 171:3a7713b1edbc 1 /**
AnnaBridge 171:3a7713b1edbc 2 ******************************************************************************
AnnaBridge 171:3a7713b1edbc 3 * @file stm32f2xx_hal_flash_ex.h
AnnaBridge 171:3a7713b1edbc 4 * @author MCD Application Team
AnnaBridge 171:3a7713b1edbc 5 * @version V1.2.1
AnnaBridge 171:3a7713b1edbc 6 * @date 14-April-2017
AnnaBridge 171:3a7713b1edbc 7 * @brief Header file of FLASH HAL Extension module.
AnnaBridge 171:3a7713b1edbc 8 ******************************************************************************
AnnaBridge 171:3a7713b1edbc 9 * @attention
AnnaBridge 171:3a7713b1edbc 10 *
AnnaBridge 171:3a7713b1edbc 11 * <h2><center>&copy; COPYRIGHT(c) 2017 STMicroelectronics</center></h2>
AnnaBridge 171:3a7713b1edbc 12 *
AnnaBridge 171:3a7713b1edbc 13 * Redistribution and use in source and binary forms, with or without modification,
AnnaBridge 171:3a7713b1edbc 14 * are permitted provided that the following conditions are met:
AnnaBridge 171:3a7713b1edbc 15 * 1. Redistributions of source code must retain the above copyright notice,
AnnaBridge 171:3a7713b1edbc 16 * this list of conditions and the following disclaimer.
AnnaBridge 171:3a7713b1edbc 17 * 2. Redistributions in binary form must reproduce the above copyright notice,
AnnaBridge 171:3a7713b1edbc 18 * this list of conditions and the following disclaimer in the documentation
AnnaBridge 171:3a7713b1edbc 19 * and/or other materials provided with the distribution.
AnnaBridge 171:3a7713b1edbc 20 * 3. Neither the name of STMicroelectronics nor the names of its contributors
AnnaBridge 171:3a7713b1edbc 21 * may be used to endorse or promote products derived from this software
AnnaBridge 171:3a7713b1edbc 22 * without specific prior written permission.
AnnaBridge 171:3a7713b1edbc 23 *
AnnaBridge 171:3a7713b1edbc 24 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
AnnaBridge 171:3a7713b1edbc 25 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
AnnaBridge 171:3a7713b1edbc 26 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
AnnaBridge 171:3a7713b1edbc 27 * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
AnnaBridge 171:3a7713b1edbc 28 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
AnnaBridge 171:3a7713b1edbc 29 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
AnnaBridge 171:3a7713b1edbc 30 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
AnnaBridge 171:3a7713b1edbc 31 * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
AnnaBridge 171:3a7713b1edbc 32 * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
AnnaBridge 171:3a7713b1edbc 33 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
AnnaBridge 171:3a7713b1edbc 34 *
AnnaBridge 171:3a7713b1edbc 35 ******************************************************************************
AnnaBridge 171:3a7713b1edbc 36 */
AnnaBridge 171:3a7713b1edbc 37
AnnaBridge 171:3a7713b1edbc 38 /* Define to prevent recursive inclusion -------------------------------------*/
AnnaBridge 171:3a7713b1edbc 39 #ifndef __STM32F2xx_HAL_FLASH_EX_H
AnnaBridge 171:3a7713b1edbc 40 #define __STM32F2xx_HAL_FLASH_EX_H
AnnaBridge 171:3a7713b1edbc 41
AnnaBridge 171:3a7713b1edbc 42 #ifdef __cplusplus
AnnaBridge 171:3a7713b1edbc 43 extern "C" {
AnnaBridge 171:3a7713b1edbc 44 #endif
AnnaBridge 171:3a7713b1edbc 45
AnnaBridge 171:3a7713b1edbc 46 /* Includes ------------------------------------------------------------------*/
AnnaBridge 171:3a7713b1edbc 47 #include "stm32f2xx_hal_def.h"
AnnaBridge 171:3a7713b1edbc 48
AnnaBridge 171:3a7713b1edbc 49 /** @addtogroup STM32F2xx_HAL_Driver
AnnaBridge 171:3a7713b1edbc 50 * @{
AnnaBridge 171:3a7713b1edbc 51 */
AnnaBridge 171:3a7713b1edbc 52
AnnaBridge 171:3a7713b1edbc 53 /** @addtogroup FLASHEx
AnnaBridge 171:3a7713b1edbc 54 * @{
AnnaBridge 171:3a7713b1edbc 55 */
AnnaBridge 171:3a7713b1edbc 56
AnnaBridge 171:3a7713b1edbc 57 /* Exported types ------------------------------------------------------------*/
AnnaBridge 171:3a7713b1edbc 58 /** @defgroup FLASHEx_Exported_Types FLASH Exported Types
AnnaBridge 171:3a7713b1edbc 59 * @{
AnnaBridge 171:3a7713b1edbc 60 */
AnnaBridge 171:3a7713b1edbc 61
AnnaBridge 171:3a7713b1edbc 62 /**
AnnaBridge 171:3a7713b1edbc 63 * @brief FLASH Erase structure definition
AnnaBridge 171:3a7713b1edbc 64 */
AnnaBridge 171:3a7713b1edbc 65 typedef struct
AnnaBridge 171:3a7713b1edbc 66 {
AnnaBridge 171:3a7713b1edbc 67 uint32_t TypeErase; /*!< Mass erase or sector Erase.
AnnaBridge 171:3a7713b1edbc 68 This parameter can be a value of @ref FLASHEx_Type_Erase */
AnnaBridge 171:3a7713b1edbc 69
AnnaBridge 171:3a7713b1edbc 70 uint32_t Banks; /*!< Select banks to erase when Mass erase is enabled.
AnnaBridge 171:3a7713b1edbc 71 This parameter must be a value of @ref FLASHEx_Banks */
AnnaBridge 171:3a7713b1edbc 72
AnnaBridge 171:3a7713b1edbc 73 uint32_t Sector; /*!< Initial FLASH sector to erase when Mass erase is disabled
AnnaBridge 171:3a7713b1edbc 74 This parameter must be a value of @ref FLASHEx_Sectors */
AnnaBridge 171:3a7713b1edbc 75
AnnaBridge 171:3a7713b1edbc 76 uint32_t NbSectors; /*!< Number of sectors to be erased.
AnnaBridge 171:3a7713b1edbc 77 This parameter must be a value between 1 and (max number of sectors - value of Initial sector)*/
AnnaBridge 171:3a7713b1edbc 78
AnnaBridge 171:3a7713b1edbc 79 uint32_t VoltageRange;/*!< The device voltage range which defines the erase parallelism
AnnaBridge 171:3a7713b1edbc 80 This parameter must be a value of @ref FLASHEx_Voltage_Range */
AnnaBridge 171:3a7713b1edbc 81
AnnaBridge 171:3a7713b1edbc 82 } FLASH_EraseInitTypeDef;
AnnaBridge 171:3a7713b1edbc 83
AnnaBridge 171:3a7713b1edbc 84 /**
AnnaBridge 171:3a7713b1edbc 85 * @brief FLASH Option Bytes Program structure definition
AnnaBridge 171:3a7713b1edbc 86 */
AnnaBridge 171:3a7713b1edbc 87 typedef struct
AnnaBridge 171:3a7713b1edbc 88 {
AnnaBridge 171:3a7713b1edbc 89 uint32_t OptionType; /*!< Option byte to be configured.
AnnaBridge 171:3a7713b1edbc 90 This parameter can be a value of @ref FLASHEx_Option_Type */
AnnaBridge 171:3a7713b1edbc 91
AnnaBridge 171:3a7713b1edbc 92 uint32_t WRPState; /*!< Write protection activation or deactivation.
AnnaBridge 171:3a7713b1edbc 93 This parameter can be a value of @ref FLASHEx_WRP_State */
AnnaBridge 171:3a7713b1edbc 94
AnnaBridge 171:3a7713b1edbc 95 uint32_t WRPSector; /*!< Specifies the sector(s) to be write protected.
AnnaBridge 171:3a7713b1edbc 96 The value of this parameter depend on device used within the same series */
AnnaBridge 171:3a7713b1edbc 97
AnnaBridge 171:3a7713b1edbc 98 uint32_t Banks; /*!< Select banks for WRP activation/deactivation of all sectors.
AnnaBridge 171:3a7713b1edbc 99 This parameter must be a value of @ref FLASHEx_Banks */
AnnaBridge 171:3a7713b1edbc 100
AnnaBridge 171:3a7713b1edbc 101 uint32_t RDPLevel; /*!< Set the read protection level.
AnnaBridge 171:3a7713b1edbc 102 This parameter can be a value of @ref FLASHEx_Option_Bytes_Read_Protection */
AnnaBridge 171:3a7713b1edbc 103
AnnaBridge 171:3a7713b1edbc 104 uint32_t BORLevel; /*!< Set the BOR Level.
AnnaBridge 171:3a7713b1edbc 105 This parameter can be a value of @ref FLASHEx_BOR_Reset_Level */
AnnaBridge 171:3a7713b1edbc 106
AnnaBridge 171:3a7713b1edbc 107 uint8_t USERConfig; /*!< Program the FLASH User Option Byte: IWDG_SW / RST_STOP / RST_STDBY. */
AnnaBridge 171:3a7713b1edbc 108
AnnaBridge 171:3a7713b1edbc 109 } FLASH_OBProgramInitTypeDef;
AnnaBridge 171:3a7713b1edbc 110
AnnaBridge 171:3a7713b1edbc 111 /* Exported constants --------------------------------------------------------*/
AnnaBridge 171:3a7713b1edbc 112
AnnaBridge 171:3a7713b1edbc 113 /** @defgroup FLASHEx_Exported_Constants FLASH Exported Constants
AnnaBridge 171:3a7713b1edbc 114 * @{
AnnaBridge 171:3a7713b1edbc 115 */
AnnaBridge 171:3a7713b1edbc 116
AnnaBridge 171:3a7713b1edbc 117 /** @defgroup FLASHEx_Type_Erase FLASH Type Erase
AnnaBridge 171:3a7713b1edbc 118 * @{
AnnaBridge 171:3a7713b1edbc 119 */
AnnaBridge 171:3a7713b1edbc 120 #define FLASH_TYPEERASE_SECTORS 0x00000000U /*!< Sectors erase only */
AnnaBridge 171:3a7713b1edbc 121 #define FLASH_TYPEERASE_MASSERASE 0x00000001U /*!< Flash Mass erase activation */
AnnaBridge 171:3a7713b1edbc 122 /**
AnnaBridge 171:3a7713b1edbc 123 * @}
AnnaBridge 171:3a7713b1edbc 124 */
AnnaBridge 171:3a7713b1edbc 125
AnnaBridge 171:3a7713b1edbc 126 /** @defgroup FLASHEx_Voltage_Range FLASH Voltage Range
AnnaBridge 171:3a7713b1edbc 127 * @{
AnnaBridge 171:3a7713b1edbc 128 */
AnnaBridge 171:3a7713b1edbc 129 #define FLASH_VOLTAGE_RANGE_1 0x00000000U /*!< Device operating range: 1.8V to 2.1V */
AnnaBridge 171:3a7713b1edbc 130 #define FLASH_VOLTAGE_RANGE_2 0x00000001U /*!< Device operating range: 2.1V to 2.7V */
AnnaBridge 171:3a7713b1edbc 131 #define FLASH_VOLTAGE_RANGE_3 0x00000002U /*!< Device operating range: 2.7V to 3.6V */
AnnaBridge 171:3a7713b1edbc 132 #define FLASH_VOLTAGE_RANGE_4 0x00000003U /*!< Device operating range: 2.7V to 3.6V + External Vpp */
AnnaBridge 171:3a7713b1edbc 133 /**
AnnaBridge 171:3a7713b1edbc 134 * @}
AnnaBridge 171:3a7713b1edbc 135 */
AnnaBridge 171:3a7713b1edbc 136
AnnaBridge 171:3a7713b1edbc 137 /** @defgroup FLASHEx_WRP_State FLASH WRP State
AnnaBridge 171:3a7713b1edbc 138 * @{
AnnaBridge 171:3a7713b1edbc 139 */
AnnaBridge 171:3a7713b1edbc 140 #define OB_WRPSTATE_DISABLE 0x00000000U /*!< Disable the write protection of the desired bank 1 sectors */
AnnaBridge 171:3a7713b1edbc 141 #define OB_WRPSTATE_ENABLE 0x00000001U /*!< Enable the write protection of the desired bank 1 sectors */
AnnaBridge 171:3a7713b1edbc 142 /**
AnnaBridge 171:3a7713b1edbc 143 * @}
AnnaBridge 171:3a7713b1edbc 144 */
AnnaBridge 171:3a7713b1edbc 145
AnnaBridge 171:3a7713b1edbc 146 /** @defgroup FLASHEx_Option_Type FLASH Option Type
AnnaBridge 171:3a7713b1edbc 147 * @{
AnnaBridge 171:3a7713b1edbc 148 */
AnnaBridge 171:3a7713b1edbc 149 #define OPTIONBYTE_WRP 0x00000001U /*!< WRP option byte configuration */
AnnaBridge 171:3a7713b1edbc 150 #define OPTIONBYTE_RDP 0x00000002U /*!< RDP option byte configuration */
AnnaBridge 171:3a7713b1edbc 151 #define OPTIONBYTE_USER 0x00000004U /*!< USER option byte configuration */
AnnaBridge 171:3a7713b1edbc 152 #define OPTIONBYTE_BOR 0x00000008U /*!< BOR option byte configuration */
AnnaBridge 171:3a7713b1edbc 153 /**
AnnaBridge 171:3a7713b1edbc 154 * @}
AnnaBridge 171:3a7713b1edbc 155 */
AnnaBridge 171:3a7713b1edbc 156
AnnaBridge 171:3a7713b1edbc 157 /** @defgroup FLASHEx_Option_Bytes_Read_Protection FLASH Option Bytes Read Protection
AnnaBridge 171:3a7713b1edbc 158 * @{
AnnaBridge 171:3a7713b1edbc 159 */
AnnaBridge 171:3a7713b1edbc 160 #define OB_RDP_LEVEL_0 ((uint8_t)0xAA)
AnnaBridge 171:3a7713b1edbc 161 #define OB_RDP_LEVEL_1 ((uint8_t)0x55)
AnnaBridge 171:3a7713b1edbc 162 #define OB_RDP_LEVEL_2 ((uint8_t)0xCC) /*!< Warning: When enabling read protection level 2
AnnaBridge 171:3a7713b1edbc 163 it s no more possible to go back to level 1 or 0 */
AnnaBridge 171:3a7713b1edbc 164 /**
AnnaBridge 171:3a7713b1edbc 165 * @}
AnnaBridge 171:3a7713b1edbc 166 */
AnnaBridge 171:3a7713b1edbc 167
AnnaBridge 171:3a7713b1edbc 168 /** @defgroup FLASHEx_Option_Bytes_IWatchdog FLASH Option Bytes IWatchdog
AnnaBridge 171:3a7713b1edbc 169 * @{
AnnaBridge 171:3a7713b1edbc 170 */
AnnaBridge 171:3a7713b1edbc 171 #define OB_IWDG_SW ((uint8_t)0x20) /*!< Software IWDG selected */
AnnaBridge 171:3a7713b1edbc 172 #define OB_IWDG_HW ((uint8_t)0x00) /*!< Hardware IWDG selected */
AnnaBridge 171:3a7713b1edbc 173 /**
AnnaBridge 171:3a7713b1edbc 174 * @}
AnnaBridge 171:3a7713b1edbc 175 */
AnnaBridge 171:3a7713b1edbc 176
AnnaBridge 171:3a7713b1edbc 177 /** @defgroup FLASHEx_Option_Bytes_nRST_STOP FLASH Option Bytes nRST_STOP
AnnaBridge 171:3a7713b1edbc 178 * @{
AnnaBridge 171:3a7713b1edbc 179 */
AnnaBridge 171:3a7713b1edbc 180 #define OB_STOP_NO_RST ((uint8_t)0x40) /*!< No reset generated when entering in STOP */
AnnaBridge 171:3a7713b1edbc 181 #define OB_STOP_RST ((uint8_t)0x00) /*!< Reset generated when entering in STOP */
AnnaBridge 171:3a7713b1edbc 182 /**
AnnaBridge 171:3a7713b1edbc 183 * @}
AnnaBridge 171:3a7713b1edbc 184 */
AnnaBridge 171:3a7713b1edbc 185
AnnaBridge 171:3a7713b1edbc 186
AnnaBridge 171:3a7713b1edbc 187 /** @defgroup FLASHEx_Option_Bytes_nRST_STDBY FLASH Option Bytes nRST_STDBY
AnnaBridge 171:3a7713b1edbc 188 * @{
AnnaBridge 171:3a7713b1edbc 189 */
AnnaBridge 171:3a7713b1edbc 190 #define OB_STDBY_NO_RST ((uint8_t)0x80) /*!< No reset generated when entering in STANDBY */
AnnaBridge 171:3a7713b1edbc 191 #define OB_STDBY_RST ((uint8_t)0x00) /*!< Reset generated when entering in STANDBY */
AnnaBridge 171:3a7713b1edbc 192 /**
AnnaBridge 171:3a7713b1edbc 193 * @}
AnnaBridge 171:3a7713b1edbc 194 */
AnnaBridge 171:3a7713b1edbc 195
AnnaBridge 171:3a7713b1edbc 196 /** @defgroup FLASHEx_BOR_Reset_Level FLASH BOR Reset Level
AnnaBridge 171:3a7713b1edbc 197 * @{
AnnaBridge 171:3a7713b1edbc 198 */
AnnaBridge 171:3a7713b1edbc 199 #define OB_BOR_LEVEL3 ((uint8_t)0x00) /*!< Supply voltage ranges from 2.70 to 3.60 V */
AnnaBridge 171:3a7713b1edbc 200 #define OB_BOR_LEVEL2 ((uint8_t)0x04) /*!< Supply voltage ranges from 2.40 to 2.70 V */
AnnaBridge 171:3a7713b1edbc 201 #define OB_BOR_LEVEL1 ((uint8_t)0x08) /*!< Supply voltage ranges from 2.10 to 2.40 V */
AnnaBridge 171:3a7713b1edbc 202 #define OB_BOR_OFF ((uint8_t)0x0C) /*!< Supply voltage ranges from 1.62 to 2.10 V */
AnnaBridge 171:3a7713b1edbc 203 /**
AnnaBridge 171:3a7713b1edbc 204 * @}
AnnaBridge 171:3a7713b1edbc 205 */
AnnaBridge 171:3a7713b1edbc 206
AnnaBridge 171:3a7713b1edbc 207
AnnaBridge 171:3a7713b1edbc 208 /**
AnnaBridge 171:3a7713b1edbc 209 * @}
AnnaBridge 171:3a7713b1edbc 210 */
AnnaBridge 171:3a7713b1edbc 211
AnnaBridge 171:3a7713b1edbc 212 /** @defgroup FLASH_Latency FLASH Latency
AnnaBridge 171:3a7713b1edbc 213 * @{
AnnaBridge 171:3a7713b1edbc 214 */
AnnaBridge 171:3a7713b1edbc 215 #define FLASH_LATENCY_0 FLASH_ACR_LATENCY_0WS /*!< FLASH Zero Latency cycle */
AnnaBridge 171:3a7713b1edbc 216 #define FLASH_LATENCY_1 FLASH_ACR_LATENCY_1WS /*!< FLASH One Latency cycle */
AnnaBridge 171:3a7713b1edbc 217 #define FLASH_LATENCY_2 FLASH_ACR_LATENCY_2WS /*!< FLASH Two Latency cycles */
AnnaBridge 171:3a7713b1edbc 218 #define FLASH_LATENCY_3 FLASH_ACR_LATENCY_3WS /*!< FLASH Three Latency cycles */
AnnaBridge 171:3a7713b1edbc 219 #define FLASH_LATENCY_4 FLASH_ACR_LATENCY_4WS /*!< FLASH Four Latency cycles */
AnnaBridge 171:3a7713b1edbc 220 #define FLASH_LATENCY_5 FLASH_ACR_LATENCY_5WS /*!< FLASH Five Latency cycles */
AnnaBridge 171:3a7713b1edbc 221 #define FLASH_LATENCY_6 FLASH_ACR_LATENCY_6WS /*!< FLASH Six Latency cycles */
AnnaBridge 171:3a7713b1edbc 222 #define FLASH_LATENCY_7 FLASH_ACR_LATENCY_7WS /*!< FLASH Seven Latency cycles */
AnnaBridge 171:3a7713b1edbc 223
AnnaBridge 171:3a7713b1edbc 224 /**
AnnaBridge 171:3a7713b1edbc 225 * @}
AnnaBridge 171:3a7713b1edbc 226 */
AnnaBridge 171:3a7713b1edbc 227
AnnaBridge 171:3a7713b1edbc 228
AnnaBridge 171:3a7713b1edbc 229 /** @defgroup FLASHEx_Banks FLASH Banks
AnnaBridge 171:3a7713b1edbc 230 * @{
AnnaBridge 171:3a7713b1edbc 231 */
AnnaBridge 171:3a7713b1edbc 232 #define FLASH_BANK_1 1U /*!< Bank 1 */
AnnaBridge 171:3a7713b1edbc 233 /**
AnnaBridge 171:3a7713b1edbc 234 * @}
AnnaBridge 171:3a7713b1edbc 235 */
AnnaBridge 171:3a7713b1edbc 236
AnnaBridge 171:3a7713b1edbc 237 /** @defgroup FLASHEx_MassErase_bit FLASH Mass Erase bit
AnnaBridge 171:3a7713b1edbc 238 * @{
AnnaBridge 171:3a7713b1edbc 239 */
AnnaBridge 171:3a7713b1edbc 240 #define FLASH_MER_BIT FLASH_CR_MER /*!< only 1 MER Bit */
AnnaBridge 171:3a7713b1edbc 241 /**
AnnaBridge 171:3a7713b1edbc 242 * @}
AnnaBridge 171:3a7713b1edbc 243 */
AnnaBridge 171:3a7713b1edbc 244
AnnaBridge 171:3a7713b1edbc 245 /** @defgroup FLASHEx_Sectors FLASH Sectors
AnnaBridge 171:3a7713b1edbc 246 * @{
AnnaBridge 171:3a7713b1edbc 247 */
AnnaBridge 171:3a7713b1edbc 248 #define FLASH_SECTOR_0 0U /*!< Sector Number 0 */
AnnaBridge 171:3a7713b1edbc 249 #define FLASH_SECTOR_1 1U /*!< Sector Number 1 */
AnnaBridge 171:3a7713b1edbc 250 #define FLASH_SECTOR_2 2U /*!< Sector Number 2 */
AnnaBridge 171:3a7713b1edbc 251 #define FLASH_SECTOR_3 3U /*!< Sector Number 3 */
AnnaBridge 171:3a7713b1edbc 252 #define FLASH_SECTOR_4 4U /*!< Sector Number 4 */
AnnaBridge 171:3a7713b1edbc 253 #define FLASH_SECTOR_5 5U /*!< Sector Number 5 */
AnnaBridge 171:3a7713b1edbc 254 #define FLASH_SECTOR_6 6U /*!< Sector Number 6 */
AnnaBridge 171:3a7713b1edbc 255 #define FLASH_SECTOR_7 7U /*!< Sector Number 7 */
AnnaBridge 171:3a7713b1edbc 256 #define FLASH_SECTOR_8 8U /*!< Sector Number 8 */
AnnaBridge 171:3a7713b1edbc 257 #define FLASH_SECTOR_9 9U /*!< Sector Number 9 */
AnnaBridge 171:3a7713b1edbc 258 #define FLASH_SECTOR_10 10U /*!< Sector Number 10 */
AnnaBridge 171:3a7713b1edbc 259 #define FLASH_SECTOR_11 11U /*!< Sector Number 11 */
AnnaBridge 171:3a7713b1edbc 260
AnnaBridge 171:3a7713b1edbc 261
AnnaBridge 171:3a7713b1edbc 262
AnnaBridge 171:3a7713b1edbc 263 /**
AnnaBridge 171:3a7713b1edbc 264 * @}
AnnaBridge 171:3a7713b1edbc 265 */
AnnaBridge 171:3a7713b1edbc 266
AnnaBridge 171:3a7713b1edbc 267 /** @defgroup FLASHEx_Option_Bytes_Write_Protection FLASH Option Bytes Write Protection
AnnaBridge 171:3a7713b1edbc 268 * @{
AnnaBridge 171:3a7713b1edbc 269 */
AnnaBridge 171:3a7713b1edbc 270 #define OB_WRP_SECTOR_0 0x00000001U /*!< Write protection of Sector0 */
AnnaBridge 171:3a7713b1edbc 271 #define OB_WRP_SECTOR_1 0x00000002U /*!< Write protection of Sector1 */
AnnaBridge 171:3a7713b1edbc 272 #define OB_WRP_SECTOR_2 0x00000004U /*!< Write protection of Sector2 */
AnnaBridge 171:3a7713b1edbc 273 #define OB_WRP_SECTOR_3 0x00000008U /*!< Write protection of Sector3 */
AnnaBridge 171:3a7713b1edbc 274 #define OB_WRP_SECTOR_4 0x00000010U /*!< Write protection of Sector4 */
AnnaBridge 171:3a7713b1edbc 275 #define OB_WRP_SECTOR_5 0x00000020U /*!< Write protection of Sector5 */
AnnaBridge 171:3a7713b1edbc 276 #define OB_WRP_SECTOR_6 0x00000040U /*!< Write protection of Sector6 */
AnnaBridge 171:3a7713b1edbc 277 #define OB_WRP_SECTOR_7 0x00000080U /*!< Write protection of Sector7 */
AnnaBridge 171:3a7713b1edbc 278 #define OB_WRP_SECTOR_8 0x00000100U /*!< Write protection of Sector8 */
AnnaBridge 171:3a7713b1edbc 279 #define OB_WRP_SECTOR_9 0x00000200U /*!< Write protection of Sector9 */
AnnaBridge 171:3a7713b1edbc 280 #define OB_WRP_SECTOR_10 0x00000400U /*!< Write protection of Sector10 */
AnnaBridge 171:3a7713b1edbc 281 #define OB_WRP_SECTOR_11 0x00000800U /*!< Write protection of Sector11 */
AnnaBridge 171:3a7713b1edbc 282 #define OB_WRP_SECTOR_All 0x00000FFFU /*!< Write protection of all Sectors */
AnnaBridge 171:3a7713b1edbc 283
AnnaBridge 171:3a7713b1edbc 284
AnnaBridge 171:3a7713b1edbc 285 /**
AnnaBridge 171:3a7713b1edbc 286 * @}
AnnaBridge 171:3a7713b1edbc 287 */
AnnaBridge 171:3a7713b1edbc 288
AnnaBridge 171:3a7713b1edbc 289 /**
AnnaBridge 171:3a7713b1edbc 290 * @}
AnnaBridge 171:3a7713b1edbc 291 */
AnnaBridge 171:3a7713b1edbc 292
AnnaBridge 171:3a7713b1edbc 293 /* Exported macro ------------------------------------------------------------*/
AnnaBridge 171:3a7713b1edbc 294
AnnaBridge 171:3a7713b1edbc 295 /* Exported functions --------------------------------------------------------*/
AnnaBridge 171:3a7713b1edbc 296 /** @addtogroup FLASHEx_Exported_Functions
AnnaBridge 171:3a7713b1edbc 297 * @{
AnnaBridge 171:3a7713b1edbc 298 */
AnnaBridge 171:3a7713b1edbc 299
AnnaBridge 171:3a7713b1edbc 300 /** @addtogroup FLASHEx_Exported_Functions_Group1
AnnaBridge 171:3a7713b1edbc 301 * @{
AnnaBridge 171:3a7713b1edbc 302 */
AnnaBridge 171:3a7713b1edbc 303 /* Extension Program operation functions *************************************/
AnnaBridge 171:3a7713b1edbc 304 HAL_StatusTypeDef HAL_FLASHEx_Erase(FLASH_EraseInitTypeDef *pEraseInit, uint32_t *SectorError);
AnnaBridge 171:3a7713b1edbc 305 HAL_StatusTypeDef HAL_FLASHEx_Erase_IT(FLASH_EraseInitTypeDef *pEraseInit);
AnnaBridge 171:3a7713b1edbc 306 HAL_StatusTypeDef HAL_FLASHEx_OBProgram(FLASH_OBProgramInitTypeDef *pOBInit);
AnnaBridge 171:3a7713b1edbc 307 void HAL_FLASHEx_OBGetConfig(FLASH_OBProgramInitTypeDef *pOBInit);
AnnaBridge 171:3a7713b1edbc 308
AnnaBridge 171:3a7713b1edbc 309 /**
AnnaBridge 171:3a7713b1edbc 310 * @}
AnnaBridge 171:3a7713b1edbc 311 */
AnnaBridge 171:3a7713b1edbc 312
AnnaBridge 171:3a7713b1edbc 313 /**
AnnaBridge 171:3a7713b1edbc 314 * @}
AnnaBridge 171:3a7713b1edbc 315 */
AnnaBridge 171:3a7713b1edbc 316 /* Private types -------------------------------------------------------------*/
AnnaBridge 171:3a7713b1edbc 317 /* Private variables ---------------------------------------------------------*/
AnnaBridge 171:3a7713b1edbc 318 /** @defgroup FLASHEx_Private_Variables FLASH Private Variables
AnnaBridge 171:3a7713b1edbc 319 * @{
AnnaBridge 171:3a7713b1edbc 320 */
AnnaBridge 171:3a7713b1edbc 321
AnnaBridge 171:3a7713b1edbc 322 /**
AnnaBridge 171:3a7713b1edbc 323 * @}
AnnaBridge 171:3a7713b1edbc 324 */
AnnaBridge 171:3a7713b1edbc 325 /* Private constants ---------------------------------------------------------*/
AnnaBridge 171:3a7713b1edbc 326 /** @defgroup FLASHEx_Private_Constants FLASH Private Constants
AnnaBridge 171:3a7713b1edbc 327 * @{
AnnaBridge 171:3a7713b1edbc 328 */
AnnaBridge 171:3a7713b1edbc 329
AnnaBridge 171:3a7713b1edbc 330 #define FLASH_SECTOR_TOTAL 12U
AnnaBridge 171:3a7713b1edbc 331
AnnaBridge 171:3a7713b1edbc 332 /**
AnnaBridge 171:3a7713b1edbc 333 * @}
AnnaBridge 171:3a7713b1edbc 334 */
AnnaBridge 171:3a7713b1edbc 335
AnnaBridge 171:3a7713b1edbc 336 /* Private macros ------------------------------------------------------------*/
AnnaBridge 171:3a7713b1edbc 337 /** @defgroup FLASHEx_Private_Macros FLASH Private Macros
AnnaBridge 171:3a7713b1edbc 338 * @{
AnnaBridge 171:3a7713b1edbc 339 */
AnnaBridge 171:3a7713b1edbc 340
AnnaBridge 171:3a7713b1edbc 341 /** @defgroup FLASHEx_IS_FLASH_Definitions FLASH Private macros to check input parameters
AnnaBridge 171:3a7713b1edbc 342 * @{
AnnaBridge 171:3a7713b1edbc 343 */
AnnaBridge 171:3a7713b1edbc 344
AnnaBridge 171:3a7713b1edbc 345 #define IS_FLASH_TYPEERASE(VALUE)(((VALUE) == FLASH_TYPEERASE_SECTORS) || \
AnnaBridge 171:3a7713b1edbc 346 ((VALUE) == FLASH_TYPEERASE_MASSERASE))
AnnaBridge 171:3a7713b1edbc 347
AnnaBridge 171:3a7713b1edbc 348 #define IS_VOLTAGERANGE(RANGE)(((RANGE) == FLASH_VOLTAGE_RANGE_1) || \
AnnaBridge 171:3a7713b1edbc 349 ((RANGE) == FLASH_VOLTAGE_RANGE_2) || \
AnnaBridge 171:3a7713b1edbc 350 ((RANGE) == FLASH_VOLTAGE_RANGE_3) || \
AnnaBridge 171:3a7713b1edbc 351 ((RANGE) == FLASH_VOLTAGE_RANGE_4))
AnnaBridge 171:3a7713b1edbc 352
AnnaBridge 171:3a7713b1edbc 353 #define IS_WRPSTATE(VALUE)(((VALUE) == OB_WRPSTATE_DISABLE) || \
AnnaBridge 171:3a7713b1edbc 354 ((VALUE) == OB_WRPSTATE_ENABLE))
AnnaBridge 171:3a7713b1edbc 355
AnnaBridge 171:3a7713b1edbc 356 #define IS_OPTIONBYTE(VALUE)(((VALUE) <= (OPTIONBYTE_WRP|OPTIONBYTE_RDP|OPTIONBYTE_USER|OPTIONBYTE_BOR)))
AnnaBridge 171:3a7713b1edbc 357
AnnaBridge 171:3a7713b1edbc 358 #define IS_OB_RDP_LEVEL(LEVEL) (((LEVEL) == OB_RDP_LEVEL_0) ||\
AnnaBridge 171:3a7713b1edbc 359 ((LEVEL) == OB_RDP_LEVEL_1) ||\
AnnaBridge 171:3a7713b1edbc 360 ((LEVEL) == OB_RDP_LEVEL_2))
AnnaBridge 171:3a7713b1edbc 361
AnnaBridge 171:3a7713b1edbc 362 #define IS_OB_IWDG_SOURCE(SOURCE) (((SOURCE) == OB_IWDG_SW) || ((SOURCE) == OB_IWDG_HW))
AnnaBridge 171:3a7713b1edbc 363
AnnaBridge 171:3a7713b1edbc 364 #define IS_OB_STOP_SOURCE(SOURCE) (((SOURCE) == OB_STOP_NO_RST) || ((SOURCE) == OB_STOP_RST))
AnnaBridge 171:3a7713b1edbc 365
AnnaBridge 171:3a7713b1edbc 366 #define IS_OB_STDBY_SOURCE(SOURCE) (((SOURCE) == OB_STDBY_NO_RST) || ((SOURCE) == OB_STDBY_RST))
AnnaBridge 171:3a7713b1edbc 367
AnnaBridge 171:3a7713b1edbc 368 #define IS_OB_BOR_LEVEL(LEVEL) (((LEVEL) == OB_BOR_LEVEL1) || ((LEVEL) == OB_BOR_LEVEL2) ||\
AnnaBridge 171:3a7713b1edbc 369 ((LEVEL) == OB_BOR_LEVEL3) || ((LEVEL) == OB_BOR_OFF))
AnnaBridge 171:3a7713b1edbc 370
AnnaBridge 171:3a7713b1edbc 371
AnnaBridge 171:3a7713b1edbc 372 #define IS_FLASH_LATENCY(LATENCY) (((LATENCY) == FLASH_LATENCY_0) || \
AnnaBridge 171:3a7713b1edbc 373 ((LATENCY) == FLASH_LATENCY_1) || \
AnnaBridge 171:3a7713b1edbc 374 ((LATENCY) == FLASH_LATENCY_2) || \
AnnaBridge 171:3a7713b1edbc 375 ((LATENCY) == FLASH_LATENCY_3) || \
AnnaBridge 171:3a7713b1edbc 376 ((LATENCY) == FLASH_LATENCY_4) || \
AnnaBridge 171:3a7713b1edbc 377 ((LATENCY) == FLASH_LATENCY_5) || \
AnnaBridge 171:3a7713b1edbc 378 ((LATENCY) == FLASH_LATENCY_6) || \
AnnaBridge 171:3a7713b1edbc 379 ((LATENCY) == FLASH_LATENCY_7))
AnnaBridge 171:3a7713b1edbc 380 #define IS_FLASH_BANK(BANK) (((BANK) == FLASH_BANK_1))
AnnaBridge 171:3a7713b1edbc 381 #define IS_FLASH_SECTOR(SECTOR) (((SECTOR) == FLASH_SECTOR_0) || ((SECTOR) == FLASH_SECTOR_1) ||\
AnnaBridge 171:3a7713b1edbc 382 ((SECTOR) == FLASH_SECTOR_2) || ((SECTOR) == FLASH_SECTOR_3) ||\
AnnaBridge 171:3a7713b1edbc 383 ((SECTOR) == FLASH_SECTOR_4) || ((SECTOR) == FLASH_SECTOR_5) ||\
AnnaBridge 171:3a7713b1edbc 384 ((SECTOR) == FLASH_SECTOR_6) || ((SECTOR) == FLASH_SECTOR_7) ||\
AnnaBridge 171:3a7713b1edbc 385 ((SECTOR) == FLASH_SECTOR_8) || ((SECTOR) == FLASH_SECTOR_9) ||\
AnnaBridge 171:3a7713b1edbc 386 ((SECTOR) == FLASH_SECTOR_10) || ((SECTOR) == FLASH_SECTOR_11))
AnnaBridge 171:3a7713b1edbc 387
AnnaBridge 171:3a7713b1edbc 388
AnnaBridge 171:3a7713b1edbc 389
AnnaBridge 171:3a7713b1edbc 390 #define IS_FLASH_ADDRESS(ADDRESS) ((((ADDRESS) >= FLASH_BASE) && ((ADDRESS) <= FLASH_END)) || \
AnnaBridge 171:3a7713b1edbc 391 (((ADDRESS) >= FLASH_OTP_BASE) && ((ADDRESS) <= FLASH_OTP_END)))
AnnaBridge 171:3a7713b1edbc 392 #define IS_FLASH_NBSECTORS(NBSECTORS) (((NBSECTORS) != 0U) && ((NBSECTORS) <= FLASH_SECTOR_TOTAL))
AnnaBridge 171:3a7713b1edbc 393 #define IS_OB_WRP_SECTOR(SECTOR)((((SECTOR) & 0xFFFFF000U) == 0x00000000U) && ((SECTOR) != 0x00000000U))
AnnaBridge 171:3a7713b1edbc 394
AnnaBridge 171:3a7713b1edbc 395 /**
AnnaBridge 171:3a7713b1edbc 396 * @}
AnnaBridge 171:3a7713b1edbc 397 */
AnnaBridge 171:3a7713b1edbc 398
AnnaBridge 171:3a7713b1edbc 399 /**
AnnaBridge 171:3a7713b1edbc 400 * @}
AnnaBridge 171:3a7713b1edbc 401 */
AnnaBridge 171:3a7713b1edbc 402
AnnaBridge 171:3a7713b1edbc 403 /* Private functions ---------------------------------------------------------*/
AnnaBridge 171:3a7713b1edbc 404 /** @defgroup FLASHEx_Private_Functions FLASH Private Functions
AnnaBridge 171:3a7713b1edbc 405 * @{
AnnaBridge 171:3a7713b1edbc 406 */
AnnaBridge 171:3a7713b1edbc 407 void FLASH_Erase_Sector(uint32_t Sector, uint8_t VoltageRange);
AnnaBridge 171:3a7713b1edbc 408 void FLASH_FlushCaches(void);
AnnaBridge 171:3a7713b1edbc 409 /**
AnnaBridge 171:3a7713b1edbc 410 * @}
AnnaBridge 171:3a7713b1edbc 411 */
AnnaBridge 171:3a7713b1edbc 412
AnnaBridge 171:3a7713b1edbc 413 /**
AnnaBridge 171:3a7713b1edbc 414 * @}
AnnaBridge 171:3a7713b1edbc 415 */
AnnaBridge 171:3a7713b1edbc 416
AnnaBridge 171:3a7713b1edbc 417 /**
AnnaBridge 171:3a7713b1edbc 418 * @}
AnnaBridge 171:3a7713b1edbc 419 */
AnnaBridge 171:3a7713b1edbc 420
AnnaBridge 171:3a7713b1edbc 421 #ifdef __cplusplus
AnnaBridge 171:3a7713b1edbc 422 }
AnnaBridge 171:3a7713b1edbc 423 #endif
AnnaBridge 171:3a7713b1edbc 424
AnnaBridge 171:3a7713b1edbc 425 #endif /* __STM32F2xx_HAL_FLASH_EX_H */
AnnaBridge 171:3a7713b1edbc 426
AnnaBridge 171:3a7713b1edbc 427 /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/