30 #ifndef __STM32F0XX_FLASH_H
31 #define __STM32F0XX_FLASH_H
38 #include "stm32f0xx.h"
71 #define FLASH_Latency_0 ((uint32_t)0x00000000)
72 #define FLASH_Latency_1 FLASH_ACR_LATENCY
74 #define IS_FLASH_LATENCY(LATENCY) (((LATENCY) == FLASH_Latency_0) || \
75 ((LATENCY) == FLASH_Latency_1))
84 #define FLASH_IT_EOP FLASH_CR_EOPIE
85 #define FLASH_IT_ERR FLASH_CR_ERRIE
86 #define IS_FLASH_IT(IT) ((((IT) & (uint32_t)0xFFFFEBFF) == 0x00000000) && (((IT) != 0x00000000)))
95 #define IS_FLASH_PROGRAM_ADDRESS(ADDRESS) (((ADDRESS) >= 0x08000000) && ((ADDRESS) <= 0x0800FFFF))
104 #define IS_OB_DATA_ADDRESS(ADDRESS) (((ADDRESS) == 0x1FFFF804) || ((ADDRESS) == 0x1FFFF806))
115 #define OB_WRP_Pages0to3 ((uint32_t)0x00000001)
116 #define OB_WRP_Pages4to7 ((uint32_t)0x00000002)
117 #define OB_WRP_Pages8to11 ((uint32_t)0x00000004)
118 #define OB_WRP_Pages12to15 ((uint32_t)0x00000008)
119 #define OB_WRP_Pages16to19 ((uint32_t)0x00000010)
120 #define OB_WRP_Pages20to23 ((uint32_t)0x00000020)
121 #define OB_WRP_Pages24to27 ((uint32_t)0x00000040)
122 #define OB_WRP_Pages28to31 ((uint32_t)0x00000080)
123 #define OB_WRP_Pages32to35 ((uint32_t)0x00000100)
124 #define OB_WRP_Pages36to39 ((uint32_t)0x00000200)
125 #define OB_WRP_Pages40to43 ((uint32_t)0x00000400)
126 #define OB_WRP_Pages44to47 ((uint32_t)0x00000800)
127 #define OB_WRP_Pages48to51 ((uint32_t)0x00001000)
128 #define OB_WRP_Pages52to55 ((uint32_t)0x00002000)
129 #define OB_WRP_Pages56to59 ((uint32_t)0x00004000)
130 #define OB_WRP_Pages60to63 ((uint32_t)0x00008000)
132 #define OB_WRP_AllPages ((uint32_t)0x0000FFFF)
134 #define IS_OB_WRP(PAGE) (((PAGE) != 0x0000000))
147 #define OB_RDP_Level_0 ((uint8_t)0xAA)
148 #define OB_RDP_Level_1 ((uint8_t)0xBB)
152 #define IS_OB_RDP(LEVEL) (((LEVEL) == OB_RDP_Level_0)||\
153 ((LEVEL) == OB_RDP_Level_1))
163 #define OB_IWDG_SW ((uint8_t)0x01)
164 #define OB_IWDG_HW ((uint8_t)0x00)
165 #define IS_OB_IWDG_SOURCE(SOURCE) (((SOURCE) == OB_IWDG_SW) || ((SOURCE) == OB_IWDG_HW))
175 #define OB_STOP_NoRST ((uint8_t)0x02)
176 #define OB_STOP_RST ((uint8_t)0x00)
177 #define IS_OB_STOP_SOURCE(SOURCE) (((SOURCE) == OB_STOP_NoRST) || ((SOURCE) == OB_STOP_RST))
187 #define OB_STDBY_NoRST ((uint8_t)0x04)
188 #define OB_STDBY_RST ((uint8_t)0x00)
189 #define IS_OB_STDBY_SOURCE(SOURCE) (((SOURCE) == OB_STDBY_NoRST) || ((SOURCE) == OB_STDBY_RST))
199 #define OB_BOOT1_RESET ((uint8_t)0x00)
200 #define OB_BOOT1_SET ((uint8_t)0x10)
201 #define IS_OB_BOOT1(BOOT1) (((BOOT1) == OB_BOOT1_RESET) || ((BOOT1) == OB_BOOT1_SET))
211 #define OB_VDDA_ANALOG_ON ((uint8_t)0x00)
212 #define OB_VDDA_ANALOG_OFF ((uint8_t)0x20)
214 #define IS_OB_VDDA_ANALOG(ANALOG) (((ANALOG) == OB_VDDA_ANALOG_ON) || ((ANALOG) == OB_VDDA_ANALOG_OFF))
224 #define OB_SRAM_PARITY_SET ((uint8_t)0x00)
225 #define OB_SRAM_PARITY_RESET ((uint8_t)0x40)
227 #define IS_OB_SRAM_PARITY(PARITY) (((PARITY) == OB_SRAM_PARITY_SET) || ((PARITY) == OB_SRAM_PARITY_RESET))
237 #define FLASH_FLAG_BSY FLASH_SR_BSY
238 #define FLASH_FLAG_PGERR FLASH_SR_PGERR
239 #define FLASH_FLAG_WRPERR FLASH_SR_WRPERR
240 #define FLASH_FLAG_EOP FLASH_SR_EOP
242 #define IS_FLASH_CLEAR_FLAG(FLAG) ((((FLAG) & (uint32_t)0xFFFFFFC3) == 0x00000000) && ((FLAG) != 0x00000000))
244 #define IS_FLASH_GET_FLAG(FLAG) (((FLAG) == FLASH_FLAG_BSY) || ((FLAG) == FLASH_FLAG_PGERR) || \
245 ((FLAG) == FLASH_FLAG_WRPERR) || ((FLAG) == FLASH_FLAG_EOP))
253 #define FLASH_ER_PRG_TIMEOUT ((uint32_t)0x000B0000)