File indexing completed on 2025-05-11 08:23:35
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019 #ifndef STM32H7xx_HAL_FLASH_H
0020 #define STM32H7xx_HAL_FLASH_H
0021
0022 #ifdef __cplusplus
0023 extern "C" {
0024 #endif
0025
0026
0027 #include "stm32h7xx_hal_def.h"
0028
0029
0030
0031
0032
0033
0034
0035
0036
0037
0038
0039
0040
0041
0042
0043
0044
0045
0046 typedef enum
0047 {
0048 FLASH_PROC_NONE = 0U,
0049 FLASH_PROC_SECTERASE_BANK1,
0050 FLASH_PROC_MASSERASE_BANK1,
0051 FLASH_PROC_PROGRAM_BANK1,
0052 FLASH_PROC_SECTERASE_BANK2,
0053 FLASH_PROC_MASSERASE_BANK2,
0054 FLASH_PROC_PROGRAM_BANK2,
0055 FLASH_PROC_ALLBANK_MASSERASE
0056 } FLASH_ProcedureTypeDef;
0057
0058
0059
0060
0061
0062 typedef struct
0063 {
0064 __IO FLASH_ProcedureTypeDef ProcedureOnGoing;
0065
0066 __IO uint32_t NbSectorsToErase;
0067
0068 __IO uint32_t VoltageForErase;
0069
0070 __IO uint32_t Sector;
0071
0072 __IO uint32_t Address;
0073
0074 HAL_LockTypeDef Lock;
0075
0076 __IO uint32_t ErrorCode;
0077
0078 }FLASH_ProcessTypeDef;
0079
0080
0081
0082
0083
0084
0085
0086
0087
0088
0089
0090
0091
0092
0093
0094
0095 #define HAL_FLASH_ERROR_NONE 0x00000000U
0096
0097 #define HAL_FLASH_ERROR_WRP FLASH_FLAG_WRPERR
0098 #define HAL_FLASH_ERROR_PGS FLASH_FLAG_PGSERR
0099 #define HAL_FLASH_ERROR_STRB FLASH_FLAG_STRBERR
0100 #define HAL_FLASH_ERROR_INC FLASH_FLAG_INCERR
0101 #if defined (FLASH_SR_OPERR)
0102 #define HAL_FLASH_ERROR_OPE FLASH_FLAG_OPERR
0103 #endif
0104 #define HAL_FLASH_ERROR_RDP FLASH_FLAG_RDPERR
0105 #define HAL_FLASH_ERROR_RDS FLASH_FLAG_RDSERR
0106 #define HAL_FLASH_ERROR_SNECC FLASH_FLAG_SNECCERR
0107 #define HAL_FLASH_ERROR_DBECC FLASH_FLAG_DBECCERR
0108 #define HAL_FLASH_ERROR_CRCRD FLASH_FLAG_CRCRDERR
0109
0110 #define HAL_FLASH_ERROR_WRP_BANK1 FLASH_FLAG_WRPERR_BANK1
0111 #define HAL_FLASH_ERROR_PGS_BANK1 FLASH_FLAG_PGSERR_BANK1
0112 #define HAL_FLASH_ERROR_STRB_BANK1 FLASH_FLAG_STRBERR_BANK1
0113 #define HAL_FLASH_ERROR_INC_BANK1 FLASH_FLAG_INCERR_BANK1
0114 #if defined (FLASH_SR_OPERR)
0115 #define HAL_FLASH_ERROR_OPE_BANK1 FLASH_FLAG_OPERR_BANK1
0116 #endif
0117 #define HAL_FLASH_ERROR_RDP_BANK1 FLASH_FLAG_RDPERR_BANK1
0118 #define HAL_FLASH_ERROR_RDS_BANK1 FLASH_FLAG_RDSERR_BANK1
0119 #define HAL_FLASH_ERROR_SNECC_BANK1 FLASH_FLAG_SNECCERR_BANK1
0120 #define HAL_FLASH_ERROR_DBECC_BANK1 FLASH_FLAG_DBECCERR_BANK1
0121 #define HAL_FLASH_ERROR_CRCRD_BANK1 FLASH_FLAG_CRCRDERR_BANK1
0122
0123 #define HAL_FLASH_ERROR_WRP_BANK2 FLASH_FLAG_WRPERR_BANK2
0124 #define HAL_FLASH_ERROR_PGS_BANK2 FLASH_FLAG_PGSERR_BANK2
0125 #define HAL_FLASH_ERROR_STRB_BANK2 FLASH_FLAG_STRBERR_BANK2
0126 #define HAL_FLASH_ERROR_INC_BANK2 FLASH_FLAG_INCERR_BANK2
0127 #if defined (FLASH_SR_OPERR)
0128 #define HAL_FLASH_ERROR_OPE_BANK2 FLASH_FLAG_OPERR_BANK2
0129 #endif
0130 #define HAL_FLASH_ERROR_RDP_BANK2 FLASH_FLAG_RDPERR_BANK2
0131 #define HAL_FLASH_ERROR_RDS_BANK2 FLASH_FLAG_RDSERR_BANK2
0132 #define HAL_FLASH_ERROR_SNECC_BANK2 FLASH_FLAG_SNECCERR_BANK2
0133 #define HAL_FLASH_ERROR_DBECC_BANK2 FLASH_FLAG_DBECCERR_BANK2
0134 #define HAL_FLASH_ERROR_CRCRD_BANK2 FLASH_FLAG_CRCRDERR_BANK2
0135
0136 #define HAL_FLASH_ERROR_OB_CHANGE FLASH_OPTSR_OPTCHANGEERR
0137
0138
0139
0140
0141
0142
0143
0144
0145 #define FLASH_TYPEPROGRAM_FLASHWORD 0x01U
0146 #if defined (FLASH_OPTCR_PG_OTP)
0147 #define FLASH_TYPEPROGRAM_OTPWORD 0x02U
0148 #endif
0149
0150
0151
0152
0153
0154
0155
0156
0157
0158 #define FLASH_FLAG_BSY FLASH_SR_BSY
0159 #define FLASH_FLAG_WBNE FLASH_SR_WBNE
0160 #define FLASH_FLAG_QW FLASH_SR_QW
0161 #define FLASH_FLAG_CRC_BUSY FLASH_SR_CRC_BUSY
0162 #define FLASH_FLAG_EOP FLASH_SR_EOP
0163 #define FLASH_FLAG_WRPERR FLASH_SR_WRPERR
0164 #define FLASH_FLAG_PGSERR FLASH_SR_PGSERR
0165 #define FLASH_FLAG_STRBERR FLASH_SR_STRBERR
0166 #define FLASH_FLAG_INCERR FLASH_SR_INCERR
0167 #if defined (FLASH_SR_OPERR)
0168 #define FLASH_FLAG_OPERR FLASH_SR_OPERR
0169 #endif
0170 #define FLASH_FLAG_RDPERR FLASH_SR_RDPERR
0171 #define FLASH_FLAG_RDSERR FLASH_SR_RDSERR
0172 #define FLASH_FLAG_SNECCERR FLASH_SR_SNECCERR
0173 #define FLASH_FLAG_DBECCERR FLASH_SR_DBECCERR
0174 #define FLASH_FLAG_CRCEND FLASH_SR_CRCEND
0175 #define FLASH_FLAG_CRCRDERR FLASH_SR_CRCRDERR
0176
0177 #define FLASH_FLAG_BSY_BANK1 FLASH_SR_BSY
0178 #define FLASH_FLAG_WBNE_BANK1 FLASH_SR_WBNE
0179 #define FLASH_FLAG_QW_BANK1 FLASH_SR_QW
0180 #define FLASH_FLAG_CRC_BUSY_BANK1 FLASH_SR_CRC_BUSY
0181 #define FLASH_FLAG_EOP_BANK1 FLASH_SR_EOP
0182 #define FLASH_FLAG_WRPERR_BANK1 FLASH_SR_WRPERR
0183 #define FLASH_FLAG_PGSERR_BANK1 FLASH_SR_PGSERR
0184 #define FLASH_FLAG_STRBERR_BANK1 FLASH_SR_STRBERR
0185 #define FLASH_FLAG_INCERR_BANK1 FLASH_SR_INCERR
0186 #if defined (FLASH_SR_OPERR)
0187 #define FLASH_FLAG_OPERR_BANK1 FLASH_SR_OPERR
0188 #endif
0189 #define FLASH_FLAG_RDPERR_BANK1 FLASH_SR_RDPERR
0190 #define FLASH_FLAG_RDSERR_BANK1 FLASH_SR_RDSERR
0191 #define FLASH_FLAG_SNECCERR_BANK1 FLASH_SR_SNECCERR
0192 #define FLASH_FLAG_DBECCERR_BANK1 FLASH_SR_DBECCERR
0193 #define FLASH_FLAG_CRCEND_BANK1 FLASH_SR_CRCEND
0194 #define FLASH_FLAG_CRCRDERR_BANK1 FLASH_SR_CRCRDERR
0195
0196 #if defined (FLASH_SR_OPERR)
0197 #define FLASH_FLAG_ALL_ERRORS_BANK1 (FLASH_FLAG_WRPERR_BANK1 | FLASH_FLAG_PGSERR_BANK1 | \
0198 FLASH_FLAG_STRBERR_BANK1 | FLASH_FLAG_INCERR_BANK1 | \
0199 FLASH_FLAG_OPERR_BANK1 | FLASH_FLAG_RDPERR_BANK1 | \
0200 FLASH_FLAG_RDSERR_BANK1 | FLASH_FLAG_SNECCERR_BANK1 | \
0201 FLASH_FLAG_DBECCERR_BANK1 | FLASH_FLAG_CRCRDERR_BANK1)
0202 #else
0203 #define FLASH_FLAG_ALL_ERRORS_BANK1 (FLASH_FLAG_WRPERR_BANK1 | FLASH_FLAG_PGSERR_BANK1 | \
0204 FLASH_FLAG_STRBERR_BANK1 | FLASH_FLAG_INCERR_BANK1 | \
0205 FLASH_FLAG_RDPERR_BANK1 | FLASH_FLAG_RDSERR_BANK1 | \
0206 FLASH_FLAG_SNECCERR_BANK1 | FLASH_FLAG_DBECCERR_BANK1 | \
0207 FLASH_FLAG_CRCRDERR_BANK1)
0208 #endif
0209
0210 #define FLASH_FLAG_ALL_BANK1 (FLASH_FLAG_BSY_BANK1 | FLASH_FLAG_WBNE_BANK1 | \
0211 FLASH_FLAG_QW_BANK1 | FLASH_FLAG_CRC_BUSY_BANK1 | \
0212 FLASH_FLAG_EOP_BANK1 | FLASH_FLAG_CRCEND_BANK1 | \
0213 FLASH_FLAG_ALL_ERRORS_BANK1)
0214
0215 #define FLASH_FLAG_BSY_BANK2 (FLASH_SR_BSY | 0x80000000U)
0216 #define FLASH_FLAG_WBNE_BANK2 (FLASH_SR_WBNE | 0x80000000U)
0217 #define FLASH_FLAG_QW_BANK2 (FLASH_SR_QW | 0x80000000U)
0218 #define FLASH_FLAG_CRC_BUSY_BANK2 (FLASH_SR_CRC_BUSY | 0x80000000U)
0219 #define FLASH_FLAG_EOP_BANK2 (FLASH_SR_EOP | 0x80000000U)
0220 #define FLASH_FLAG_WRPERR_BANK2 (FLASH_SR_WRPERR | 0x80000000U)
0221 #define FLASH_FLAG_PGSERR_BANK2 (FLASH_SR_PGSERR | 0x80000000U)
0222 #define FLASH_FLAG_STRBERR_BANK2 (FLASH_SR_STRBERR | 0x80000000U)
0223 #define FLASH_FLAG_INCERR_BANK2 (FLASH_SR_INCERR | 0x80000000U)
0224 #if defined (FLASH_SR_OPERR)
0225 #define FLASH_FLAG_OPERR_BANK2 (FLASH_SR_OPERR | 0x80000000U)
0226 #endif
0227 #define FLASH_FLAG_RDPERR_BANK2 (FLASH_SR_RDPERR | 0x80000000U)
0228 #define FLASH_FLAG_RDSERR_BANK2 (FLASH_SR_RDSERR | 0x80000000U)
0229 #define FLASH_FLAG_SNECCERR_BANK2 (FLASH_SR_SNECCERR | 0x80000000U)
0230 #define FLASH_FLAG_DBECCERR_BANK2 (FLASH_SR_DBECCERR | 0x80000000U)
0231 #define FLASH_FLAG_CRCEND_BANK2 (FLASH_SR_CRCEND | 0x80000000U)
0232 #define FLASH_FLAG_CRCRDERR_BANK2 (FLASH_SR_CRCRDERR | 0x80000000U)
0233
0234 #if defined (FLASH_SR_OPERR)
0235 #define FLASH_FLAG_ALL_ERRORS_BANK2 (FLASH_FLAG_WRPERR_BANK2 | FLASH_FLAG_PGSERR_BANK2 | \
0236 FLASH_FLAG_STRBERR_BANK2 | FLASH_FLAG_INCERR_BANK2 | \
0237 FLASH_FLAG_OPERR_BANK2 | FLASH_FLAG_RDPERR_BANK2 | \
0238 FLASH_FLAG_RDSERR_BANK2 | FLASH_FLAG_SNECCERR_BANK2 | \
0239 FLASH_FLAG_DBECCERR_BANK2 | FLASH_FLAG_CRCRDERR_BANK2)
0240 #else
0241 #define FLASH_FLAG_ALL_ERRORS_BANK2 (FLASH_FLAG_WRPERR_BANK2 | FLASH_FLAG_PGSERR_BANK2 | \
0242 FLASH_FLAG_STRBERR_BANK2 | FLASH_FLAG_INCERR_BANK2 | \
0243 FLASH_FLAG_RDPERR_BANK2 | FLASH_FLAG_RDSERR_BANK2 | \
0244 FLASH_FLAG_SNECCERR_BANK2 | FLASH_FLAG_DBECCERR_BANK2 | \
0245 FLASH_FLAG_CRCRDERR_BANK2)
0246 #endif
0247
0248 #define FLASH_FLAG_ALL_BANK2 (FLASH_FLAG_BSY_BANK2 | FLASH_FLAG_WBNE_BANK2 | \
0249 FLASH_FLAG_QW_BANK2 | FLASH_FLAG_CRC_BUSY_BANK2 | \
0250 FLASH_FLAG_EOP_BANK2 | FLASH_FLAG_CRCEND_BANK2 | \
0251 FLASH_FLAG_ALL_ERRORS_BANK2)
0252
0253
0254
0255
0256
0257
0258
0259
0260
0261 #define FLASH_IT_EOP_BANK1 FLASH_CR_EOPIE
0262 #define FLASH_IT_WRPERR_BANK1 FLASH_CR_WRPERRIE
0263 #define FLASH_IT_PGSERR_BANK1 FLASH_CR_PGSERRIE
0264 #define FLASH_IT_STRBERR_BANK1 FLASH_CR_STRBERRIE
0265 #define FLASH_IT_INCERR_BANK1 FLASH_CR_INCERRIE
0266 #if defined (FLASH_CR_OPERRIE)
0267 #define FLASH_IT_OPERR_BANK1 FLASH_CR_OPERRIE
0268 #endif
0269 #define FLASH_IT_RDPERR_BANK1 FLASH_CR_RDPERRIE
0270 #define FLASH_IT_RDSERR_BANK1 FLASH_CR_RDSERRIE
0271 #define FLASH_IT_SNECCERR_BANK1 FLASH_CR_SNECCERRIE
0272 #define FLASH_IT_DBECCERR_BANK1 FLASH_CR_DBECCERRIE
0273 #define FLASH_IT_CRCEND_BANK1 FLASH_CR_CRCENDIE
0274 #define FLASH_IT_CRCRDERR_BANK1 FLASH_CR_CRCRDERRIE
0275
0276 #if defined (FLASH_CR_OPERRIE)
0277 #define FLASH_IT_ALL_BANK1 (FLASH_IT_EOP_BANK1 | FLASH_IT_WRPERR_BANK1 | \
0278 FLASH_IT_PGSERR_BANK1 | FLASH_IT_STRBERR_BANK1 | \
0279 FLASH_IT_INCERR_BANK1 | FLASH_IT_OPERR_BANK1 | \
0280 FLASH_IT_RDPERR_BANK1 | FLASH_IT_RDSERR_BANK1 | \
0281 FLASH_IT_SNECCERR_BANK1 | FLASH_IT_DBECCERR_BANK1 | \
0282 FLASH_IT_CRCEND_BANK1 | FLASH_IT_CRCRDERR_BANK1)
0283 #else
0284 #define FLASH_IT_ALL_BANK1 (FLASH_IT_EOP_BANK1 | FLASH_IT_WRPERR_BANK1 | \
0285 FLASH_IT_PGSERR_BANK1 | FLASH_IT_STRBERR_BANK1 | \
0286 FLASH_IT_INCERR_BANK1 | FLASH_IT_RDPERR_BANK1 | \
0287 FLASH_IT_RDSERR_BANK1 | FLASH_IT_SNECCERR_BANK1 | \
0288 FLASH_IT_DBECCERR_BANK1 | FLASH_IT_CRCEND_BANK1 | \
0289 FLASH_IT_CRCRDERR_BANK1)
0290 #endif
0291
0292 #define FLASH_IT_EOP_BANK2 (FLASH_CR_EOPIE | 0x80000000U)
0293 #define FLASH_IT_WRPERR_BANK2 (FLASH_CR_WRPERRIE | 0x80000000U)
0294 #define FLASH_IT_PGSERR_BANK2 (FLASH_CR_PGSERRIE | 0x80000000U)
0295 #define FLASH_IT_STRBERR_BANK2 (FLASH_CR_STRBERRIE | 0x80000000U)
0296 #define FLASH_IT_INCERR_BANK2 (FLASH_CR_INCERRIE | 0x80000000U)
0297 #if defined (FLASH_CR_OPERRIE)
0298 #define FLASH_IT_OPERR_BANK2 (FLASH_CR_OPERRIE | 0x80000000U)
0299 #endif
0300 #define FLASH_IT_RDPERR_BANK2 (FLASH_CR_RDPERRIE | 0x80000000U)
0301 #define FLASH_IT_RDSERR_BANK2 (FLASH_CR_RDSERRIE | 0x80000000U)
0302 #define FLASH_IT_SNECCERR_BANK2 (FLASH_CR_SNECCERRIE | 0x80000000U)
0303 #define FLASH_IT_DBECCERR_BANK2 (FLASH_CR_DBECCERRIE | 0x80000000U)
0304 #define FLASH_IT_CRCEND_BANK2 (FLASH_CR_CRCENDIE | 0x80000000U)
0305 #define FLASH_IT_CRCRDERR_BANK2 (FLASH_CR_CRCRDERRIE | 0x80000000U)
0306
0307 #if defined (FLASH_CR_OPERRIE)
0308 #define FLASH_IT_ALL_BANK2 (FLASH_IT_EOP_BANK2 | FLASH_IT_WRPERR_BANK2 | \
0309 FLASH_IT_PGSERR_BANK2 | FLASH_IT_STRBERR_BANK2 | \
0310 FLASH_IT_INCERR_BANK2 | FLASH_IT_OPERR_BANK2 | \
0311 FLASH_IT_RDPERR_BANK2 | FLASH_IT_RDSERR_BANK2 | \
0312 FLASH_IT_SNECCERR_BANK2 | FLASH_IT_DBECCERR_BANK2 | \
0313 FLASH_IT_CRCEND_BANK2 | FLASH_IT_CRCRDERR_BANK2)
0314 #else
0315 #define FLASH_IT_ALL_BANK2 (FLASH_IT_EOP_BANK2 | FLASH_IT_WRPERR_BANK2 | \
0316 FLASH_IT_PGSERR_BANK2 | FLASH_IT_STRBERR_BANK2 | \
0317 FLASH_IT_INCERR_BANK2 | FLASH_IT_RDPERR_BANK2 | \
0318 FLASH_IT_RDSERR_BANK2 | FLASH_IT_SNECCERR_BANK2 | \
0319 FLASH_IT_DBECCERR_BANK2 | FLASH_IT_CRCEND_BANK2 | \
0320 FLASH_IT_CRCRDERR_BANK2)
0321 #endif
0322
0323
0324
0325
0326 #if defined (FLASH_CR_PSIZE)
0327
0328
0329
0330
0331 #define FLASH_PSIZE_BYTE 0x00000000U
0332 #define FLASH_PSIZE_HALF_WORD FLASH_CR_PSIZE_0
0333 #define FLASH_PSIZE_WORD FLASH_CR_PSIZE_1
0334 #define FLASH_PSIZE_DOUBLE_WORD FLASH_CR_PSIZE
0335
0336
0337
0338 #endif
0339
0340
0341
0342
0343
0344
0345 #define FLASH_KEY1 0x45670123U
0346 #define FLASH_KEY2 0xCDEF89ABU
0347 #define FLASH_OPT_KEY1 0x08192A3BU
0348 #define FLASH_OPT_KEY2 0x4C5D6E7FU
0349
0350
0351
0352
0353
0354
0355
0356
0357 #define FLASH_SECTOR_0 0U
0358 #define FLASH_SECTOR_1 1U
0359 #define FLASH_SECTOR_2 2U
0360 #define FLASH_SECTOR_3 3U
0361 #define FLASH_SECTOR_4 4U
0362 #define FLASH_SECTOR_5 5U
0363 #define FLASH_SECTOR_6 6U
0364 #define FLASH_SECTOR_7 7U
0365 #if (FLASH_SECTOR_TOTAL == 128)
0366 #define FLASH_SECTOR_8 8U
0367 #define FLASH_SECTOR_9 9U
0368 #define FLASH_SECTOR_10 10U
0369 #define FLASH_SECTOR_11 11U
0370 #define FLASH_SECTOR_12 12U
0371 #define FLASH_SECTOR_13 13U
0372 #define FLASH_SECTOR_14 14U
0373 #define FLASH_SECTOR_15 15U
0374 #define FLASH_SECTOR_16 16U
0375 #define FLASH_SECTOR_17 17U
0376 #define FLASH_SECTOR_18 18U
0377 #define FLASH_SECTOR_19 19U
0378 #define FLASH_SECTOR_20 20U
0379 #define FLASH_SECTOR_21 21U
0380 #define FLASH_SECTOR_22 22U
0381 #define FLASH_SECTOR_23 23U
0382 #define FLASH_SECTOR_24 24U
0383 #define FLASH_SECTOR_25 25U
0384 #define FLASH_SECTOR_26 26U
0385 #define FLASH_SECTOR_27 27U
0386 #define FLASH_SECTOR_28 28U
0387 #define FLASH_SECTOR_29 29U
0388 #define FLASH_SECTOR_30 30U
0389 #define FLASH_SECTOR_31 31U
0390 #define FLASH_SECTOR_32 32U
0391 #define FLASH_SECTOR_33 33U
0392 #define FLASH_SECTOR_34 34U
0393 #define FLASH_SECTOR_35 35U
0394 #define FLASH_SECTOR_36 36U
0395 #define FLASH_SECTOR_37 37U
0396 #define FLASH_SECTOR_38 38U
0397 #define FLASH_SECTOR_39 39U
0398 #define FLASH_SECTOR_40 40U
0399 #define FLASH_SECTOR_41 41U
0400 #define FLASH_SECTOR_42 42U
0401 #define FLASH_SECTOR_43 43U
0402 #define FLASH_SECTOR_44 44U
0403 #define FLASH_SECTOR_45 45U
0404 #define FLASH_SECTOR_46 46U
0405 #define FLASH_SECTOR_47 47U
0406 #define FLASH_SECTOR_48 48U
0407 #define FLASH_SECTOR_49 49U
0408 #define FLASH_SECTOR_50 50U
0409 #define FLASH_SECTOR_51 51U
0410 #define FLASH_SECTOR_52 52U
0411 #define FLASH_SECTOR_53 53U
0412 #define FLASH_SECTOR_54 54U
0413 #define FLASH_SECTOR_55 55U
0414 #define FLASH_SECTOR_56 56U
0415 #define FLASH_SECTOR_57 57U
0416 #define FLASH_SECTOR_58 58U
0417 #define FLASH_SECTOR_59 59U
0418 #define FLASH_SECTOR_60 60U
0419 #define FLASH_SECTOR_61 61U
0420 #define FLASH_SECTOR_62 62U
0421 #define FLASH_SECTOR_63 63U
0422 #define FLASH_SECTOR_64 64U
0423 #define FLASH_SECTOR_65 65U
0424 #define FLASH_SECTOR_66 66U
0425 #define FLASH_SECTOR_67 67U
0426 #define FLASH_SECTOR_68 68U
0427 #define FLASH_SECTOR_69 69U
0428 #define FLASH_SECTOR_70 70U
0429 #define FLASH_SECTOR_71 71U
0430 #define FLASH_SECTOR_72 72U
0431 #define FLASH_SECTOR_73 73U
0432 #define FLASH_SECTOR_74 74U
0433 #define FLASH_SECTOR_75 75U
0434 #define FLASH_SECTOR_76 76U
0435 #define FLASH_SECTOR_77 77U
0436 #define FLASH_SECTOR_78 78U
0437 #define FLASH_SECTOR_79 79U
0438 #define FLASH_SECTOR_80 80U
0439 #define FLASH_SECTOR_81 81U
0440 #define FLASH_SECTOR_82 82U
0441 #define FLASH_SECTOR_83 83U
0442 #define FLASH_SECTOR_84 84U
0443 #define FLASH_SECTOR_85 85U
0444 #define FLASH_SECTOR_86 86U
0445 #define FLASH_SECTOR_87 87U
0446 #define FLASH_SECTOR_88 88U
0447 #define FLASH_SECTOR_89 89U
0448 #define FLASH_SECTOR_90 90U
0449 #define FLASH_SECTOR_91 91U
0450 #define FLASH_SECTOR_92 92U
0451 #define FLASH_SECTOR_93 93U
0452 #define FLASH_SECTOR_94 94U
0453 #define FLASH_SECTOR_95 95U
0454 #define FLASH_SECTOR_96 96U
0455 #define FLASH_SECTOR_97 97U
0456 #define FLASH_SECTOR_98 98U
0457 #define FLASH_SECTOR_99 99U
0458 #define FLASH_SECTOR_100 100U
0459 #define FLASH_SECTOR_101 101U
0460 #define FLASH_SECTOR_102 102U
0461 #define FLASH_SECTOR_103 103U
0462 #define FLASH_SECTOR_104 104U
0463 #define FLASH_SECTOR_105 105U
0464 #define FLASH_SECTOR_106 106U
0465 #define FLASH_SECTOR_107 107U
0466 #define FLASH_SECTOR_108 108U
0467 #define FLASH_SECTOR_109 109U
0468 #define FLASH_SECTOR_110 110U
0469 #define FLASH_SECTOR_111 111U
0470 #define FLASH_SECTOR_112 112U
0471 #define FLASH_SECTOR_113 113U
0472 #define FLASH_SECTOR_114 114U
0473 #define FLASH_SECTOR_115 115U
0474 #define FLASH_SECTOR_116 116U
0475 #define FLASH_SECTOR_117 117U
0476 #define FLASH_SECTOR_118 118U
0477 #define FLASH_SECTOR_119 119U
0478 #define FLASH_SECTOR_120 120U
0479 #define FLASH_SECTOR_121 121U
0480 #define FLASH_SECTOR_122 122U
0481 #define FLASH_SECTOR_123 123U
0482 #define FLASH_SECTOR_124 124U
0483 #define FLASH_SECTOR_125 125U
0484 #define FLASH_SECTOR_126 126U
0485 #define FLASH_SECTOR_127 127U
0486 #endif
0487
0488
0489
0490
0491
0492
0493
0494
0495
0496
0497
0498
0499
0500
0501
0502
0503
0504
0505
0506 #define __HAL_FLASH_SET_LATENCY(__LATENCY__) \
0507 MODIFY_REG(FLASH->ACR, FLASH_ACR_LATENCY, (uint32_t)(__LATENCY__))
0508
0509
0510
0511
0512
0513
0514 #define __HAL_FLASH_GET_LATENCY() (READ_BIT((FLASH->ACR), FLASH_ACR_LATENCY))
0515
0516
0517
0518
0519
0520
0521
0522
0523
0524
0525
0526
0527
0528
0529
0530
0531
0532
0533
0534
0535
0536
0537
0538
0539
0540
0541
0542
0543
0544
0545
0546
0547
0548
0549
0550
0551 #define __HAL_FLASH_ENABLE_IT_BANK1(__INTERRUPT__) (FLASH->CR1 |= (__INTERRUPT__))
0552
0553 #define __HAL_FLASH_ENABLE_IT_BANK2(__INTERRUPT__) (FLASH->CR2 |= ((__INTERRUPT__) & 0x7FFFFFFFU))
0554
0555 #if defined (DUAL_BANK)
0556 #define __HAL_FLASH_ENABLE_IT(__INTERRUPT__) (IS_FLASH_IT_BANK1(__INTERRUPT__) ? \
0557 __HAL_FLASH_ENABLE_IT_BANK1(__INTERRUPT__) : \
0558 __HAL_FLASH_ENABLE_IT_BANK2(__INTERRUPT__))
0559 #else
0560 #define __HAL_FLASH_ENABLE_IT(__INTERRUPT__) __HAL_FLASH_ENABLE_IT_BANK1(__INTERRUPT__)
0561 #endif
0562
0563
0564
0565
0566
0567
0568
0569
0570
0571
0572
0573
0574
0575
0576
0577
0578
0579
0580
0581
0582
0583
0584
0585
0586
0587
0588
0589
0590
0591
0592
0593
0594
0595
0596
0597
0598
0599 #define __HAL_FLASH_DISABLE_IT_BANK1(__INTERRUPT__) (FLASH->CR1 &= ~(uint32_t)(__INTERRUPT__))
0600
0601 #define __HAL_FLASH_DISABLE_IT_BANK2(__INTERRUPT__) (FLASH->CR2 &= ~(uint32_t)((__INTERRUPT__) & 0x7FFFFFFFU))
0602
0603 #if defined (DUAL_BANK)
0604 #define __HAL_FLASH_DISABLE_IT(__INTERRUPT__) (IS_FLASH_IT_BANK1(__INTERRUPT__) ? \
0605 __HAL_FLASH_DISABLE_IT_BANK1(__INTERRUPT__) : \
0606 __HAL_FLASH_DISABLE_IT_BANK2(__INTERRUPT__))
0607 #else
0608 #define __HAL_FLASH_DISABLE_IT(__INTERRUPT__) __HAL_FLASH_DISABLE_IT_BANK1(__INTERRUPT__)
0609 #endif
0610
0611
0612
0613
0614
0615
0616
0617
0618
0619
0620
0621
0622
0623
0624
0625
0626
0627
0628
0629
0630
0631
0632
0633
0634
0635
0636
0637
0638
0639
0640
0641
0642
0643
0644
0645
0646
0647
0648
0649
0650
0651
0652 #define __HAL_FLASH_GET_FLAG_BANK1(__FLAG__) (READ_BIT(FLASH->SR1, (__FLAG__)) == (__FLAG__))
0653
0654 #define __HAL_FLASH_GET_FLAG_BANK2(__FLAG__) (READ_BIT(FLASH->SR2, ((__FLAG__) & 0x7FFFFFFFU)) == (((__FLAG__) & 0x7FFFFFFFU)))
0655
0656 #if defined (DUAL_BANK)
0657 #define __HAL_FLASH_GET_FLAG(__FLAG__) (IS_FLASH_FLAG_BANK1(__FLAG__) ? __HAL_FLASH_GET_FLAG_BANK1(__FLAG__) : \
0658 __HAL_FLASH_GET_FLAG_BANK2(__FLAG__))
0659 #else
0660 #define __HAL_FLASH_GET_FLAG(__FLAG__) __HAL_FLASH_GET_FLAG_BANK1(__FLAG__)
0661 #endif
0662
0663
0664
0665
0666
0667
0668
0669
0670
0671
0672
0673
0674
0675
0676
0677
0678
0679
0680
0681
0682
0683
0684
0685
0686
0687
0688
0689
0690
0691
0692
0693
0694
0695
0696
0697
0698
0699
0700
0701 #define __HAL_FLASH_CLEAR_FLAG_BANK1(__FLAG__) WRITE_REG(FLASH->CCR1, (__FLAG__))
0702
0703 #define __HAL_FLASH_CLEAR_FLAG_BANK2(__FLAG__) WRITE_REG(FLASH->CCR2, ((__FLAG__) & 0x7FFFFFFFU))
0704
0705 #if defined (DUAL_BANK)
0706 #define __HAL_FLASH_CLEAR_FLAG(__FLAG__) (IS_FLASH_FLAG_BANK1(__FLAG__) ? __HAL_FLASH_CLEAR_FLAG_BANK1(__FLAG__) : \
0707 __HAL_FLASH_CLEAR_FLAG_BANK2(__FLAG__))
0708 #else
0709 #define __HAL_FLASH_CLEAR_FLAG(__FLAG__) __HAL_FLASH_CLEAR_FLAG_BANK1(__FLAG__)
0710 #endif
0711
0712
0713
0714
0715
0716
0717 #include "stm32h7xx_hal_flash_ex.h"
0718
0719
0720
0721
0722
0723
0724
0725
0726
0727 HAL_StatusTypeDef HAL_FLASH_Program(uint32_t TypeProgram, uint32_t FlashAddress, uint32_t DataAddress);
0728 HAL_StatusTypeDef HAL_FLASH_Program_IT(uint32_t TypeProgram, uint32_t FlashAddress, uint32_t DataAddress);
0729
0730 void HAL_FLASH_IRQHandler(void);
0731
0732 void HAL_FLASH_EndOfOperationCallback(uint32_t ReturnValue);
0733 void HAL_FLASH_OperationErrorCallback(uint32_t ReturnValue);
0734
0735
0736
0737
0738
0739
0740
0741
0742 HAL_StatusTypeDef HAL_FLASH_Unlock(void);
0743 HAL_StatusTypeDef HAL_FLASH_Lock(void);
0744 HAL_StatusTypeDef HAL_FLASH_OB_Unlock(void);
0745 HAL_StatusTypeDef HAL_FLASH_OB_Lock(void);
0746
0747 HAL_StatusTypeDef HAL_FLASH_OB_Launch(void);
0748
0749
0750
0751
0752
0753
0754
0755
0756 uint32_t HAL_FLASH_GetError(void);
0757
0758
0759
0760
0761
0762
0763
0764
0765
0766
0767
0768
0769
0770 extern FLASH_ProcessTypeDef pFlash;
0771
0772
0773
0774
0775
0776
0777
0778
0779
0780
0781
0782
0783
0784
0785
0786
0787
0788
0789
0790 #if defined (FLASH_OPTCR_PG_OTP)
0791 #define IS_FLASH_TYPEPROGRAM(VALUE) (((VALUE) == FLASH_TYPEPROGRAM_FLASHWORD) || \
0792 ((VALUE) == FLASH_TYPEPROGRAM_OTPWORD))
0793 #else
0794 #define IS_FLASH_TYPEPROGRAM(VALUE) ((VALUE) == FLASH_TYPEPROGRAM_FLASHWORD)
0795 #endif
0796
0797 #define IS_FLASH_IT_BANK1(IT) (((IT) & FLASH_IT_ALL_BANK1) == (IT))
0798 #if defined (DUAL_BANK)
0799 #define IS_FLASH_IT_BANK2(IT) (((IT) & FLASH_IT_ALL_BANK2) == (IT))
0800 #endif
0801
0802 #define IS_FLASH_FLAG_BANK1(FLAG) (((FLAG) & FLASH_FLAG_ALL_BANK1) == (FLAG))
0803 #if defined (DUAL_BANK)
0804 #define IS_FLASH_FLAG_BANK2(FLAG) (((FLAG) & FLASH_FLAG_ALL_BANK2) == (FLAG))
0805 #endif
0806
0807 #if defined (DUAL_BANK)
0808 #define IS_FLASH_PROGRAM_ADDRESS_BANK1(ADDRESS) (((ADDRESS) >= FLASH_BANK1_BASE) && ((ADDRESS) < FLASH_BANK2_BASE))
0809 #define IS_FLASH_PROGRAM_ADDRESS_BANK2(ADDRESS) (((ADDRESS) >= FLASH_BANK2_BASE ) && ((ADDRESS) <= FLASH_END))
0810 #else
0811 #define IS_FLASH_PROGRAM_ADDRESS_BANK1(ADDRESS) (((ADDRESS) >= FLASH_BANK1_BASE) && ((ADDRESS) <= FLASH_END))
0812 #endif
0813
0814 #if defined (DUAL_BANK)
0815 #if defined (FLASH_OPTCR_PG_OTP)
0816 #define IS_FLASH_PROGRAM_ADDRESS_OTP(ADDRESS) (((ADDRESS) >= 0x08FFF000U) && ((ADDRESS) <= 0x08FFF3FFU))
0817 #define IS_FLASH_PROGRAM_ADDRESS(ADDRESS) (IS_FLASH_PROGRAM_ADDRESS_BANK1(ADDRESS) || \
0818 IS_FLASH_PROGRAM_ADDRESS_BANK2(ADDRESS) || \
0819 IS_FLASH_PROGRAM_ADDRESS_OTP(ADDRESS))
0820 #else
0821 #define IS_FLASH_PROGRAM_ADDRESS(ADDRESS) (IS_FLASH_PROGRAM_ADDRESS_BANK1(ADDRESS) || \
0822 IS_FLASH_PROGRAM_ADDRESS_BANK2(ADDRESS))
0823 #endif
0824 #else
0825 #if defined (FLASH_OPTCR_PG_OTP)
0826 #define IS_FLASH_PROGRAM_ADDRESS_OTP(ADDRESS) (((ADDRESS) >= 0x08FFF000U) && ((ADDRESS) <= 0x08FFF3FFU))
0827 #define IS_FLASH_PROGRAM_ADDRESS(ADDRESS) (IS_FLASH_PROGRAM_ADDRESS_BANK1(ADDRESS) || \
0828 IS_FLASH_PROGRAM_ADDRESS_OTP(ADDRESS))
0829 #else
0830 #define IS_FLASH_PROGRAM_ADDRESS(ADDRESS) (IS_FLASH_PROGRAM_ADDRESS_BANK1(ADDRESS))
0831 #endif
0832 #endif
0833
0834 #define IS_BOOT_ADDRESS(ADDRESS) ((ADDRESS) <= (0x3FFF0000U))
0835
0836 #if defined (DUAL_BANK)
0837 #define IS_FLASH_BANK(BANK) (((BANK) == FLASH_BANK_1) || \
0838 ((BANK) == FLASH_BANK_2) || \
0839 ((BANK) == FLASH_BANK_BOTH))
0840 #define IS_FLASH_BANK_EXCLUSIVE(BANK) (((BANK) == FLASH_BANK_1) || \
0841 ((BANK) == FLASH_BANK_2))
0842 #else
0843 #define IS_FLASH_BANK(BANK) ((BANK) == FLASH_BANK_1)
0844 #define IS_FLASH_BANK_EXCLUSIVE(BANK) ((BANK) == FLASH_BANK_1)
0845 #endif
0846
0847
0848
0849
0850
0851
0852
0853
0854
0855 HAL_StatusTypeDef FLASH_WaitForLastOperation(uint32_t Timeout, uint32_t Bank);
0856 HAL_StatusTypeDef FLASH_OB_WaitForLastOperation(uint32_t Timeout);
0857 HAL_StatusTypeDef FLASH_CRC_WaitForLastOperation(uint32_t Timeout, uint32_t Bank);
0858
0859
0860
0861
0862
0863
0864
0865
0866
0867
0868
0869
0870 #ifdef __cplusplus
0871 }
0872 #endif
0873
0874 #endif
0875