#ifndef HC32L1XX_LL_FLASH_H_
#define HC32L1XX_LL_FLASH_H_
#ifdef __cplusplus
extern "C" {
#endif
#include "hc32l1xx.h"
#include "hc32l1xx_ll_rcc.h"
#include "hc32l1xx_ll_system.h"
///
//===扇区分组
#define LL_FLASH_SECTOR_0 0
#define LL_FLASH_SECTOR_1 1
#define LL_FLASH_SECTOR_2 2
#define LL_FLASH_SECTOR_3 3
#define LL_FLASH_SECTOR_4 4
#define LL_FLASH_SECTOR_5 5
#define LL_FLASH_SECTOR_6 6
#define LL_FLASH_SECTOR_7 7
#define LL_FLASH_SECTOR_8 8
#define LL_FLASH_SECTOR_9 9
#define LL_FLASH_SECTOR_10 10
#define LL_FLASH_SECTOR_11 11
#define LL_FLASH_SECTOR_12 12
#define LL_FLASH_SECTOR_13 13
#define LL_FLASH_SECTOR_14 14
#define LL_FLASH_SECTOR_15 15
#define LL_FLASH_SECTOR_16 16
#define LL_FLASH_SECTOR_17 17
#define LL_FLASH_SECTOR_18 18
#define LL_FLASH_SECTOR_19 19
#define LL_FLASH_SECTOR_20 20
#define LL_FLASH_SECTOR_21 21
#define LL_FLASH_SECTOR_22 22
#define LL_FLASH_SECTOR_23 23
#define LL_FLASH_SECTOR_24 24
#define LL_FLASH_SECTOR_25 25
#define LL_FLASH_SECTOR_26 26
#define LL_FLASH_SECTOR_27 27
#define LL_FLASH_SECTOR_28 28
#define LL_FLASH_SECTOR_29 29
#define LL_FLASH_SECTOR_30 30
#define LL_FLASH_SECTOR_31 31
#define LL_FLASH_SECTOR_32 32
#define LL_FLASH_SECTOR_33 33
#define LL_FLASH_SECTOR_34 34
#define LL_FLASH_SECTOR_35 35
#define LL_FLASH_SECTOR_36 36
#define LL_FLASH_SECTOR_37 37
#define LL_FLASH_SECTOR_38 38
#define LL_FLASH_SECTOR_39 39
#define LL_FLASH_SECTOR_40 40
#define LL_FLASH_SECTOR_41 41
#define LL_FLASH_SECTOR_42 42
#define LL_FLASH_SECTOR_43 43
#define LL_FLASH_SECTOR_44 44
#define LL_FLASH_SECTOR_45 45
#define LL_FLASH_SECTOR_46 46
#define LL_FLASH_SECTOR_47 47
#define LL_FLASH_SECTOR_48 48
#define LL_FLASH_SECTOR_49 49
#define LL_FLASH_SECTOR_50 50
#define LL_FLASH_SECTOR_51 51
#define LL_FLASH_SECTOR_52 52
#define LL_FLASH_SECTOR_53 53
#define LL_FLASH_SECTOR_54 54
#define LL_FLASH_SECTOR_55 55
#define LL_FLASH_SECTOR_56 56
#define LL_FLASH_SECTOR_57 57
#define LL_FLASH_SECTOR_58 58
#define LL_FLASH_SECTOR_59 59
#define LL_FLASH_SECTOR_60 60
#define LL_FLASH_SECTOR_61 61
#define LL_FLASH_SECTOR_62 62
#define LL_FLASH_SECTOR_63 63
#define LL_FLASH_SECTOR_64 64
#define LL_FLASH_SECTOR_65 65
#define LL_FLASH_SECTOR_66 66
#define LL_FLASH_SECTOR_67 67
#define LL_FLASH_SECTOR_68 68
#define LL_FLASH_SECTOR_69 69
#define LL_FLASH_SECTOR_70 70
#define LL_FLASH_SECTOR_71 71
#define LL_FLASH_SECTOR_72 72
#define LL_FLASH_SECTOR_73 73
#define LL_FLASH_SECTOR_74 74
#define LL_FLASH_SECTOR_75 75
#define LL_FLASH_SECTOR_76 76
#define LL_FLASH_SECTOR_77 77
#define LL_FLASH_SECTOR_78 78
#define LL_FLASH_SECTOR_79 79
#define LL_FLASH_SECTOR_80 80
#define LL_FLASH_SECTOR_81 81
#define LL_FLASH_SECTOR_82 82
#define LL_FLASH_SECTOR_83 83
#define LL_FLASH_SECTOR_84 84
#define LL_FLASH_SECTOR_85 85
#define LL_FLASH_SECTOR_86 86
#define LL_FLASH_SECTOR_87 87
#define LL_FLASH_SECTOR_88 88
#define LL_FLASH_SECTOR_89 89
#define LL_FLASH_SECTOR_90 90
#define LL_FLASH_SECTOR_91 91
#define LL_FLASH_SECTOR_92 92
#define LL_FLASH_SECTOR_93 93
#define LL_FLASH_SECTOR_94 94
#define LL_FLASH_SECTOR_95 95
#define LL_FLASH_SECTOR_96 96
#define LL_FLASH_SECTOR_97 97
#define LL_FLASH_SECTOR_98 98
#define LL_FLASH_SECTOR_99 99
#define LL_FLASH_SECTOR_100 100
#define LL_FLASH_SECTOR_101 101
#define LL_FLASH_SECTOR_102 102
#define LL_FLASH_SECTOR_103 103
#define LL_FLASH_SECTOR_104 104
#define LL_FLASH_SECTOR_105 105
#define LL_FLASH_SECTOR_106 106
#define LL_FLASH_SECTOR_107 107
#define LL_FLASH_SECTOR_108 108
#define LL_FLASH_SECTOR_109 109
#define LL_FLASH_SECTOR_110 110
#define LL_FLASH_SECTOR_111 111
#define LL_FLASH_SECTOR_112 112
#define LL_FLASH_SECTOR_113 113
#define LL_FLASH_SECTOR_114 114
#define LL_FLASH_SECTOR_115 115
#define LL_FLASH_SECTOR_116 116
#define LL_FLASH_SECTOR_117 117
#define LL_FLASH_SECTOR_118 118
#define LL_FLASH_SECTOR_119 119
#define LL_FLASH_SECTOR_120 120
#define LL_FLASH_SECTOR_121 121
#define LL_FLASH_SECTOR_122 122
#define LL_FLASH_SECTOR_123 123
#define LL_FLASH_SECTOR_124 124
#define LL_FLASH_SECTOR_125 125
#define LL_FLASH_SECTOR_126 126
#define LL_FLASH_SECTOR_127 127
#define LL_FLASH_SECTOR_128 128
#define LL_FLASH_SECTOR_129 129
#define LL_FLASH_SECTOR_130 130
#define LL_FLASH_SECTOR_131 131
#define LL_FLASH_SECTOR_132 132
#define LL_FLASH_SECTOR_133 133
#define LL_FLASH_SECTOR_134 134
#define LL_FLASH_SECTOR_135 135
#define LL_FLASH_SECTOR_136 136
#define LL_FLASH_SECTOR_137 137
#define LL_FLASH_SECTOR_138 138
#define LL_FLASH_SECTOR_139 139
#define LL_FLASH_SECTOR_140 140
#define LL_FLASH_SECTOR_141 141
#define LL_FLASH_SECTOR_142 142
#define LL_FLASH_SECTOR_143 143
#define LL_FLASH_SECTOR_144 144
#define LL_FLASH_SECTOR_145 145
#define LL_FLASH_SECTOR_146 146
#define LL_FLASH_SECTOR_147 147
#define LL_FLASH_SECTOR_148 148
#define LL_FLASH_SECTOR_149 149
#define LL_FLASH_SECTOR_150 150
#define LL_FLASH_SECTOR_151 151
#define LL_FLASH_SECTOR_152 152
#define LL_FLASH_SECTOR_153 153
#define LL_FLASH_SECTOR_154 154
#define LL_FLASH_SECTOR_155 155
#define LL_FLASH_SECTOR_156 156
#define LL_FLASH_SECTOR_157 157
#define LL_FLASH_SECTOR_158 158
#define LL_FLASH_SECTOR_159 159
#define LL_FLASH_SECTOR_160 160
#define LL_FLASH_SECTOR_161 161
#define LL_FLASH_SECTOR_162 162
#define LL_FLASH_SECTOR_163 163
#define LL_FLASH_SECTOR_164 164
#define LL_FLASH_SECTOR_165 165
#define LL_FLASH_SECTOR_166 166
#define LL_FLASH_SECTOR_167 167
#define LL_FLASH_SECTOR_168 168
#define LL_FLASH_SECTOR_169 169
#define LL_FLASH_SECTOR_170 170
#define LL_FLASH_SECTOR_171 171
#define LL_FLASH_SECTOR_172 172
#define LL_FLASH_SECTOR_173 173
#define LL_FLASH_SECTOR_174 174
#define LL_FLASH_SECTOR_175 175
#define LL_FLASH_SECTOR_176 176
#define LL_FLASH_SECTOR_177 177
#define LL_FLASH_SECTOR_178 178
#define LL_FLASH_SECTOR_179 179
#define LL_FLASH_SECTOR_180 180
#define LL_FLASH_SECTOR_181 181
#define LL_FLASH_SECTOR_182 182
#define LL_FLASH_SECTOR_183 183
#define LL_FLASH_SECTOR_184 184
#define LL_FLASH_SECTOR_185 185
#define LL_FLASH_SECTOR_186 186
#define LL_FLASH_SECTOR_187 187
#define LL_FLASH_SECTOR_188 188
#define LL_FLASH_SECTOR_189 189
#define LL_FLASH_SECTOR_190 190
#define LL_FLASH_SECTOR_191 191
#define LL_FLASH_SECTOR_192 192
#define LL_FLASH_SECTOR_193 193
#define LL_FLASH_SECTOR_194 194
#define LL_FLASH_SECTOR_195 195
#define LL_FLASH_SECTOR_196 196
#define LL_FLASH_SECTOR_197 197
#define LL_FLASH_SECTOR_198 198
#define LL_FLASH_SECTOR_199 199
#define LL_FLASH_SECTOR_200 200
#define LL_FLASH_SECTOR_201 201
#define LL_FLASH_SECTOR_202 202
#define LL_FLASH_SECTOR_203 203
#define LL_FLASH_SECTOR_204 204
#define LL_FLASH_SECTOR_205 205
#define LL_FLASH_SECTOR_206 206
#define LL_FLASH_SECTOR_207 207
#define LL_FLASH_SECTOR_208 208
#define LL_FLASH_SECTOR_209 209
#define LL_FLASH_SECTOR_210 210
#define LL_FLASH_SECTOR_211 211
#define LL_FLASH_SECTOR_212 212
#define LL_FLASH_SECTOR_213 213
#define LL_FLASH_SECTOR_214 214
#define LL_FLASH_SECTOR_215 215
#define LL_FLASH_SECTOR_216 216
#define LL_FLASH_SECTOR_217 217
#define LL_FLASH_SECTOR_218 218
#define LL_FLASH_SECTOR_219 219
#define LL_FLASH_SECTOR_220 220
#define LL_FLASH_SECTOR_221 221
#define LL_FLASH_SECTOR_222 222
#define LL_FLASH_SECTOR_223 223
#define LL_FLASH_SECTOR_224 224
#define LL_FLASH_SECTOR_225 225
#define LL_FLASH_SECTOR_226 226
#define LL_FLASH_SECTOR_227 227
#define LL_FLASH_SECTOR_228 228
#define LL_FLASH_SECTOR_229 229
#define LL_FLASH_SECTOR_230 230
#define LL_FLASH_SECTOR_231 231
#define LL_FLASH_SECTOR_232 232
#define LL_FLASH_SECTOR_233 233
#define LL_FLASH_SECTOR_234 234
#define LL_FLASH_SECTOR_235 235
#define LL_FLASH_SECTOR_236 236
#define LL_FLASH_SECTOR_237 237
#define LL_FLASH_SECTOR_238 238
#define LL_FLASH_SECTOR_239 239
#define LL_FLASH_SECTOR_240 240
#define LL_FLASH_SECTOR_241 241
#define LL_FLASH_SECTOR_242 242
#define LL_FLASH_SECTOR_243 243
#define LL_FLASH_SECTOR_244 244
#define LL_FLASH_SECTOR_245 245
#define LL_FLASH_SECTOR_246 246
#define LL_FLASH_SECTOR_247 247
#define LL_FLASH_SECTOR_248 248
#define LL_FLASH_SECTOR_249 249
#define LL_FLASH_SECTOR_250 250
#define LL_FLASH_SECTOR_251 251
#define LL_FLASH_SECTOR_252 252
#define LL_FLASH_SECTOR_253 253
#define LL_FLASH_SECTOR_254 254
#define LL_FLASH_SECTOR_255 255
#define LL_FLASH_SECTOR_256 256
#define LL_FLASH_SECTOR_257 257
#define LL_FLASH_SECTOR_258 258
#define LL_FLASH_SECTOR_259 259
#define LL_FLASH_SECTOR_260 260
#define LL_FLASH_SECTOR_261 261
#define LL_FLASH_SECTOR_262 262
#define LL_FLASH_SECTOR_263 263
#define LL_FLASH_SECTOR_264 264
#define LL_FLASH_SECTOR_265 265
#define LL_FLASH_SECTOR_266 266
#define LL_FLASH_SECTOR_267 267
#define LL_FLASH_SECTOR_268 268
#define LL_FLASH_SECTOR_269 269
#define LL_FLASH_SECTOR_270 270
#define LL_FLASH_SECTOR_271 271
#define LL_FLASH_SECTOR_272 272
#define LL_FLASH_SECTOR_273 273
#define LL_FLASH_SECTOR_274 274
#define LL_FLASH_SECTOR_275 275
#define LL_FLASH_SECTOR_276 276
#define LL_FLASH_SECTOR_277 277
#define LL_FLASH_SECTOR_278 278
#define LL_FLASH_SECTOR_279 279
#define LL_FLASH_SECTOR_280 280
#define LL_FLASH_SECTOR_281 281
#define LL_FLASH_SECTOR_282 282
#define LL_FLASH_SECTOR_283 283
#define LL_FLASH_SECTOR_284 284
#define LL_FLASH_SECTOR_285 285
#define LL_FLASH_SECTOR_286 286
#define LL_FLASH_SECTOR_287 287
#define LL_FLASH_SECTOR_288 288
#define LL_FLASH_SECTOR_289 289
#define LL_FLASH_SECTOR_290 290
#define LL_FLASH_SECTOR_291 291
#define LL_FLASH_SECTOR_292 292
#define LL_FLASH_SECTOR_293 293
#define LL_FLASH_SECTOR_294 294
#define LL_FLASH_SECTOR_295 295
#define LL_FLASH_SECTOR_296 296
#define LL_FLASH_SECTOR_297 297
#define LL_FLASH_SECTOR_298 298
#define LL_FLASH_SECTOR_299 299
#define LL_FLASH_SECTOR_300 300
#define LL_FLASH_SECTOR_301 301
#define LL_FLASH_SECTOR_302 302
#define LL_FLASH_SECTOR_303 303
#define LL_FLASH_SECTOR_304 304
#define LL_FLASH_SECTOR_305 305
#define LL_FLASH_SECTOR_306 306
#define LL_FLASH_SECTOR_307 307
#define LL_FLASH_SECTOR_308 308
#define LL_FLASH_SECTOR_309 309
#define LL_FLASH_SECTOR_310 310
#define LL_FLASH_SECTOR_311 311
#define LL_FLASH_SECTOR_312 312
#define LL_FLASH_SECTOR_313 313
#define LL_FLASH_SECTOR_314 314
#define LL_FLASH_SECTOR_315 315
#define LL_FLASH_SECTOR_316 316
#define LL_FLASH_SECTOR_317 317
#define LL_FLASH_SECTOR_318 318
#define LL_FLASH_SECTOR_319 319
#define LL_FLASH_SECTOR_320 320
#define LL_FLASH_SECTOR_321 321
#define LL_FLASH_SECTOR_322 322
#define LL_FLASH_SECTOR_323 323
#define LL_FLASH_SECTOR_324 324
#define LL_FLASH_SECTOR_325 325
#define LL_FLASH_SECTOR_326 326
#define LL_FLASH_SECTOR_327 327
#define LL_FLASH_SECTOR_328 328
#define LL_FLASH_SECTOR_329 329
#define LL_FLASH_SECTOR_330 330
#define LL_FLASH_SECTOR_331 331
#define LL_FLASH_SECTOR_332 332
#define LL_FLASH_SECTOR_333 333
#define LL_FLASH_SECTOR_334 334
#define LL_FLASH_SECTOR_335 335
#define LL_FLASH_SECTOR_336 336
#define LL_FLASH_SECTOR_337 337
#define LL_FLASH_SECTOR_338 338
#define LL_FLASH_SECTOR_339 339
#define LL_FLASH_SECTOR_340 340
#define LL_FLASH_SECTOR_341 341
#define LL_FLASH_SECTOR_342 342
#define LL_FLASH_SECTOR_343 343
#define LL_FLASH_SECTOR_344 344
#define LL_FLASH_SECTOR_345 345
#define LL_FLASH_SECTOR_346 346
#define LL_FLASH_SECTOR_347 347
#define LL_FLASH_SECTOR_348 348
#define LL_FLASH_SECTOR_349 349
#define LL_FLASH_SECTOR_350 350
#define LL_FLASH_SECTOR_351 351
#define LL_FLASH_SECTOR_352 352
#define LL_FLASH_SECTOR_353 353
#define LL_FLASH_SECTOR_354 354
#define LL_FLASH_SECTOR_355 355
#define LL_FLASH_SECTOR_356 356
#define LL_FLASH_SECTOR_357 357
#define LL_FLASH_SECTOR_358 358
#define LL_FLASH_SECTOR_359 359
#define LL_FLASH_SECTOR_360 360
#define LL_FLASH_SECTOR_361 361
#define LL_FLASH_SECTOR_362 362
#define LL_FLASH_SECTOR_363 363
#define LL_FLASH_SECTOR_364 364
#define LL_FLASH_SECTOR_365 365
#define LL_FLASH_SECTOR_366 366
#define LL_FLASH_SECTOR_367 367
#define LL_FLASH_SECTOR_368 368
#define LL_FLASH_SECTOR_369 369
#define LL_FLASH_SECTOR_370 370
#define LL_FLASH_SECTOR_371 371
#define LL_FLASH_SECTOR_372 372
#define LL_FLASH_SECTOR_373 373
#define LL_FLASH_SECTOR_374 374
#define LL_FLASH_SECTOR_375 375
#define LL_FLASH_SECTOR_376 376
#define LL_FLASH_SECTOR_377 377
#define LL_FLASH_SECTOR_378 378
#define LL_FLASH_SECTOR_379 379
#define LL_FLASH_SECTOR_380 380
#define LL_FLASH_SECTOR_381 381
#define LL_FLASH_SECTOR_382 382
#define LL_FLASH_SECTOR_383 383
#define LL_FLASH_SECTOR_384 384
#define LL_FLASH_SECTOR_385 385
#define LL_FLASH_SECTOR_386 386
#define LL_FLASH_SECTOR_387 387
#define LL_FLASH_SECTOR_388 388
#define LL_FLASH_SECTOR_389 389
#define LL_FLASH_SECTOR_390 390
#define LL_FLASH_SECTOR_391 391
#define LL_FLASH_SECTOR_392 392
#define LL_FLASH_SECTOR_393 393
#define LL_FLASH_SECTOR_394 394
#define LL_FLASH_SECTOR_395 395
#define LL_FLASH_SECTOR_396 396
#define LL_FLASH_SECTOR_397 397
#define LL_FLASH_SECTOR_398 398
#define LL_FLASH_SECTOR_399 399
#define LL_FLASH_SECTOR_400 400
#define LL_FLASH_SECTOR_401 401
#define LL_FLASH_SECTOR_402 402
#define LL_FLASH_SECTOR_403 403
#define LL_FLASH_SECTOR_404 404
#define LL_FLASH_SECTOR_405 405
#define LL_FLASH_SECTOR_406 406
#define LL_FLASH_SECTOR_407 407
#define LL_FLASH_SECTOR_408 408
#define LL_FLASH_SECTOR_409 409
#define LL_FLASH_SECTOR_410 410
#define LL_FLASH_SECTOR_411 411
#define LL_FLASH_SECTOR_412 412
#define LL_FLASH_SECTOR_413 413
#define LL_FLASH_SECTOR_414 414
#define LL_FLASH_SECTOR_415 415
#define LL_FLASH_SECTOR_416 416
#define LL_FLASH_SECTOR_417 417
#define LL_FLASH_SECTOR_418 418
#define LL_FLASH_SECTOR_419 419
#define LL_FLASH_SECTOR_420 420
#define LL_FLASH_SECTOR_421 421
#define LL_FLASH_SECTOR_422 422
#define LL_FLASH_SECTOR_423 423
#define LL_FLASH_SECTOR_424 424
#define LL_FLASH_SECTOR_425 425
#define LL_FLASH_SECTOR_426 426
#define LL_FLASH_SECTOR_427 427
#define LL_FLASH_SECTOR_428 428
#define LL_FLASH_SECTOR_429 429
#define LL_FLASH_SECTOR_430 430
#define LL_FLASH_SECTOR_431 431
#define LL_FLASH_SECTOR_432 432
#define LL_FLASH_SECTOR_433 433
#define LL_FLASH_SECTOR_434 434
#define LL_FLASH_SECTOR_435 435
#define LL_FLASH_SECTOR_436 436
#define LL_FLASH_SECTOR_437 437
#define LL_FLASH_SECTOR_438 438
#define LL_FLASH_SECTOR_439 439
#define LL_FLASH_SECTOR_440 440
#define LL_FLASH_SECTOR_441 441
#define LL_FLASH_SECTOR_442 442
#define LL_FLASH_SECTOR_443 443
#define LL_FLASH_SECTOR_444 444
#define LL_FLASH_SECTOR_445 445
#define LL_FLASH_SECTOR_446 446
#define LL_FLASH_SECTOR_447 447
#define LL_FLASH_SECTOR_448 448
#define LL_FLASH_SECTOR_449 449
#define LL_FLASH_SECTOR_450 450
#define LL_FLASH_SECTOR_451 451
#define LL_FLASH_SECTOR_452 452
#define LL_FLASH_SECTOR_453 453
#define LL_FLASH_SECTOR_454 454
#define LL_FLASH_SECTOR_455 455
#define LL_FLASH_SECTOR_456 456
#define LL_FLASH_SECTOR_457 457
#define LL_FLASH_SECTOR_458 458
#define LL_FLASH_SECTOR_459 459
#define LL_FLASH_SECTOR_460 460
#define LL_FLASH_SECTOR_461 461
#define LL_FLASH_SECTOR_462 462
#define LL_FLASH_SECTOR_463 463
#define LL_FLASH_SECTOR_464 464
#define LL_FLASH_SECTOR_465 465
#define LL_FLASH_SECTOR_466 466
#define LL_FLASH_SECTOR_467 467
#define LL_FLASH_SECTOR_468 468
#define LL_FLASH_SECTOR_469 469
#define LL_FLASH_SECTOR_470 470
#define LL_FLASH_SECTOR_471 471
#define LL_FLASH_SECTOR_472 472
#define LL_FLASH_SECTOR_473 473
#define LL_FLASH_SECTOR_474 474
#define LL_FLASH_SECTOR_475 475
#define LL_FLASH_SECTOR_476 476
#define LL_FLASH_SECTOR_477 477
#define LL_FLASH_SECTOR_478 478
#define LL_FLASH_SECTOR_479 479
#define LL_FLASH_SECTOR_480 480
#define LL_FLASH_SECTOR_481 481
#define LL_FLASH_SECTOR_482 482
#define LL_FLASH_SECTOR_483 483
#define LL_FLASH_SECTOR_484 484
#define LL_FLASH_SECTOR_485 485
#define LL_FLASH_SECTOR_486 486
#define LL_FLASH_SECTOR_487 487
#define LL_FLASH_SECTOR_488 488
#define LL_FLASH_SECTOR_489 489
#define LL_FLASH_SECTOR_490 490
#define LL_FLASH_SECTOR_491 491
#define LL_FLASH_SECTOR_492 492
#define LL_FLASH_SECTOR_493 493
#define LL_FLASH_SECTOR_494 494
#define LL_FLASH_SECTOR_495 495
#define LL_FLASH_SECTOR_496 496
#define LL_FLASH_SECTOR_497 497
#define LL_FLASH_SECTOR_498 498
#define LL_FLASH_SECTOR_499 499
#define LL_FLASH_SECTOR_500 500
#define LL_FLASH_SECTOR_501 501
#define LL_FLASH_SECTOR_502 502
#define LL_FLASH_SECTOR_503 503
#define LL_FLASH_SECTOR_504 504
#define LL_FLASH_SECTOR_505 505
#define LL_FLASH_SECTOR_506 506
#define LL_FLASH_SECTOR_507 507
#define LL_FLASH_SECTOR_508 508
#define LL_FLASH_SECTOR_509 509
#define LL_FLASH_SECTOR_510 510
#define LL_FLASH_SECTOR_511 511
//===每格扇区页字节数
#define LL_FLASH_SECTOR_SIZE 512
#define LL_FLASH_SECTOR_MASK ~(LL_FLASH_SECTOR_SIZE-1)
//===编程超时时间
#define LL_FLASH_TIMEOUT_PROGRAM (0xFFFFFEUL)
//===擦除超时时间
#define LL_FLASH_TIMEOUT_ERASE (0xFFFFFEUL)
///
//函 数:
//功 能: 使能低功耗模式
//输入参 数:
//输出参 数:
//说 明:
//
static inline void LL_FLASH_Enable_LowPower(void)
{
LL_FLASH_BYPASS();
SET_BIT(FLASH->CR, FLASH_CR_DPSTN_EN);
}
///
//函 数:
//功 能: 不使能低功耗模式
//输入参 数:
//输出参 数:
//说 明:
//
static inline void LL_FLASH_Disable_LowPower(void)
{
LL_FLASH_BYPASS();
CLEAR_BIT(FLASH->CR, FLASH_CR_DPSTN_EN);
}
///
//函 数:
//功 能: 使能低功耗模式
//输入参 数:
//输出参 数:
//说 明:
//
static inline uint32_t LL_FLASH_IsEnabled_LowPower(void)
{
return (uint32_t)(READ_BIT(FLASH->CR, FLASH_CR_DPSTN_EN) == FLASH_CR_DPSTN_EN);
}
///
//函 数:
//功 能: 使能读取
//输入参 数:
//输出参 数:
//说 明:
//
static inline void LL_FLASH_Enable_Read(void)
{
LL_FLASH_BYPASS();
MODIFY_REG(FLASH->CR, FLASH_CR_OP, FLASH_CR_OP_READ);
}
///
//函 数:
//功 能: 使能读取
//输入参 数:
//输出参 数:
//说 明:
//
static inline uint32_t LL_FLASH_IsEnabled_Read(void)
{
return (uint32_t)(READ_BIT(FLASH->CR, FLASH_CR_OP) == FLASH_CR_OP_READ);
}
///
//函 数:
//功 能: 使能编程
//输入参 数:
//输出参 数:
//说 明:
//
static inline void LL_FLASH_Enable_Program(void)
{
LL_FLASH_BYPASS();
MODIFY_REG(FLASH->CR, FLASH_CR_OP, FLASH_CR_OP_PROGRAM);
}
///
//函 数:
//功 能: 使能扇区擦除
//输入参 数:
//输出参 数:
//说 明:
//
static inline void LL_FLASH_Enable_SectorErase(void)
{
LL_FLASH_BYPASS();
MODIFY_REG(FLASH->CR, FLASH_CR_OP, FLASH_CR_OP_SECTOR_ERASE);
}
///
//函 数:
//功 能: 使能扇区擦除
//输入参 数:
//输出参 数:
//说 明:
//
static inline void LL_FLASH_Enable_ChipErase(void)
{
LL_FLASH_BYPASS();
MODIFY_REG(FLASH->CR, FLASH_CR_OP, FLASH_CR_OP_CHIP_ERASE);
}
///
//函 数:
//功 能:
//输入参 数:
//输出参 数:
//说 明:
//
static inline uint32_t LL_FLASH_Busy(void)
{
return (uint32_t)(READ_BIT(FLASH->CR, FLASH_CR_BUSY) == FLASH_CR_BUSY);
}
///
//函 数:
//功 能: 锁定Flash
//输入参 数:
//输出参 数:
//说 明:
//
static inline void LL_FLASH_Lock(void)
{
uint32_t flash_size = LL_FLASH_GetFlashSize();
//---32KB
LL_FLASH_BYPASS();
FLASH->SLOCK0 = 0x00000000UL;
//---128KB
if (flash_size > 0x10000UL)
{
LL_FLASH_BYPASS();
FLASH->SLOCK1 = 0x00000000UL;
}
//---192KB
if (flash_size > 0x20000UL)
{
LL_FLASH_BYPASS();
FLASH->SLOCK2 = 0x00000000UL;
}
//---256KB
if (flash_size > 0x30000UL)
{
LL_FLASH_BYPASS();
FLASH->SLOCK3 = 0x00000000UL;
}
}
///
//函 数:
//功 能: 锁定Flash
//输入参 数:
//输出参 数:
//说 明:
//
static inline void LL_FLASH_UnLock(uint32_t addr)
{
//---计算是扇区编号
uint32_t sector_num = addr / LL_FLASH_SECTOR_SIZE;
//---获取Flash大小
uint32_t flash_size = LL_FLASH_GetFlashSize();
//---扇区编号
switch (sector_num)
{
case LL_FLASH_SECTOR_0:
case LL_FLASH_SECTOR_1:
case LL_FLASH_SECTOR_2:
case LL_FLASH_SECTOR_3:
{
LL_FLASH_BYPASS();
SET_BIT(FLASH->SLOCK0, LL_REG_BIT_0);
break;
}
case LL_FLASH_SECTOR_4:
case LL_FLASH_SECTOR_5:
case LL_FLASH_SECTOR_6:
case LL_FLASH_SECTOR_7:
{
LL_FLASH_BYPASS();
SET_BIT(FLASH->SLOCK0, LL_REG_BIT_1);
break;
}
case LL_FLASH_SECTOR_8:
case LL_FLASH_SECTOR_9:
case LL_FLASH_SECTOR_10:
case LL_FLASH_SECTOR_11:
{
LL_FLASH_BYPASS();
SET_BIT(FLASH->SLOCK0, LL_REG_BIT_2);
break;
}
case LL_FLASH_SECTOR_12:
case LL_FLASH_SECTOR_13:
case LL_FLASH_SECTOR_14:
case LL_FLASH_SECTOR_15:
{
LL_FLASH_BYPASS();
SET_BIT(FLASH->SLOCK0, LL_REG_BIT_3);
break;
}
case LL_FLASH_SECTOR_16:
case LL_FLASH_SECTOR_17:
case LL_FLASH_SECTOR_18:
case LL_FLASH_SECTOR_19:
{
LL_FLASH_BYPASS();
SET_BIT(FLASH->SLOCK0, LL_REG_BIT_4);
break;
}
case LL_FLASH_SECTOR_20:
case LL_FLASH_SECTOR_21:
case LL_FLASH_SECTOR_22:
case LL_FLASH_SECTOR_23:
{
LL_FLASH_BYPASS();
SET_BIT(FLASH->SLOCK0, LL_REG_BIT_5);
break;
}
case LL_FLASH_SECTOR_24:
case LL_FLASH_SECTOR_25:
case LL_FLASH_SECTOR_26:
case LL_FLASH_SECTOR_27:
{
LL_FLASH_BYPASS();
SET_BIT(FLASH->SLOCK0, LL_REG_BIT_6);
break;
}
case LL_FLASH_SECTOR_28:
case LL_FLASH_SECTOR_29:
case LL_FLASH_SECTOR_30:
case LL_FLASH_SECTOR_31:
{
LL_FLASH_BYPASS();
SET_BIT(FLASH->SLOCK0, LL_REG_BIT_7);
break;
}
case LL_FLASH_SECTOR_32:
case LL_FLASH_SECTOR_33:
case LL_FLASH_SECTOR_34:
case LL_FLASH_SECTOR_35:
{
LL_FLASH_BYPASS();
SET_BIT(FLASH->SLOCK0, LL_REG_BIT_8);
break;
}
case LL_FLASH_SECTOR_36:
case LL_FLASH_SECTOR_37:
case LL_FLASH_SECTOR_38:
case LL_FLASH_SECTOR_39:
{
LL_FLASH_BYPASS();
SET_BIT(FLASH->SLOCK0, LL_REG_BIT_9);
break;
}
case LL_FLASH_SECTOR_40:
case LL_FLASH_SECTOR_41:
case LL_FLASH_SECTOR_42:
case LL_FLASH_SECTOR_43:
{
LL_FLASH_BYPASS();
SET_BIT(FLASH->SLOCK0, LL_REG_BIT_10);
break;
}
case LL_FLASH_SECTOR_44:
case LL_FLASH_SECTOR_45:
case LL_FLASH_SECTOR_46:
case LL_FLASH_SECTOR_47:
{
LL_FLASH_BYPASS();
SET_BIT(FLASH->SLOCK0, LL_REG_BIT_11);
break;
}
case LL_FLASH_SECTOR_48:
case LL_FLASH_SECTOR_49:
case LL_FLASH_SECTOR_50:
case LL_FLASH_SECTOR_51:
{
LL_FLASH_BYPASS();
SET_BIT(FLASH->SLOCK0, LL_REG_BIT_12);
break;
}
case LL_FLASH_SECTOR_52:
case LL_FLASH_SECTOR_53:
case LL_FLASH_SECTOR_54:
case LL_FLASH_SECTOR_55:
{
LL_FLASH_BYPASS();
SET_BIT(FLASH->SLOCK0, LL_REG_BIT_13);
break;
}
case LL_FLASH_SECTOR_56:
case LL_FLASH_SECTOR_57:
case LL_FLASH_SECTOR_58:
case LL_FLASH_SECTOR_59:
{
LL_FLASH_BYPASS();
SET_BIT(FLASH->SLOCK0, LL_REG_BIT_14);
break;
}
case LL_FLASH_SECTOR_60:
case LL_FLASH_SECTOR_61:
case LL_FLASH_SECTOR_62:
case LL_FLASH_SECTOR_63:
{
LL_FLASH_BYPASS();
SET_BIT(FLASH->SLOCK0, LL_REG_BIT_15);
break;
}
case LL_FLASH_SECTOR_64:
case LL_FLASH_SECTOR_65:
case LL_FLASH_SECTOR_66:
case LL_FLASH_SECTOR_67:
{
LL_FLASH_BYPASS();
SET_BIT(FLASH->SLOCK0, LL_REG_BIT_16);
break;
}
case LL_FLASH_SECTOR_68:
case LL_FLASH_SECTOR_69:
case LL_FLASH_SECTOR_70:
case LL_FLASH_SECTOR_71:
{
LL_FLASH_BYPASS();
SET_BIT(FLASH->SLOCK0, LL_REG_BIT_17);
break;
}
case LL_FLASH_SECTOR_72:
case LL_FLASH_SECTOR_73:
case LL_FLASH_SECTOR_74:
case LL_FLASH_SECTOR_75:
{
LL_FLASH_BYPASS();
SET_BIT(FLASH->SLOCK0, LL_REG_BIT_18);
break;
}
case LL_FLASH_SECTOR_76:
case LL_FLASH_SECTOR_77:
case LL_FLASH_SECTOR_78:
case LL_FLASH_SECTOR_79:
{
LL_FLASH_BYPASS();
SET_BIT(FLASH->SLOCK0, LL_REG_BIT_19);
break;
}
case LL_FLASH_SECTOR_80:
case LL_FLASH_SECTOR_81:
case LL_FLASH_SECTOR_82:
case LL_FLASH_SECTOR_83:
{
LL_FLASH_BYPASS();
SET_BIT(FLASH->SLOCK0, LL_REG_BIT_20);
break;
}
case LL_FLASH_SECTOR_84:
case LL_FLASH_SECTOR_85:
case LL_FLASH_SECTOR_86:
case LL_FLASH_SECTOR_87:
{
LL_FLASH_BYPASS();
SET_BIT(FLASH->SLOCK0, LL_REG_BIT_21);
break;
}
case LL_FLASH_SECTOR_88:
case LL_FLASH_SECTOR_89:
case LL_FLASH_SECTOR_90:
case LL_FLASH_SECTOR_91:
{
LL_FLASH_BYPASS();
SET_BIT(FLASH->SLOCK0, LL_REG_BIT_22);
break;
}
case LL_FLASH_SECTOR_92:
case LL_FLASH_SECTOR_93:
case LL_FLASH_SECTOR_94:
case LL_FLASH_SECTOR_95:
{
LL_FLASH_BYPASS();
SET_BIT(FLASH->SLOCK0, LL_REG_BIT_23);
break;
}
case LL_FLASH_SECTOR_96:
case LL_FLASH_SECTOR_97:
case LL_FLASH_SECTOR_98:
case LL_FLASH_SECTOR_99:
{
LL_FLASH_BYPASS();
SET_BIT(FLASH->SLOCK0, LL_REG_BIT_24);
break;
}
case LL_FLASH_SECTOR_100:
case LL_FLASH_SECTOR_101:
case LL_FLASH_SECTOR_102:
case LL_FLASH_SECTOR_103:
{
LL_FLASH_BYPASS();
SET_BIT(FLASH->SLOCK0, LL_REG_BIT_25);
break;
}
case LL_FLASH_SECTOR_104:
case LL_FLASH_SECTOR_105:
case LL_FLASH_SECTOR_106:
case LL_FLASH_SECTOR_107:
{
LL_FLASH_BYPASS();
SET_BIT(FLASH->SLOCK0, LL_REG_BIT_26);
break;
}
case LL_FLASH_SECTOR_108:
case LL_FLASH_SECTOR_109:
case LL_FLASH_SECTOR_110:
case LL_FLASH_SECTOR_111:
{
LL_FLASH_BYPASS();
SET_BIT(FLASH->SLOCK0, LL_REG_BIT_27);
break;
}
case LL_FLASH_SECTOR_112:
case LL_FLASH_SECTOR_113:
case LL_FLASH_SECTOR_114:
case LL_FLASH_SECTOR_115:
{
LL_FLASH_BYPASS();
SET_BIT(FLASH->SLOCK0, LL_REG_BIT_28);
break;
}
case LL_FLASH_SECTOR_116:
case LL_FLASH_SECTOR_117:
case LL_FLASH_SECTOR_118:
case LL_FLASH_SECTOR_119:
{
LL_FLASH_BYPASS();
SET_BIT(FLASH->SLOCK0, LL_REG_BIT_29);
break;
}
case LL_FLASH_SECTOR_120:
case LL_FLASH_SECTOR_121:
case LL_FLASH_SECTOR_122:
case LL_FLASH_SECTOR_123:
{
LL_FLASH_BYPASS();
SET_BIT(FLASH->SLOCK0, LL_REG_BIT_30);
break;
}
case LL_FLASH_SECTOR_124:
case LL_FLASH_SECTOR_125:
case LL_FLASH_SECTOR_126:
case LL_FLASH_SECTOR_127:
{
LL_FLASH_BYPASS();
SET_BIT(FLASH->SLOCK0, LL_REG_BIT_31);
break;
}
case LL_FLASH_SECTOR_128:
case LL_FLASH_SECTOR_129:
case LL_FLASH_SECTOR_130:
case LL_FLASH_SECTOR_131:
{
if (flash_size > 0x10000UL)
{
LL_FLASH_BYPASS();
SET_BIT(FLASH->SLOCK1, LL_REG_BIT_0);
}
break;
}
case LL_FLASH_SECTOR_132:
case LL_FLASH_SECTOR_133:
case LL_FLASH_SECTOR_134:
case LL_FLASH_SECTOR_135:
{
if (flash_size > 0x10000UL)
{
LL_FLASH_BYPASS();
SET_BIT(FLASH->SLOCK1, LL_REG_BIT_1);
}
break;
}
case LL_FLASH_SECTOR_136:
case LL_FLASH_SECTOR_137:
case LL_FLASH_SECTOR_138:
case LL_FLASH_SECTOR_139:
{
if (flash_size > 0x10000UL)
{
LL_FLASH_BYPASS();
SET_BIT(FLASH->SLOCK1, LL_REG_BIT_2);
}
break;
}
case LL_FLASH_SECTOR_140:
case LL_FLASH_SECTOR_141:
case LL_FLASH_SECTOR_142:
case LL_FLASH_SECTOR_143:
{
if (flash_size > 0x10000UL)
{
LL_FLASH_BYPASS();
SET_BIT(FLASH->SLOCK1, LL_REG_BIT_3);
}
break;
}
case LL_FLASH_SECTOR_144:
case LL_FLASH_SECTOR_145:
case LL_FLASH_SECTOR_146:
case LL_FLASH_SECTOR_147:
{
if (flash_size > 0x10000UL)
{
LL_FLASH_BYPASS();
SET_BIT(FLASH->SLOCK1, LL_REG_BIT_4);
}
break;
}
case LL_FLASH_SECTOR_148:
case LL_FLASH_SECTOR_149:
case LL_FLASH_SECTOR_150:
case LL_FLASH_SECTOR_151:
{
if (flash_size > 0x10000UL)
{
LL_FLASH_BYPASS();
SET_BIT(FLASH->SLOCK1, LL_REG_BIT_5);
}
break;
}
case LL_FLASH_SECTOR_152:
case LL_FLASH_SECTOR_153:
case LL_FLASH_SECTOR_154:
case LL_FLASH_SECTOR_155:
{
if (flash_size > 0x10000UL)
{
LL_FLASH_BYPASS();
SET_BIT(FLASH->SLOCK1, LL_REG_BIT_6);
}
break;
}
case LL_FLASH_SECTOR_156:
case LL_FLASH_SECTOR_157:
case LL_FLASH_SECTOR_158:
case LL_FLASH_SECTOR_159:
{
if (flash_size > 0x10000UL)
{
LL_FLASH_BYPASS();
SET_BIT(FLASH->SLOCK1, LL_REG_BIT_7);
}
break;
}
case LL_FLASH_SECTOR_160:
case LL_FLASH_SECTOR_161:
case LL_FLASH_SECTOR_162:
case LL_FLASH_SECTOR_163:
{
if (flash_size > 0x10000UL)
{
LL_FLASH_BYPASS();
SET_BIT(FLASH->SLOCK1, LL_REG_BIT_8);
}
break;
}
case LL_FLASH_SECTOR_164:
case LL_FLASH_SECTOR_165:
case LL_FLASH_SECTOR_166:
case LL_FLASH_SECTOR_167:
{
if (flash_size > 0x10000UL)
{
LL_FLASH_BYPASS();
SET_BIT(FLASH->SLOCK1, LL_REG_BIT_9);
}
break;
}
case LL_FLASH_SECTOR_168:
case LL_FLASH_SECTOR_169:
case LL_FLASH_SECTOR_170:
case LL_FLASH_SECTOR_171:
{
if (flash_size > 0x10000UL)
{
LL_FLASH_BYPASS();
SET_BIT(FLASH->SLOCK1, LL_REG_BIT_10);
}
break;
}
case LL_FLASH_SECTOR_172:
case LL_FLASH_SECTOR_173:
case LL_FLASH_SECTOR_174:
case LL_FLASH_SECTOR_175:
{
if (flash_size > 0x10000UL)
{
LL_FLASH_BYPASS();
SET_BIT(FLASH->SLOCK1, LL_REG_BIT_11);
}
break;
}
case LL_FLASH_SECTOR_176:
case LL_FLASH_SECTOR_177:
case LL_FLASH_SECTOR_178:
case LL_FLASH_SECTOR_179:
{
if (flash_size > 0x10000UL)
{
LL_FLASH_BYPASS();
SET_BIT(FLASH->SLOCK1, LL_REG_BIT_12);
}
break;
}
case LL_FLASH_SECTOR_180:
case LL_FLASH_SECTOR_181:
case LL_FLASH_SECTOR_182:
case LL_FLASH_SECTOR_183:
{
if (flash_size > 0x10000UL)
{
LL_FLASH_BYPASS();
SET_BIT(FLASH->SLOCK1, LL_REG_BIT_13);
}
break;
}
case LL_FLASH_SECTOR_184:
case LL_FLASH_SECTOR_185:
case LL_FLASH_SECTOR_186:
case LL_FLASH_SECTOR_187:
{
if (flash_size > 0x10000UL)
{
LL_FLASH_BYPASS();
SET_BIT(FLASH->SLOCK1, LL_REG_BIT_14);
}
break;
}
case LL_FLASH_SECTOR_188:
case LL_FLASH_SECTOR_189:
case LL_FLASH_SECTOR_190:
case LL_FLASH_SECTOR_191:
{
if (flash_size > 0x10000UL)
{
LL_FLASH_BYPASS();
SET_BIT(FLASH->SLOCK1, LL_REG_BIT_15);
}
break;
}
case LL_FLASH_SECTOR_192:
case LL_FLASH_SECTOR_193:
case LL_FLASH_SECTOR_194:
case LL_FLASH_SECTOR_195:
{
if (flash_size > 0x10000UL)
{
LL_FLASH_BYPASS();
SET_BIT(FLASH->SLOCK1, LL_REG_BIT_16);
}
break;
}
case LL_FLASH_SECTOR_196:
case LL_FLASH_SECTOR_197:
case LL_FLASH_SECTOR_198:
case LL_FLASH_SECTOR_199:
{
if (flash_size > 0x10000UL)
{
LL_FLASH_BYPASS();
SET_BIT(FLASH->SLOCK1, LL_REG_BIT_17);
}
break;
}
case LL_FLASH_SECTOR_200:
case LL_FLASH_SECTOR_201:
case LL_FLASH_SECTOR_202:
case LL_FLASH_SECTOR_203:
{
if (flash_size > 0x10000UL)
{
LL_FLASH_BYPASS();
SET_BIT(FLASH->SLOCK1, LL_REG_BIT_18);
}
break;
}
case LL_FLASH_SECTOR_204:
case LL_FLASH_SECTOR_205:
case LL_FLASH_SECTOR_206:
case LL_FLASH_SECTOR_207:
{
if (flash_size > 0x10000UL)
{
LL_FLASH_BYPASS();
SET_BIT(FLASH->SLOCK1, LL_REG_BIT_19);
}
break;
}
case LL_FLASH_SECTOR_208:
case LL_FLASH_SECTOR_209:
case LL_FLASH_SECTOR_210:
case LL_FLASH_SECTOR_211:
{
if (flash_size > 0x10000UL)
{
LL_FLASH_BYPASS();
SET_BIT(FLASH->SLOCK1, LL_REG_BIT_20);
}
break;
}
case LL_FLASH_SECTOR_212:
case LL_FLASH_SECTOR_213:
case LL_FLASH_SECTOR_214:
case LL_FLASH_SECTOR_215:
{
if (flash_size > 0x10000UL)
{
LL_FLASH_BYPASS();
SET_BIT(FLASH->SLOCK1, LL_REG_BIT_21);
}
break;
}
case LL_FLASH_SECTOR_216:
case LL_FLASH_SECTOR_217:
case LL_FLASH_SECTOR_218:
case LL_FLASH_SECTOR_219:
{
if (flash_size > 0x10000UL)
{
LL_FLASH_BYPASS();
SET_BIT(FLASH->SLOCK1, LL_REG_BIT_22);
}
break;
}
case LL_FLASH_SECTOR_220:
case LL_FLASH_SECTOR_221:
case LL_FLASH_SECTOR_222:
case LL_FLASH_SECTOR_223:
{
if (flash_size > 0x10000UL)
{
LL_FLASH_BYPASS();
SET_BIT(FLASH->SLOCK1, LL_REG_BIT_23);
}
break;
}
case LL_FLASH_SECTOR_224:
case LL_FLASH_SECTOR_225:
case LL_FLASH_SECTOR_226:
case LL_FLASH_SECTOR_227:
{
if (flash_size > 0x10000UL)
{
LL_FLASH_BYPASS();
SET_BIT(FLASH->SLOCK1, LL_REG_BIT_24);
}
break;
}
case LL_FLASH_SECTOR_228:
case LL_FLASH_SECTOR_229:
case LL_FLASH_SECTOR_230:
case LL_FLASH_SECTOR_231:
{
if (flash_size > 0x10000UL)
{
LL_FLASH_BYPASS();
SET_BIT(FLASH->SLOCK1, LL_REG_BIT_25);
}
break;
}
case LL_FLASH_SECTOR_232:
case LL_FLASH_SECTOR_233:
case LL_FLASH_SECTOR_234:
case LL_FLASH_SECTOR_235:
{
if (flash_size > 0x10000UL)
{
LL_FLASH_BYPASS();
SET_BIT(FLASH->SLOCK1, LL_REG_BIT_26);
}
break;
}
case LL_FLASH_SECTOR_236:
case LL_FLASH_SECTOR_237:
case LL_FLASH_SECTOR_238:
case LL_FLASH_SECTOR_239:
{
if (flash_size > 0x10000UL)
{
LL_FLASH_BYPASS();
SET_BIT(FLASH->SLOCK1, LL_REG_BIT_27);
}
break;
}
case LL_FLASH_SECTOR_240:
case LL_FLASH_SECTOR_241:
case LL_FLASH_SECTOR_242:
case LL_FLASH_SECTOR_243:
{
if (flash_size > 0x10000UL)
{
LL_FLASH_BYPASS();
SET_BIT(FLASH->SLOCK1, LL_REG_BIT_28);
}
break;
}
case LL_FLASH_SECTOR_244:
case LL_FLASH_SECTOR_245:
case LL_FLASH_SECTOR_246:
case LL_FLASH_SECTOR_247:
{
if (flash_size > 0x10000UL)
{
LL_FLASH_BYPASS();
SET_BIT(FLASH->SLOCK1, LL_REG_BIT_29);
}
break;
}
case LL_FLASH_SECTOR_248:
case LL_FLASH_SECTOR_249:
case LL_FLASH_SECTOR_250:
case LL_FLASH_SECTOR_251:
{
if (flash_size > 0x10000UL)
{
LL_FLASH_BYPASS();
SET_BIT(FLASH->SLOCK1, LL_REG_BIT_30);
}
break;
}
case LL_FLASH_SECTOR_252:
case LL_FLASH_SECTOR_253:
case LL_FLASH_SECTOR_254:
case LL_FLASH_SECTOR_255:
{
if (flash_size > 0x10000UL)
{
LL_FLASH_BYPASS();
SET_BIT(FLASH->SLOCK1, LL_REG_BIT_31);
}
break;
}
case LL_FLASH_SECTOR_256:
case LL_FLASH_SECTOR_257:
case LL_FLASH_SECTOR_258:
case LL_FLASH_SECTOR_259:
{
if (flash_size > 0x20000UL)
{
LL_FLASH_BYPASS();
SET_BIT(FLASH->SLOCK2, LL_REG_BIT_0);
}
break;
}
case LL_FLASH_SECTOR_260:
case LL_FLASH_SECTOR_261:
case LL_FLASH_SECTOR_262:
case LL_FLASH_SECTOR_263:
{
if (flash_size > 0x20000UL)
{
LL_FLASH_BYPASS();
SET_BIT(FLASH->SLOCK2, LL_REG_BIT_1);
}
break;
}
case LL_FLASH_SECTOR_264:
case LL_FLASH_SECTOR_265:
case LL_FLASH_SECTOR_266:
case LL_FLASH_SECTOR_267:
{
if (flash_size > 0x20000UL)
{
LL_FLASH_BYPASS();
SET_BIT(FLASH->SLOCK2, LL_REG_BIT_2);
}
break;
}
case LL_FLASH_SECTOR_268:
case LL_FLASH_SECTOR_269:
case LL_FLASH_SECTOR_270:
case LL_FLASH_SECTOR_271:
{
if (flash_size > 0x20000UL)
{
LL_FLASH_BYPASS();
SET_BIT(FLASH->SLOCK2, LL_REG_BIT_3);
}
break;
}
case LL_FLASH_SECTOR_272:
case LL_FLASH_SECTOR_273:
case LL_FLASH_SECTOR_274:
case LL_FLASH_SECTOR_275:
{
if (flash_size > 0x20000UL)
{
LL_FLASH_BYPASS();
SET_BIT(FLASH->SLOCK2, LL_REG_BIT_4);
}
break;
}
case LL_FLASH_SECTOR_276:
case LL_FLASH_SECTOR_277:
case LL_FLASH_SECTOR_278:
case LL_FLASH_SECTOR_279:
{
if (flash_size > 0x20000UL)
{
LL_FLASH_BYPASS();
SET_BIT(FLASH->SLOCK2, LL_REG_BIT_5);
}
break;
}
case LL_FLASH_SECTOR_280:
case LL_FLASH_SECTOR_281:
case LL_FLASH_SECTOR_282:
case LL_FLASH_SECTOR_283:
{
if (flash_size > 0x20000UL)
{
LL_FLASH_BYPASS();
SET_BIT(FLASH->SLOCK2, LL_REG_BIT_6);
}
break;
}
case LL_FLASH_SECTOR_284:
case LL_FLASH_SECTOR_285:
case LL_FLASH_SECTOR_286:
case LL_FLASH_SECTOR_287:
{
if (flash_size > 0x20000UL)
{
LL_FLASH_BYPASS();
SET_BIT(FLASH->SLOCK2, LL_REG_BIT_7);
}
break;
}
case LL_FLASH_SECTOR_288:
case LL_FLASH_SECTOR_289:
case LL_FLASH_SECTOR_290:
case LL_FLASH_SECTOR_291:
{
if (flash_size > 0x20000UL)
{
LL_FLASH_BYPASS();
SET_BIT(FLASH->SLOCK2, LL_REG_BIT_8);
}
break;
}
case LL_FLASH_SECTOR_292:
case LL_FLASH_SECTOR_293:
case LL_FLASH_SECTOR_294:
case LL_FLASH_SECTOR_295:
{
if (flash_size > 0x20000UL)
{
LL_FLASH_BYPASS();
SET_BIT(FLASH->SLOCK2, LL_REG_BIT_9);
}
break;
}
case LL_FLASH_SECTOR_296:
case LL_FLASH_SECTOR_297:
case LL_FLASH_SECTOR_298:
case LL_FLASH_SECTOR_299:
{
if (flash_size > 0x20000UL)
{
LL_FLASH_BYPASS();
SET_BIT(FLASH->SLOCK2, LL_REG_BIT_10);
}
break;
}
case LL_FLASH_SECTOR_300:
case LL_FLASH_SECTOR_301:
case LL_FLASH_SECTOR_302:
case LL_FLASH_SECTOR_303:
{
if (flash_size > 0x20000UL)
{
LL_FLASH_BYPASS();
SET_BIT(FLASH->SLOCK2, LL_REG_BIT_11);
}
break;
}
case LL_FLASH_SECTOR_304:
case LL_FLASH_SECTOR_305:
case LL_FLASH_SECTOR_306:
case LL_FLASH_SECTOR_307:
{
if (flash_size > 0x20000UL)
{
LL_FLASH_BYPASS();
SET_BIT(FLASH->SLOCK2, LL_REG_BIT_12);
}
break;
}
case LL_FLASH_SECTOR_308:
case LL_FLASH_SECTOR_309:
case LL_FLASH_SECTOR_310:
case LL_FLASH_SECTOR_311:
{
if (flash_size > 0x20000UL)
{
LL_FLASH_BYPASS();
SET_BIT(FLASH->SLOCK2, LL_REG_BIT_13);
}
break;
}
case LL_FLASH_SECTOR_312:
case LL_FLASH_SECTOR_313:
case LL_FLASH_SECTOR_314:
case LL_FLASH_SECTOR_315:
{
if (flash_size > 0x20000UL)
{
LL_FLASH_BYPASS();
SET_BIT(FLASH->SLOCK2, LL_REG_BIT_14);
}
break;
}
case LL_FLASH_SECTOR_316:
case LL_FLASH_SECTOR_317:
case LL_FLASH_SECTOR_318:
case LL_FLASH_SECTOR_319:
{
if (flash_size > 0x20000UL)
{
LL_FLASH_BYPASS();
SET_BIT(FLASH->SLOCK2, LL_REG_BIT_15);
}
break;
}
case LL_FLASH_SECTOR_320:
case LL_FLASH_SECTOR_321:
case LL_FLASH_SECTOR_322:
case LL_FLASH_SECTOR_323:
{
if (flash_size > 0x20000UL)
{
LL_FLASH_BYPASS();
SET_BIT(FLASH->SLOCK2, LL_REG_BIT_16);
}
break;
}
case LL_FLASH_SECTOR_324:
case LL_FLASH_SECTOR_325:
case LL_FLASH_SECTOR_326:
case LL_FLASH_SECTOR_327:
{
if (flash_size > 0x20000UL)
{
LL_FLASH_BYPASS();
SET_BIT(FLASH->SLOCK2, LL_REG_BIT_17);
}
break;
}
case LL_FLASH_SECTOR_328:
case LL_FLASH_SECTOR_329:
case LL_FLASH_SECTOR_330:
case LL_FLASH_SECTOR_331:
{
if (flash_size > 0x20000UL)
{
LL_FLASH_BYPASS();
SET_BIT(FLASH->SLOCK2, LL_REG_BIT_18);
}
break;
}
case LL_FLASH_SECTOR_332:
case LL_FLASH_SECTOR_333:
case LL_FLASH_SECTOR_334:
case LL_FLASH_SECTOR_335:
{
if (flash_size > 0x20000UL)
{
LL_FLASH_BYPASS();
SET_BIT(FLASH->SLOCK2, LL_REG_BIT_19);
}
break;
}
case LL_FLASH_SECTOR_336:
case LL_FLASH_SECTOR_337:
case LL_FLASH_SECTOR_338:
case LL_FLASH_SECTOR_339:
{
if (flash_size > 0x20000UL)
{
LL_FLASH_BYPASS();
SET_BIT(FLASH->SLOCK2, LL_REG_BIT_20);
}
break;
}
case LL_FLASH_SECTOR_340:
case LL_FLASH_SECTOR_341:
case LL_FLASH_SECTOR_342:
case LL_FLASH_SECTOR_343:
{
if (flash_size > 0x20000UL)
{
LL_FLASH_BYPASS();
SET_BIT(FLASH->SLOCK2, LL_REG_BIT_21);
}
break;
}
case LL_FLASH_SECTOR_344:
case LL_FLASH_SECTOR_345:
case LL_FLASH_SECTOR_346:
case LL_FLASH_SECTOR_347:
{
if (flash_size > 0x20000UL)
{
LL_FLASH_BYPASS();
SET_BIT(FLASH->SLOCK2, LL_REG_BIT_22);
}
break;
}
case LL_FLASH_SECTOR_348:
case LL_FLASH_SECTOR_349:
case LL_FLASH_SECTOR_350:
case LL_FLASH_SECTOR_351:
{
if (flash_size > 0x20000UL)
{
LL_FLASH_BYPASS();
SET_BIT(FLASH->SLOCK2, LL_REG_BIT_23);
}
break;
}
case LL_FLASH_SECTOR_352:
case LL_FLASH_SECTOR_353:
case LL_FLASH_SECTOR_354:
case LL_FLASH_SECTOR_355:
{
if (flash_size > 0x20000UL)
{
LL_FLASH_BYPASS();
SET_BIT(FLASH->SLOCK2, LL_REG_BIT_24);
}
break;
}
case LL_FLASH_SECTOR_356:
case LL_FLASH_SECTOR_357:
case LL_FLASH_SECTOR_358:
case LL_FLASH_SECTOR_359:
{
if (flash_size > 0x20000UL)
{
LL_FLASH_BYPASS();
SET_BIT(FLASH->SLOCK2, LL_REG_BIT_25);
}
break;
}
case LL_FLASH_SECTOR_360:
case LL_FLASH_SECTOR_361:
case LL_FLASH_SECTOR_362:
case LL_FLASH_SECTOR_363:
{
if (flash_size > 0x20000UL)
{
LL_FLASH_BYPASS();
SET_BIT(FLASH->SLOCK2, LL_REG_BIT_26);
}
break;
}
case LL_FLASH_SECTOR_364:
case LL_FLASH_SECTOR_365:
case LL_FLASH_SECTOR_366:
case LL_FLASH_SECTOR_367:
{
if (flash_size > 0x20000UL)
{
LL_FLASH_BYPASS();
SET_BIT(FLASH->SLOCK2, LL_REG_BIT_27);
}
break;
}
case LL_FLASH_SECTOR_368:
case LL_FLASH_SECTOR_369:
case LL_FLASH_SECTOR_370:
case LL_FLASH_SECTOR_371:
{
if (flash_size > 0x20000UL)
{
LL_FLASH_BYPASS();
SET_BIT(FLASH->SLOCK2, LL_REG_BIT_28);
}
break;
}
case LL_FLASH_SECTOR_372:
case LL_FLASH_SECTOR_373:
case LL_FLASH_SECTOR_374:
case LL_FLASH_SECTOR_375:
{
if (flash_size > 0x20000UL)
{
LL_FLASH_BYPASS();
SET_BIT(FLASH->SLOCK2, LL_REG_BIT_29);
}
break;
}
case LL_FLASH_SECTOR_376:
case LL_FLASH_SECTOR_377:
case LL_FLASH_SECTOR_378:
case LL_FLASH_SECTOR_379:
{
if (flash_size > 0x20000UL)
{
LL_FLASH_BYPASS();
SET_BIT(FLASH->SLOCK2, LL_REG_BIT_30);
}
break;
}
case LL_FLASH_SECTOR_380:
case LL_FLASH_SECTOR_381:
case LL_FLASH_SECTOR_382:
case LL_FLASH_SECTOR_383:
{
if (flash_size > 0x20000UL)
{
LL_FLASH_BYPASS();
SET_BIT(FLASH->SLOCK2, LL_REG_BIT_31);
}
break;
}
case LL_FLASH_SECTOR_384:
case LL_FLASH_SECTOR_385:
case LL_FLASH_SECTOR_386:
case LL_FLASH_SECTOR_387:
{
if (flash_size > 0x30000UL)
{
LL_FLASH_BYPASS();
SET_BIT(FLASH->SLOCK3, LL_REG_BIT_0);
}
break;
}
case LL_FLASH_SECTOR_388:
case LL_FLASH_SECTOR_389:
case LL_FLASH_SECTOR_390:
case LL_FLASH_SECTOR_391:
{
if (flash_size > 0x30000UL)
{
LL_FLASH_BYPASS();
SET_BIT(FLASH->SLOCK3, LL_REG_BIT_1);
}
break;
}
case LL_FLASH_SECTOR_392:
case LL_FLASH_SECTOR_393:
case LL_FLASH_SECTOR_394:
case LL_FLASH_SECTOR_395:
{
if (flash_size > 0x30000UL)
{
LL_FLASH_BYPASS();
SET_BIT(FLASH->SLOCK3, LL_REG_BIT_2);
}
break;
}
case LL_FLASH_SECTOR_396:
case LL_FLASH_SECTOR_397:
case LL_FLASH_SECTOR_398:
case LL_FLASH_SECTOR_399:
{
if (flash_size > 0x30000UL)
{
LL_FLASH_BYPASS();
SET_BIT(FLASH->SLOCK3, LL_REG_BIT_3);
}
break;
}
case LL_FLASH_SECTOR_400:
case LL_FLASH_SECTOR_401:
case LL_FLASH_SECTOR_402:
case LL_FLASH_SECTOR_403:
{
if (flash_size > 0x30000UL)
{
LL_FLASH_BYPASS();
SET_BIT(FLASH->SLOCK3, LL_REG_BIT_4);
}
break;
}
case LL_FLASH_SECTOR_404:
case LL_FLASH_SECTOR_405:
case LL_FLASH_SECTOR_406:
case LL_FLASH_SECTOR_407:
{
if (flash_size > 0x30000UL)
{
LL_FLASH_BYPASS();
SET_BIT(FLASH->SLOCK3, LL_REG_BIT_5);
}
break;
}
case LL_FLASH_SECTOR_408:
case LL_FLASH_SECTOR_409:
case LL_FLASH_SECTOR_410:
case LL_FLASH_SECTOR_411:
{
if (flash_size > 0x30000UL)
{
LL_FLASH_BYPASS();
SET_BIT(FLASH->SLOCK3, LL_REG_BIT_6);
}
break;
}
case LL_FLASH_SECTOR_412:
case LL_FLASH_SECTOR_413:
case LL_FLASH_SECTOR_414:
case LL_FLASH_SECTOR_415:
{
if (flash_size > 0x30000UL)
{
LL_FLASH_BYPASS();
SET_BIT(FLASH->SLOCK3, LL_REG_BIT_7);
}
break;
}
case LL_FLASH_SECTOR_416:
case LL_FLASH_SECTOR_417:
case LL_FLASH_SECTOR_418:
case LL_FLASH_SECTOR_419:
{
if (flash_size > 0x30000UL)
{
LL_FLASH_BYPASS();
SET_BIT(FLASH->SLOCK3, LL_REG_BIT_8);
}
break;
}
case LL_FLASH_SECTOR_420:
case LL_FLASH_SECTOR_421:
case LL_FLASH_SECTOR_422:
case LL_FLASH_SECTOR_423:
{
if (flash_size > 0x30000UL)
{
LL_FLASH_BYPASS();
SET_BIT(FLASH->SLOCK3, LL_REG_BIT_9);
}
break;
}
case LL_FLASH_SECTOR_424:
case LL_FLASH_SECTOR_425:
case LL_FLASH_SECTOR_426:
case LL_FLASH_SECTOR_427:
{
if (flash_size > 0x30000UL)
{
LL_FLASH_BYPASS();
SET_BIT(FLASH->SLOCK3, LL_REG_BIT_10);
}
break;
}
case LL_FLASH_SECTOR_428:
case LL_FLASH_SECTOR_429:
case LL_FLASH_SECTOR_430:
case LL_FLASH_SECTOR_431:
{
if (flash_size > 0x30000UL)
{
LL_FLASH_BYPASS();
SET_BIT(FLASH->SLOCK3, LL_REG_BIT_11);
}
break;
}
case LL_FLASH_SECTOR_432:
case LL_FLASH_SECTOR_433:
case LL_FLASH_SECTOR_434:
case LL_FLASH_SECTOR_435:
{
if (flash_size > 0x30000UL)
{
LL_FLASH_BYPASS();
SET_BIT(FLASH->SLOCK3, LL_REG_BIT_12);
}
break;
}
case LL_FLASH_SECTOR_436:
case LL_FLASH_SECTOR_437:
case LL_FLASH_SECTOR_438:
case LL_FLASH_SECTOR_439:
{
if (flash_size > 0x30000UL)
{
LL_FLASH_BYPASS();
SET_BIT(FLASH->SLOCK3, LL_REG_BIT_13);
}
break;
}
case LL_FLASH_SECTOR_440:
case LL_FLASH_SECTOR_441:
case LL_FLASH_SECTOR_442:
case LL_FLASH_SECTOR_443:
{
if (flash_size > 0x30000UL)
{
LL_FLASH_BYPASS();
SET_BIT(FLASH->SLOCK3, LL_REG_BIT_14);
}
break;
}
case LL_FLASH_SECTOR_444:
case LL_FLASH_SECTOR_445:
case LL_FLASH_SECTOR_446:
case LL_FLASH_SECTOR_447:
{
if (flash_size > 0x30000UL)
{
LL_FLASH_BYPASS();
SET_BIT(FLASH->SLOCK3, LL_REG_BIT_15);
}
break;
}
case LL_FLASH_SECTOR_448:
case LL_FLASH_SECTOR_449:
case LL_FLASH_SECTOR_450:
case LL_FLASH_SECTOR_451:
{
if (flash_size > 0x30000UL)
{
LL_FLASH_BYPASS();
SET_BIT(FLASH->SLOCK3, LL_REG_BIT_16);
}
break;
}
case LL_FLASH_SECTOR_452:
case LL_FLASH_SECTOR_453:
case LL_FLASH_SECTOR_454:
case LL_FLASH_SECTOR_455:
{
if (flash_size > 0x30000UL)
{
LL_FLASH_BYPASS();
SET_BIT(FLASH->SLOCK3, LL_REG_BIT_17);
}
break;
}
case LL_FLASH_SECTOR_456:
case LL_FLASH_SECTOR_457:
case LL_FLASH_SECTOR_458:
case LL_FLASH_SECTOR_459:
{
if (flash_size > 0x30000UL)
{
LL_FLASH_BYPASS();
SET_BIT(FLASH->SLOCK3, LL_REG_BIT_18);
}
break;
}
case LL_FLASH_SECTOR_460:
case LL_FLASH_SECTOR_461:
case LL_FLASH_SECTOR_462:
case LL_FLASH_SECTOR_463:
{
if (flash_size > 0x30000UL)
{
LL_FLASH_BYPASS();
SET_BIT(FLASH->SLOCK3, LL_REG_BIT_19);
}
break;
}
case LL_FLASH_SECTOR_464:
case LL_FLASH_SECTOR_465:
case LL_FLASH_SECTOR_466:
case LL_FLASH_SECTOR_467:
{
if (flash_size > 0x30000UL)
{
LL_FLASH_BYPASS();
SET_BIT(FLASH->SLOCK3, LL_REG_BIT_20);
}
break;
}
case LL_FLASH_SECTOR_468:
case LL_FLASH_SECTOR_469:
case LL_FLASH_SECTOR_470:
case LL_FLASH_SECTOR_471:
{
if (flash_size > 0x30000UL)
{
LL_FLASH_BYPASS();
SET_BIT(FLASH->SLOCK3, LL_REG_BIT_21);
}
break;
}
case LL_FLASH_SECTOR_472:
case LL_FLASH_SECTOR_473:
case LL_FLASH_SECTOR_474:
case LL_FLASH_SECTOR_475:
{
if (flash_size > 0x30000UL)
{
LL_FLASH_BYPASS();
SET_BIT(FLASH->SLOCK3, LL_REG_BIT_22);
}
break;
}
case LL_FLASH_SECTOR_476:
case LL_FLASH_SECTOR_477:
case LL_FLASH_SECTOR_478:
case LL_FLASH_SECTOR_479:
{
if (flash_size > 0x30000UL)
{
LL_FLASH_BYPASS();
SET_BIT(FLASH->SLOCK3, LL_REG_BIT_23);
}
break;
}
case LL_FLASH_SECTOR_480:
case LL_FLASH_SECTOR_481:
case LL_FLASH_SECTOR_482:
case LL_FLASH_SECTOR_483:
{
if (flash_size > 0x30000UL)
{
LL_FLASH_BYPASS();
SET_BIT(FLASH->SLOCK3, LL_REG_BIT_24);
}
break;
}
case LL_FLASH_SECTOR_484:
case LL_FLASH_SECTOR_485:
case LL_FLASH_SECTOR_486:
case LL_FLASH_SECTOR_487:
{
if (flash_size > 0x30000UL)
{
LL_FLASH_BYPASS();
SET_BIT(FLASH->SLOCK3, LL_REG_BIT_25);
}
break;
}
case LL_FLASH_SECTOR_488:
case LL_FLASH_SECTOR_489:
case LL_FLASH_SECTOR_490:
case LL_FLASH_SECTOR_491:
{
if (flash_size > 0x30000UL)
{
LL_FLASH_BYPASS();
SET_BIT(FLASH->SLOCK3, LL_REG_BIT_26);
}
break;
}
case LL_FLASH_SECTOR_492:
case LL_FLASH_SECTOR_493:
case LL_FLASH_SECTOR_494:
case LL_FLASH_SECTOR_495:
{
if (flash_size > 0x30000UL)
{
LL_FLASH_BYPASS();
SET_BIT(FLASH->SLOCK3, LL_REG_BIT_27);
}
break;
}
case LL_FLASH_SECTOR_496:
case LL_FLASH_SECTOR_497:
case LL_FLASH_SECTOR_498:
case LL_FLASH_SECTOR_499:
{
if (flash_size > 0x30000UL)
{
LL_FLASH_BYPASS();
SET_BIT(FLASH->SLOCK3, LL_REG_BIT_28);
}
break;
}
case LL_FLASH_SECTOR_500:
case LL_FLASH_SECTOR_501:
case LL_FLASH_SECTOR_502:
case LL_FLASH_SECTOR_503:
{
if (flash_size > 0x30000UL)
{
LL_FLASH_BYPASS();
SET_BIT(FLASH->SLOCK3, LL_REG_BIT_29);
}
break;
}
case LL_FLASH_SECTOR_504:
case LL_FLASH_SECTOR_505:
case LL_FLASH_SECTOR_506:
case LL_FLASH_SECTOR_507:
{
if (flash_size > 0x30000UL)
{
LL_FLASH_BYPASS();
SET_BIT(FLASH->SLOCK3, LL_REG_BIT_30);
}
break;
}
case LL_FLASH_SECTOR_508:
case LL_FLASH_SECTOR_509:
case LL_FLASH_SECTOR_510:
case LL_FLASH_SECTOR_511:
{
if (flash_size > 0x30000UL)
{
LL_FLASH_BYPASS();
SET_BIT(FLASH->SLOCK3, LL_REG_BIT_31);
}
break;
}
default:
{
LL_FLASH_Lock();
break;
}
}
}
///
//函 数:
//功 能: 锁定指定位置
//输入参 数:
//输出参 数:
//说 明:
//
static inline void LL_FLASH_LockAddr(uint32_t addr)
{
//---计算是扇区编号
uint32_t sector_num = addr / LL_FLASH_SECTOR_SIZE;
//---获取Flash大小
uint32_t flash_size = LL_FLASH_GetFlashSize();
//---扇区编号
switch (sector_num)
{
case LL_FLASH_SECTOR_0:
case LL_FLASH_SECTOR_1:
case LL_FLASH_SECTOR_2:
case LL_FLASH_SECTOR_3:
{
LL_FLASH_BYPASS();
CLEAR_BIT(FLASH->SLOCK0, LL_REG_BIT_0);
break;
}
case LL_FLASH_SECTOR_4:
case LL_FLASH_SECTOR_5:
case LL_FLASH_SECTOR_6:
case LL_FLASH_SECTOR_7:
{
LL_FLASH_BYPASS();
CLEAR_BIT(FLASH->SLOCK0, LL_REG_BIT_1);
break;
}
case LL_FLASH_SECTOR_8:
case LL_FLASH_SECTOR_9:
case LL_FLASH_SECTOR_10:
case LL_FLASH_SECTOR_11:
{
LL_FLASH_BYPASS();
CLEAR_BIT(FLASH->SLOCK0, LL_REG_BIT_2);
break;
}
case LL_FLASH_SECTOR_12:
case LL_FLASH_SECTOR_13:
case LL_FLASH_SECTOR_14:
case LL_FLASH_SECTOR_15:
{
LL_FLASH_BYPASS();
CLEAR_BIT(FLASH->SLOCK0, LL_REG_BIT_3);
break;
}
case LL_FLASH_SECTOR_16:
case LL_FLASH_SECTOR_17:
case LL_FLASH_SECTOR_18:
case LL_FLASH_SECTOR_19:
{
LL_FLASH_BYPASS();
CLEAR_BIT(FLASH->SLOCK0, LL_REG_BIT_4);
break;
}
case LL_FLASH_SECTOR_20:
case LL_FLASH_SECTOR_21:
case LL_FLASH_SECTOR_22:
case LL_FLASH_SECTOR_23:
{
LL_FLASH_BYPASS();
CLEAR_BIT(FLASH->SLOCK0, LL_REG_BIT_5);
break;
}
case LL_FLASH_SECTOR_24:
case LL_FLASH_SECTOR_25:
case LL_FLASH_SECTOR_26:
case LL_FLASH_SECTOR_27:
{
LL_FLASH_BYPASS();
CLEAR_BIT(FLASH->SLOCK0, LL_REG_BIT_6);
break;
}
case LL_FLASH_SECTOR_28:
case LL_FLASH_SECTOR_29:
case LL_FLASH_SECTOR_30:
case LL_FLASH_SECTOR_31:
{
LL_FLASH_BYPASS();
CLEAR_BIT(FLASH->SLOCK0, LL_REG_BIT_7);
break;
}
case LL_FLASH_SECTOR_32:
case LL_FLASH_SECTOR_33:
case LL_FLASH_SECTOR_34:
case LL_FLASH_SECTOR_35:
{
LL_FLASH_BYPASS();
CLEAR_BIT(FLASH->SLOCK0, LL_REG_BIT_8);
break;
}
case LL_FLASH_SECTOR_36:
case LL_FLASH_SECTOR_37:
case LL_FLASH_SECTOR_38:
case LL_FLASH_SECTOR_39:
{
LL_FLASH_BYPASS();
CLEAR_BIT(FLASH->SLOCK0, LL_REG_BIT_9);
break;
}
case LL_FLASH_SECTOR_40:
case LL_FLASH_SECTOR_41:
case LL_FLASH_SECTOR_42:
case LL_FLASH_SECTOR_43:
{
LL_FLASH_BYPASS();
CLEAR_BIT(FLASH->SLOCK0, LL_REG_BIT_10);
break;
}
case LL_FLASH_SECTOR_44:
case LL_FLASH_SECTOR_45:
case LL_FLASH_SECTOR_46:
case LL_FLASH_SECTOR_47:
{
LL_FLASH_BYPASS();
CLEAR_BIT(FLASH->SLOCK0, LL_REG_BIT_11);
break;
}
case LL_FLASH_SECTOR_48:
case LL_FLASH_SECTOR_49:
case LL_FLASH_SECTOR_50:
case LL_FLASH_SECTOR_51:
{
LL_FLASH_BYPASS();
CLEAR_BIT(FLASH->SLOCK0, LL_REG_BIT_12);
break;
}
case LL_FLASH_SECTOR_52:
case LL_FLASH_SECTOR_53:
case LL_FLASH_SECTOR_54:
case LL_FLASH_SECTOR_55:
{
LL_FLASH_BYPASS();
CLEAR_BIT(FLASH->SLOCK0, LL_REG_BIT_13);
break;
}
case LL_FLASH_SECTOR_56:
case LL_FLASH_SECTOR_57:
case LL_FLASH_SECTOR_58:
case LL_FLASH_SECTOR_59:
{
LL_FLASH_BYPASS();
CLEAR_BIT(FLASH->SLOCK0, LL_REG_BIT_14);
break;
}
case LL_FLASH_SECTOR_60:
case LL_FLASH_SECTOR_61:
case LL_FLASH_SECTOR_62:
case LL_FLASH_SECTOR_63:
{
LL_FLASH_BYPASS();
CLEAR_BIT(FLASH->SLOCK0, LL_REG_BIT_15);
break;
}
case LL_FLASH_SECTOR_64:
case LL_FLASH_SECTOR_65:
case LL_FLASH_SECTOR_66:
case LL_FLASH_SECTOR_67:
{
LL_FLASH_BYPASS();
CLEAR_BIT(FLASH->SLOCK0, LL_REG_BIT_16);
break;
}
case LL_FLASH_SECTOR_68:
case LL_FLASH_SECTOR_69:
case LL_FLASH_SECTOR_70:
case LL_FLASH_SECTOR_71:
{
LL_FLASH_BYPASS();
CLEAR_BIT(FLASH->SLOCK0, LL_REG_BIT_17);
break;
}
case LL_FLASH_SECTOR_72:
case LL_FLASH_SECTOR_73:
case LL_FLASH_SECTOR_74:
case LL_FLASH_SECTOR_75:
{
LL_FLASH_BYPASS();
CLEAR_BIT(FLASH->SLOCK0, LL_REG_BIT_18);
break;
}
case LL_FLASH_SECTOR_76:
case LL_FLASH_SECTOR_77:
case LL_FLASH_SECTOR_78:
case LL_FLASH_SECTOR_79:
{
LL_FLASH_BYPASS();
CLEAR_BIT(FLASH->SLOCK0, LL_REG_BIT_19);
break;
}
case LL_FLASH_SECTOR_80:
case LL_FLASH_SECTOR_81:
case LL_FLASH_SECTOR_82:
case LL_FLASH_SECTOR_83:
{
LL_FLASH_BYPASS();
CLEAR_BIT(FLASH->SLOCK0, LL_REG_BIT_20);
break;
}
case LL_FLASH_SECTOR_84:
case LL_FLASH_SECTOR_85:
case LL_FLASH_SECTOR_86:
case LL_FLASH_SECTOR_87:
{
LL_FLASH_BYPASS();
CLEAR_BIT(FLASH->SLOCK0, LL_REG_BIT_21);
break;
}
case LL_FLASH_SECTOR_88:
case LL_FLASH_SECTOR_89:
case LL_FLASH_SECTOR_90:
case LL_FLASH_SECTOR_91:
{
LL_FLASH_BYPASS();
CLEAR_BIT(FLASH->SLOCK0, LL_REG_BIT_22);
break;
}
case LL_FLASH_SECTOR_92:
case LL_FLASH_SECTOR_93:
case LL_FLASH_SECTOR_94:
case LL_FLASH_SECTOR_95:
{
LL_FLASH_BYPASS();
CLEAR_BIT(FLASH->SLOCK0, LL_REG_BIT_23);
break;
}
case LL_FLASH_SECTOR_96:
case LL_FLASH_SECTOR_97:
case LL_FLASH_SECTOR_98:
case LL_FLASH_SECTOR_99:
{
LL_FLASH_BYPASS();
CLEAR_BIT(FLASH->SLOCK0, LL_REG_BIT_24);
break;
}
case LL_FLASH_SECTOR_100:
case LL_FLASH_SECTOR_101:
case LL_FLASH_SECTOR_102:
case LL_FLASH_SECTOR_103:
{
LL_FLASH_BYPASS();
CLEAR_BIT(FLASH->SLOCK0, LL_REG_BIT_25);
break;
}
case LL_FLASH_SECTOR_104:
case LL_FLASH_SECTOR_105:
case LL_FLASH_SECTOR_106:
case LL_FLASH_SECTOR_107:
{
LL_FLASH_BYPASS();
CLEAR_BIT(FLASH->SLOCK0, LL_REG_BIT_26);
break;
}
case LL_FLASH_SECTOR_108:
case LL_FLASH_SECTOR_109:
case LL_FLASH_SECTOR_110:
case LL_FLASH_SECTOR_111:
{
LL_FLASH_BYPASS();
CLEAR_BIT(FLASH->SLOCK0, LL_REG_BIT_27);
break;
}
case LL_FLASH_SECTOR_112:
case LL_FLASH_SECTOR_113:
case LL_FLASH_SECTOR_114:
case LL_FLASH_SECTOR_115:
{
LL_FLASH_BYPASS();
CLEAR_BIT(FLASH->SLOCK0, LL_REG_BIT_28);
break;
}
case LL_FLASH_SECTOR_116:
case LL_FLASH_SECTOR_117:
case LL_FLASH_SECTOR_118:
case LL_FLASH_SECTOR_119:
{
LL_FLASH_BYPASS();
CLEAR_BIT(FLASH->SLOCK0, LL_REG_BIT_29);
break;
}
case LL_FLASH_SECTOR_120:
case LL_FLASH_SECTOR_121:
case LL_FLASH_SECTOR_122:
case LL_FLASH_SECTOR_123:
{
LL_FLASH_BYPASS();
CLEAR_BIT(FLASH->SLOCK0, LL_REG_BIT_30);
break;
}
case LL_FLASH_SECTOR_124:
case LL_FLASH_SECTOR_125:
case LL_FLASH_SECTOR_126:
case LL_FLASH_SECTOR_127:
{
LL_FLASH_BYPASS();
CLEAR_BIT(FLASH->SLOCK0, LL_REG_BIT_31);
break;
}
case LL_FLASH_SECTOR_128:
case LL_FLASH_SECTOR_129:
case LL_FLASH_SECTOR_130:
case LL_FLASH_SECTOR_131:
{
if (flash_size > 0x10000UL)
{
LL_FLASH_BYPASS();
CLEAR_BIT(FLASH->SLOCK1, LL_REG_BIT_0);
}
break;
}
case LL_FLASH_SECTOR_132:
case LL_FLASH_SECTOR_133:
case LL_FLASH_SECTOR_134:
case LL_FLASH_SECTOR_135:
{
if (flash_size > 0x10000UL)
{
LL_FLASH_BYPASS();
CLEAR_BIT(FLASH->SLOCK1, LL_REG_BIT_1);
}
break;
}
case LL_FLASH_SECTOR_136:
case LL_FLASH_SECTOR_137:
case LL_FLASH_SECTOR_138:
case LL_FLASH_SECTOR_139:
{
if (flash_size > 0x10000UL)
{
LL_FLASH_BYPASS();
CLEAR_BIT(FLASH->SLOCK1, LL_REG_BIT_2);
}
break;
}
case LL_FLASH_SECTOR_140:
case LL_FLASH_SECTOR_141:
case LL_FLASH_SECTOR_142:
case LL_FLASH_SECTOR_143:
{
if (flash_size > 0x10000UL)
{
LL_FLASH_BYPASS();
CLEAR_BIT(FLASH->SLOCK1, LL_REG_BIT_3);
}
break;
}
case LL_FLASH_SECTOR_144:
case LL_FLASH_SECTOR_145:
case LL_FLASH_SECTOR_146:
case LL_FLASH_SECTOR_147:
{
if (flash_size > 0x10000UL)
{
LL_FLASH_BYPASS();
CLEAR_BIT(FLASH->SLOCK1, LL_REG_BIT_4);
}
break;
}
case LL_FLASH_SECTOR_148:
case LL_FLASH_SECTOR_149:
case LL_FLASH_SECTOR_150:
case LL_FLASH_SECTOR_151:
{
if (flash_size > 0x10000UL)
{
LL_FLASH_BYPASS();
CLEAR_BIT(FLASH->SLOCK1, LL_REG_BIT_5);
}
break;
}
case LL_FLASH_SECTOR_152:
case LL_FLASH_SECTOR_153:
case LL_FLASH_SECTOR_154:
case LL_FLASH_SECTOR_155:
{
if (flash_size > 0x10000UL)
{
LL_FLASH_BYPASS();
CLEAR_BIT(FLASH->SLOCK1, LL_REG_BIT_6);
}
break;
}
case LL_FLASH_SECTOR_156:
case LL_FLASH_SECTOR_157:
case LL_FLASH_SECTOR_158:
case LL_FLASH_SECTOR_159:
{
if (flash_size > 0x10000UL)
{
LL_FLASH_BYPASS();
CLEAR_BIT(FLASH->SLOCK1, LL_REG_BIT_7);
}
break;
}
case LL_FLASH_SECTOR_160:
case LL_FLASH_SECTOR_161:
case LL_FLASH_SECTOR_162:
case LL_FLASH_SECTOR_163:
{
if (flash_size > 0x10000UL)
{
LL_FLASH_BYPASS();
CLEAR_BIT(FLASH->SLOCK1, LL_REG_BIT_8);
}
break;
}
case LL_FLASH_SECTOR_164:
case LL_FLASH_SECTOR_165:
case LL_FLASH_SECTOR_166:
case LL_FLASH_SECTOR_167:
{
if (flash_size > 0x10000UL)
{
LL_FLASH_BYPASS();
CLEAR_BIT(FLASH->SLOCK1, LL_REG_BIT_9);
}
break;
}
case LL_FLASH_SECTOR_168:
case LL_FLASH_SECTOR_169:
case LL_FLASH_SECTOR_170:
case LL_FLASH_SECTOR_171:
{
if (flash_size > 0x10000UL)
{
LL_FLASH_BYPASS();
CLEAR_BIT(FLASH->SLOCK1, LL_REG_BIT_10);
}
break;
}
case LL_FLASH_SECTOR_172:
case LL_FLASH_SECTOR_173:
case LL_FLASH_SECTOR_174:
case LL_FLASH_SECTOR_175:
{
if (flash_size > 0x10000UL)
{
LL_FLASH_BYPASS();
CLEAR_BIT(FLASH->SLOCK1, LL_REG_BIT_11);
}
break;
}
case LL_FLASH_SECTOR_176:
case LL_FLASH_SECTOR_177:
case LL_FLASH_SECTOR_178:
case LL_FLASH_SECTOR_179:
{
if (flash_size > 0x10000UL)
{
LL_FLASH_BYPASS();
CLEAR_BIT(FLASH->SLOCK1, LL_REG_BIT_12);
}
break;
}
case LL_FLASH_SECTOR_180:
case LL_FLASH_SECTOR_181:
case LL_FLASH_SECTOR_182:
case LL_FLASH_SECTOR_183:
{
if (flash_size > 0x10000UL)
{
LL_FLASH_BYPASS();
CLEAR_BIT(FLASH->SLOCK1, LL_REG_BIT_13);
}
break;
}
case LL_FLASH_SECTOR_184:
case LL_FLASH_SECTOR_185:
case LL_FLASH_SECTOR_186:
case LL_FLASH_SECTOR_187:
{
if (flash_size > 0x10000UL)
{
LL_FLASH_BYPASS();
CLEAR_BIT(FLASH->SLOCK1, LL_REG_BIT_14);
}
break;
}
case LL_FLASH_SECTOR_188:
case LL_FLASH_SECTOR_189:
case LL_FLASH_SECTOR_190:
case LL_FLASH_SECTOR_191:
{
if (flash_size > 0x10000UL)
{
LL_FLASH_BYPASS();
CLEAR_BIT(FLASH->SLOCK1, LL_REG_BIT_15);
}
break;
}
case LL_FLASH_SECTOR_192:
case LL_FLASH_SECTOR_193:
case LL_FLASH_SECTOR_194:
case LL_FLASH_SECTOR_195:
{
if (flash_size > 0x10000UL)
{
LL_FLASH_BYPASS();
CLEAR_BIT(FLASH->SLOCK1, LL_REG_BIT_16);
}
break;
}
case LL_FLASH_SECTOR_196:
case LL_FLASH_SECTOR_197:
case LL_FLASH_SECTOR_198:
case LL_FLASH_SECTOR_199:
{
if (flash_size > 0x10000UL)
{
LL_FLASH_BYPASS();
CLEAR_BIT(FLASH->SLOCK1, LL_REG_BIT_17);
}
break;
}
case LL_FLASH_SECTOR_200:
case LL_FLASH_SECTOR_201:
case LL_FLASH_SECTOR_202:
case LL_FLASH_SECTOR_203:
{
if (flash_size > 0x10000UL)
{
LL_FLASH_BYPASS();
CLEAR_BIT(FLASH->SLOCK1, LL_REG_BIT_18);
}
break;
}
case LL_FLASH_SECTOR_204:
case LL_FLASH_SECTOR_205:
case LL_FLASH_SECTOR_206:
case LL_FLASH_SECTOR_207:
{
if (flash_size > 0x10000UL)
{
LL_FLASH_BYPASS();
CLEAR_BIT(FLASH->SLOCK1, LL_REG_BIT_19);
}
break;
}
case LL_FLASH_SECTOR_208:
case LL_FLASH_SECTOR_209:
case LL_FLASH_SECTOR_210:
case LL_FLASH_SECTOR_211:
{
if (flash_size > 0x10000UL)
{
LL_FLASH_BYPASS();
CLEAR_BIT(FLASH->SLOCK1, LL_REG_BIT_20);
}
break;
}
case LL_FLASH_SECTOR_212:
case LL_FLASH_SECTOR_213:
case LL_FLASH_SECTOR_214:
case LL_FLASH_SECTOR_215:
{
if (flash_size > 0x10000UL)
{
LL_FLASH_BYPASS();
CLEAR_BIT(FLASH->SLOCK1, LL_REG_BIT_21);
}
break;
}
case LL_FLASH_SECTOR_216:
case LL_FLASH_SECTOR_217:
case LL_FLASH_SECTOR_218:
case LL_FLASH_SECTOR_219:
{
if (flash_size > 0x10000UL)
{
LL_FLASH_BYPASS();
CLEAR_BIT(FLASH->SLOCK1, LL_REG_BIT_22);
}
break;
}
case LL_FLASH_SECTOR_220:
case LL_FLASH_SECTOR_221:
case LL_FLASH_SECTOR_222:
case LL_FLASH_SECTOR_223:
{
if (flash_size > 0x10000UL)
{
LL_FLASH_BYPASS();
CLEAR_BIT(FLASH->SLOCK1, LL_REG_BIT_23);
}
break;
}
case LL_FLASH_SECTOR_224:
case LL_FLASH_SECTOR_225:
case LL_FLASH_SECTOR_226:
case LL_FLASH_SECTOR_227:
{
if (flash_size > 0x10000UL)
{
LL_FLASH_BYPASS();
CLEAR_BIT(FLASH->SLOCK1, LL_REG_BIT_24);
}
break;
}
case LL_FLASH_SECTOR_228:
case LL_FLASH_SECTOR_229:
case LL_FLASH_SECTOR_230:
case LL_FLASH_SECTOR_231:
{
if (flash_size > 0x10000UL)
{
LL_FLASH_BYPASS();
CLEAR_BIT(FLASH->SLOCK1, LL_REG_BIT_25);
}
break;
}
case LL_FLASH_SECTOR_232:
case LL_FLASH_SECTOR_233:
case LL_FLASH_SECTOR_234:
case LL_FLASH_SECTOR_235:
{
if (flash_size > 0x10000UL)
{
LL_FLASH_BYPASS();
CLEAR_BIT(FLASH->SLOCK1, LL_REG_BIT_26);
}
break;
}
case LL_FLASH_SECTOR_236:
case LL_FLASH_SECTOR_237:
case LL_FLASH_SECTOR_238:
case LL_FLASH_SECTOR_239:
{
if (flash_size > 0x10000UL)
{
LL_FLASH_BYPASS();
CLEAR_BIT(FLASH->SLOCK1, LL_REG_BIT_27);
}
break;
}
case LL_FLASH_SECTOR_240:
case LL_FLASH_SECTOR_241:
case LL_FLASH_SECTOR_242:
case LL_FLASH_SECTOR_243:
{
if (flash_size > 0x10000UL)
{
LL_FLASH_BYPASS();
CLEAR_BIT(FLASH->SLOCK1, LL_REG_BIT_28);
}
break;
}
case LL_FLASH_SECTOR_244:
case LL_FLASH_SECTOR_245:
case LL_FLASH_SECTOR_246:
case LL_FLASH_SECTOR_247:
{
if (flash_size > 0x10000UL)
{
LL_FLASH_BYPASS();
CLEAR_BIT(FLASH->SLOCK1, LL_REG_BIT_29);
}
break;
}
case LL_FLASH_SECTOR_248:
case LL_FLASH_SECTOR_249:
case LL_FLASH_SECTOR_250:
case LL_FLASH_SECTOR_251:
{
if (flash_size > 0x10000UL)
{
LL_FLASH_BYPASS();
CLEAR_BIT(FLASH->SLOCK1, LL_REG_BIT_30);
}
break;
}
case LL_FLASH_SECTOR_252:
case LL_FLASH_SECTOR_253:
case LL_FLASH_SECTOR_254:
case LL_FLASH_SECTOR_255:
{
if (flash_size > 0x10000UL)
{
LL_FLASH_BYPASS();
CLEAR_BIT(FLASH->SLOCK1, LL_REG_BIT_31);
}
break;
}
case LL_FLASH_SECTOR_256:
case LL_FLASH_SECTOR_257:
case LL_FLASH_SECTOR_258:
case LL_FLASH_SECTOR_259:
{
if (flash_size > 0x20000UL)
{
LL_FLASH_BYPASS();
CLEAR_BIT(FLASH->SLOCK2, LL_REG_BIT_0);
}
break;
}
case LL_FLASH_SECTOR_260:
case LL_FLASH_SECTOR_261:
case LL_FLASH_SECTOR_262:
case LL_FLASH_SECTOR_263:
{
if (flash_size > 0x20000UL)
{
LL_FLASH_BYPASS();
CLEAR_BIT(FLASH->SLOCK2, LL_REG_BIT_1);
}
break;
}
case LL_FLASH_SECTOR_264:
case LL_FLASH_SECTOR_265:
case LL_FLASH_SECTOR_266:
case LL_FLASH_SECTOR_267:
{
if (flash_size > 0x20000UL)
{
LL_FLASH_BYPASS();
CLEAR_BIT(FLASH->SLOCK2, LL_REG_BIT_2);
}
break;
}
case LL_FLASH_SECTOR_268:
case LL_FLASH_SECTOR_269:
case LL_FLASH_SECTOR_270:
case LL_FLASH_SECTOR_271:
{
if (flash_size > 0x20000UL)
{
LL_FLASH_BYPASS();
CLEAR_BIT(FLASH->SLOCK2, LL_REG_BIT_3);
}
break;
}
case LL_FLASH_SECTOR_272:
case LL_FLASH_SECTOR_273:
case LL_FLASH_SECTOR_274:
case LL_FLASH_SECTOR_275:
{
if (flash_size > 0x20000UL)
{
LL_FLASH_BYPASS();
CLEAR_BIT(FLASH->SLOCK2, LL_REG_BIT_4);
}
break;
}
case LL_FLASH_SECTOR_276:
case LL_FLASH_SECTOR_277:
case LL_FLASH_SECTOR_278:
case LL_FLASH_SECTOR_279:
{
if (flash_size > 0x20000UL)
{
LL_FLASH_BYPASS();
CLEAR_BIT(FLASH->SLOCK2, LL_REG_BIT_5);
}
break;
}
case LL_FLASH_SECTOR_280:
case LL_FLASH_SECTOR_281:
case LL_FLASH_SECTOR_282:
case LL_FLASH_SECTOR_283:
{
if (flash_size > 0x20000UL)
{
LL_FLASH_BYPASS();
CLEAR_BIT(FLASH->SLOCK2, LL_REG_BIT_6);
}
break;
}
case LL_FLASH_SECTOR_284:
case LL_FLASH_SECTOR_285:
case LL_FLASH_SECTOR_286:
case LL_FLASH_SECTOR_287:
{
if (flash_size > 0x20000UL)
{
LL_FLASH_BYPASS();
CLEAR_BIT(FLASH->SLOCK2, LL_REG_BIT_7);
}
break;
}
case LL_FLASH_SECTOR_288:
case LL_FLASH_SECTOR_289:
case LL_FLASH_SECTOR_290:
case LL_FLASH_SECTOR_291:
{
if (flash_size > 0x20000UL)
{
LL_FLASH_BYPASS();
CLEAR_BIT(FLASH->SLOCK2, LL_REG_BIT_8);
}
break;
}
case LL_FLASH_SECTOR_292:
case LL_FLASH_SECTOR_293:
case LL_FLASH_SECTOR_294:
case LL_FLASH_SECTOR_295:
{
if (flash_size > 0x20000UL)
{
LL_FLASH_BYPASS();
CLEAR_BIT(FLASH->SLOCK2, LL_REG_BIT_9);
}
break;
}
case LL_FLASH_SECTOR_296:
case LL_FLASH_SECTOR_297:
case LL_FLASH_SECTOR_298:
case LL_FLASH_SECTOR_299:
{
if (flash_size > 0x20000UL)
{
LL_FLASH_BYPASS();
CLEAR_BIT(FLASH->SLOCK2, LL_REG_BIT_10);
}
break;
}
case LL_FLASH_SECTOR_300:
case LL_FLASH_SECTOR_301:
case LL_FLASH_SECTOR_302:
case LL_FLASH_SECTOR_303:
{
if (flash_size > 0x20000UL)
{
LL_FLASH_BYPASS();
CLEAR_BIT(FLASH->SLOCK2, LL_REG_BIT_11);
}
break;
}
case LL_FLASH_SECTOR_304:
case LL_FLASH_SECTOR_305:
case LL_FLASH_SECTOR_306:
case LL_FLASH_SECTOR_307:
{
if (flash_size > 0x20000UL)
{
LL_FLASH_BYPASS();
CLEAR_BIT(FLASH->SLOCK2, LL_REG_BIT_12);
}
break;
}
case LL_FLASH_SECTOR_308:
case LL_FLASH_SECTOR_309:
case LL_FLASH_SECTOR_310:
case LL_FLASH_SECTOR_311:
{
if (flash_size > 0x20000UL)
{
LL_FLASH_BYPASS();
CLEAR_BIT(FLASH->SLOCK2, LL_REG_BIT_13);
}
break;
}
case LL_FLASH_SECTOR_312:
case LL_FLASH_SECTOR_313:
case LL_FLASH_SECTOR_314:
case LL_FLASH_SECTOR_315:
{
if (flash_size > 0x20000UL)
{
LL_FLASH_BYPASS();
CLEAR_BIT(FLASH->SLOCK2, LL_REG_BIT_14);
}
break;
}
case LL_FLASH_SECTOR_316:
case LL_FLASH_SECTOR_317:
case LL_FLASH_SECTOR_318:
case LL_FLASH_SECTOR_319:
{
if (flash_size > 0x20000UL)
{
LL_FLASH_BYPASS();
CLEAR_BIT(FLASH->SLOCK2, LL_REG_BIT_15);
}
break;
}
case LL_FLASH_SECTOR_320:
case LL_FLASH_SECTOR_321:
case LL_FLASH_SECTOR_322:
case LL_FLASH_SECTOR_323:
{
if (flash_size > 0x20000UL)
{
LL_FLASH_BYPASS();
CLEAR_BIT(FLASH->SLOCK2, LL_REG_BIT_16);
}
break;
}
case LL_FLASH_SECTOR_324:
case LL_FLASH_SECTOR_325:
case LL_FLASH_SECTOR_326:
case LL_FLASH_SECTOR_327:
{
if (flash_size > 0x20000UL)
{
LL_FLASH_BYPASS();
CLEAR_BIT(FLASH->SLOCK2, LL_REG_BIT_17);
}
break;
}
case LL_FLASH_SECTOR_328:
case LL_FLASH_SECTOR_329:
case LL_FLASH_SECTOR_330:
case LL_FLASH_SECTOR_331:
{
if (flash_size > 0x20000UL)
{
LL_FLASH_BYPASS();
CLEAR_BIT(FLASH->SLOCK2, LL_REG_BIT_18);
}
break;
}
case LL_FLASH_SECTOR_332:
case LL_FLASH_SECTOR_333:
case LL_FLASH_SECTOR_334:
case LL_FLASH_SECTOR_335:
{
if (flash_size > 0x20000UL)
{
LL_FLASH_BYPASS();
CLEAR_BIT(FLASH->SLOCK2, LL_REG_BIT_19);
}
break;
}
case LL_FLASH_SECTOR_336:
case LL_FLASH_SECTOR_337:
case LL_FLASH_SECTOR_338:
case LL_FLASH_SECTOR_339:
{
if (flash_size > 0x20000UL)
{
LL_FLASH_BYPASS();
CLEAR_BIT(FLASH->SLOCK2, LL_REG_BIT_20);
}
break;
}
case LL_FLASH_SECTOR_340:
case LL_FLASH_SECTOR_341:
case LL_FLASH_SECTOR_342:
case LL_FLASH_SECTOR_343:
{
if (flash_size > 0x20000UL)
{
LL_FLASH_BYPASS();
CLEAR_BIT(FLASH->SLOCK2, LL_REG_BIT_21);
}
break;
}
case LL_FLASH_SECTOR_344:
case LL_FLASH_SECTOR_345:
case LL_FLASH_SECTOR_346:
case LL_FLASH_SECTOR_347:
{
if (flash_size > 0x20000UL)
{
LL_FLASH_BYPASS();
CLEAR_BIT(FLASH->SLOCK2, LL_REG_BIT_22);
}
break;
}
case LL_FLASH_SECTOR_348:
case LL_FLASH_SECTOR_349:
case LL_FLASH_SECTOR_350:
case LL_FLASH_SECTOR_351:
{
if (flash_size > 0x20000UL)
{
LL_FLASH_BYPASS();
CLEAR_BIT(FLASH->SLOCK2, LL_REG_BIT_23);
}
break;
}
case LL_FLASH_SECTOR_352:
case LL_FLASH_SECTOR_353:
case LL_FLASH_SECTOR_354:
case LL_FLASH_SECTOR_355:
{
if (flash_size > 0x20000UL)
{
LL_FLASH_BYPASS();
CLEAR_BIT(FLASH->SLOCK2, LL_REG_BIT_24);
}
break;
}
case LL_FLASH_SECTOR_356:
case LL_FLASH_SECTOR_357:
case LL_FLASH_SECTOR_358:
case LL_FLASH_SECTOR_359:
{
if (flash_size > 0x20000UL)
{
LL_FLASH_BYPASS();
CLEAR_BIT(FLASH->SLOCK2, LL_REG_BIT_25);
}
break;
}
case LL_FLASH_SECTOR_360:
case LL_FLASH_SECTOR_361:
case LL_FLASH_SECTOR_362:
case LL_FLASH_SECTOR_363:
{
if (flash_size > 0x20000UL)
{
LL_FLASH_BYPASS();
CLEAR_BIT(FLASH->SLOCK2, LL_REG_BIT_26);
}
break;
}
case LL_FLASH_SECTOR_364:
case LL_FLASH_SECTOR_365:
case LL_FLASH_SECTOR_366:
case LL_FLASH_SECTOR_367:
{
if (flash_size > 0x20000UL)
{
LL_FLASH_BYPASS();
CLEAR_BIT(FLASH->SLOCK2, LL_REG_BIT_27);
}
break;
}
case LL_FLASH_SECTOR_368:
case LL_FLASH_SECTOR_369:
case LL_FLASH_SECTOR_370:
case LL_FLASH_SECTOR_371:
{
if (flash_size > 0x20000UL)
{
LL_FLASH_BYPASS();
CLEAR_BIT(FLASH->SLOCK2, LL_REG_BIT_28);
}
break;
}
case LL_FLASH_SECTOR_372:
case LL_FLASH_SECTOR_373:
case LL_FLASH_SECTOR_374:
case LL_FLASH_SECTOR_375:
{
if (flash_size > 0x20000UL)
{
LL_FLASH_BYPASS();
CLEAR_BIT(FLASH->SLOCK2, LL_REG_BIT_29);
}
break;
}
case LL_FLASH_SECTOR_376:
case LL_FLASH_SECTOR_377:
case LL_FLASH_SECTOR_378:
case LL_FLASH_SECTOR_379:
{
if (flash_size > 0x20000UL)
{
LL_FLASH_BYPASS();
CLEAR_BIT(FLASH->SLOCK2, LL_REG_BIT_30);
}
break;
}
case LL_FLASH_SECTOR_380:
case LL_FLASH_SECTOR_381:
case LL_FLASH_SECTOR_382:
case LL_FLASH_SECTOR_383:
{
if (flash_size > 0x20000UL)
{
LL_FLASH_BYPASS();
CLEAR_BIT(FLASH->SLOCK2, LL_REG_BIT_31);
}
break;
}
case LL_FLASH_SECTOR_384:
case LL_FLASH_SECTOR_385:
case LL_FLASH_SECTOR_386:
case LL_FLASH_SECTOR_387:
{
if (flash_size > 0x30000UL)
{
LL_FLASH_BYPASS();
CLEAR_BIT(FLASH->SLOCK3, LL_REG_BIT_0);
}
break;
}
case LL_FLASH_SECTOR_388:
case LL_FLASH_SECTOR_389:
case LL_FLASH_SECTOR_390:
case LL_FLASH_SECTOR_391:
{
if (flash_size > 0x30000UL)
{
LL_FLASH_BYPASS();
CLEAR_BIT(FLASH->SLOCK3, LL_REG_BIT_1);
}
break;
}
case LL_FLASH_SECTOR_392:
case LL_FLASH_SECTOR_393:
case LL_FLASH_SECTOR_394:
case LL_FLASH_SECTOR_395:
{
if (flash_size > 0x30000UL)
{
LL_FLASH_BYPASS();
CLEAR_BIT(FLASH->SLOCK3, LL_REG_BIT_2);
}
break;
}
case LL_FLASH_SECTOR_396:
case LL_FLASH_SECTOR_397:
case LL_FLASH_SECTOR_398:
case LL_FLASH_SECTOR_399:
{
if (flash_size > 0x30000UL)
{
LL_FLASH_BYPASS();
CLEAR_BIT(FLASH->SLOCK3, LL_REG_BIT_3);
}
break;
}
case LL_FLASH_SECTOR_400:
case LL_FLASH_SECTOR_401:
case LL_FLASH_SECTOR_402:
case LL_FLASH_SECTOR_403:
{
if (flash_size > 0x30000UL)
{
LL_FLASH_BYPASS();
CLEAR_BIT(FLASH->SLOCK3, LL_REG_BIT_4);
}
break;
}
case LL_FLASH_SECTOR_404:
case LL_FLASH_SECTOR_405:
case LL_FLASH_SECTOR_406:
case LL_FLASH_SECTOR_407:
{
if (flash_size > 0x30000UL)
{
LL_FLASH_BYPASS();
CLEAR_BIT(FLASH->SLOCK3, LL_REG_BIT_5);
}
break;
}
case LL_FLASH_SECTOR_408:
case LL_FLASH_SECTOR_409:
case LL_FLASH_SECTOR_410:
case LL_FLASH_SECTOR_411:
{
if (flash_size > 0x30000UL)
{
LL_FLASH_BYPASS();
CLEAR_BIT(FLASH->SLOCK3, LL_REG_BIT_6);
}
break;
}
case LL_FLASH_SECTOR_412:
case LL_FLASH_SECTOR_413:
case LL_FLASH_SECTOR_414:
case LL_FLASH_SECTOR_415:
{
if (flash_size > 0x30000UL)
{
LL_FLASH_BYPASS();
CLEAR_BIT(FLASH->SLOCK3, LL_REG_BIT_7);
}
break;
}
case LL_FLASH_SECTOR_416:
case LL_FLASH_SECTOR_417:
case LL_FLASH_SECTOR_418:
case LL_FLASH_SECTOR_419:
{
if (flash_size > 0x30000UL)
{
LL_FLASH_BYPASS();
CLEAR_BIT(FLASH->SLOCK3, LL_REG_BIT_8);
}
break;
}
case LL_FLASH_SECTOR_420:
case LL_FLASH_SECTOR_421:
case LL_FLASH_SECTOR_422:
case LL_FLASH_SECTOR_423:
{
if (flash_size > 0x30000UL)
{
LL_FLASH_BYPASS();
CLEAR_BIT(FLASH->SLOCK3, LL_REG_BIT_9);
}
break;
}
case LL_FLASH_SECTOR_424:
case LL_FLASH_SECTOR_425:
case LL_FLASH_SECTOR_426:
case LL_FLASH_SECTOR_427:
{
if (flash_size > 0x30000UL)
{
LL_FLASH_BYPASS();
CLEAR_BIT(FLASH->SLOCK3, LL_REG_BIT_10);
}
break;
}
case LL_FLASH_SECTOR_428:
case LL_FLASH_SECTOR_429:
case LL_FLASH_SECTOR_430:
case LL_FLASH_SECTOR_431:
{
if (flash_size > 0x30000UL)
{
LL_FLASH_BYPASS();
CLEAR_BIT(FLASH->SLOCK3, LL_REG_BIT_11);
}
break;
}
case LL_FLASH_SECTOR_432:
case LL_FLASH_SECTOR_433:
case LL_FLASH_SECTOR_434:
case LL_FLASH_SECTOR_435:
{
if (flash_size > 0x30000UL)
{
LL_FLASH_BYPASS();
CLEAR_BIT(FLASH->SLOCK3, LL_REG_BIT_12);
}
break;
}
case LL_FLASH_SECTOR_436:
case LL_FLASH_SECTOR_437:
case LL_FLASH_SECTOR_438:
case LL_FLASH_SECTOR_439:
{
if (flash_size > 0x30000UL)
{
LL_FLASH_BYPASS();
CLEAR_BIT(FLASH->SLOCK3, LL_REG_BIT_13);
}
break;
}
case LL_FLASH_SECTOR_440:
case LL_FLASH_SECTOR_441:
case LL_FLASH_SECTOR_442:
case LL_FLASH_SECTOR_443:
{
if (flash_size > 0x30000UL)
{
LL_FLASH_BYPASS();
CLEAR_BIT(FLASH->SLOCK3, LL_REG_BIT_14);
}
break;
}
case LL_FLASH_SECTOR_444:
case LL_FLASH_SECTOR_445:
case LL_FLASH_SECTOR_446:
case LL_FLASH_SECTOR_447:
{
if (flash_size > 0x30000UL)
{
LL_FLASH_BYPASS();
CLEAR_BIT(FLASH->SLOCK3, LL_REG_BIT_15);
}
break;
}
case LL_FLASH_SECTOR_448:
case LL_FLASH_SECTOR_449:
case LL_FLASH_SECTOR_450:
case LL_FLASH_SECTOR_451:
{
if (flash_size > 0x30000UL)
{
LL_FLASH_BYPASS();
CLEAR_BIT(FLASH->SLOCK3, LL_REG_BIT_16);
}
break;
}
case LL_FLASH_SECTOR_452:
case LL_FLASH_SECTOR_453:
case LL_FLASH_SECTOR_454:
case LL_FLASH_SECTOR_455:
{
if (flash_size > 0x30000UL)
{
LL_FLASH_BYPASS();
CLEAR_BIT(FLASH->SLOCK3, LL_REG_BIT_17);
}
break;
}
case LL_FLASH_SECTOR_456:
case LL_FLASH_SECTOR_457:
case LL_FLASH_SECTOR_458:
case LL_FLASH_SECTOR_459:
{
if (flash_size > 0x30000UL)
{
LL_FLASH_BYPASS();
CLEAR_BIT(FLASH->SLOCK3, LL_REG_BIT_18);
}
break;
}
case LL_FLASH_SECTOR_460:
case LL_FLASH_SECTOR_461:
case LL_FLASH_SECTOR_462:
case LL_FLASH_SECTOR_463:
{
if (flash_size > 0x30000UL)
{
LL_FLASH_BYPASS();
CLEAR_BIT(FLASH->SLOCK3, LL_REG_BIT_19);
}
break;
}
case LL_FLASH_SECTOR_464:
case LL_FLASH_SECTOR_465:
case LL_FLASH_SECTOR_466:
case LL_FLASH_SECTOR_467:
{
if (flash_size > 0x30000UL)
{
LL_FLASH_BYPASS();
CLEAR_BIT(FLASH->SLOCK3, LL_REG_BIT_20);
}
break;
}
case LL_FLASH_SECTOR_468:
case LL_FLASH_SECTOR_469:
case LL_FLASH_SECTOR_470:
case LL_FLASH_SECTOR_471:
{
if (flash_size > 0x30000UL)
{
LL_FLASH_BYPASS();
CLEAR_BIT(FLASH->SLOCK3, LL_REG_BIT_21);
}
break;
}
case LL_FLASH_SECTOR_472:
case LL_FLASH_SECTOR_473:
case LL_FLASH_SECTOR_474:
case LL_FLASH_SECTOR_475:
{
if (flash_size > 0x30000UL)
{
LL_FLASH_BYPASS();
CLEAR_BIT(FLASH->SLOCK3, LL_REG_BIT_22);
}
break;
}
case LL_FLASH_SECTOR_476:
case LL_FLASH_SECTOR_477:
case LL_FLASH_SECTOR_478:
case LL_FLASH_SECTOR_479:
{
if (flash_size > 0x30000UL)
{
LL_FLASH_BYPASS();
CLEAR_BIT(FLASH->SLOCK3, LL_REG_BIT_23);
}
break;
}
case LL_FLASH_SECTOR_480:
case LL_FLASH_SECTOR_481:
case LL_FLASH_SECTOR_482:
case LL_FLASH_SECTOR_483:
{
if (flash_size > 0x30000UL)
{
LL_FLASH_BYPASS();
CLEAR_BIT(FLASH->SLOCK3, LL_REG_BIT_24);
}
break;
}
case LL_FLASH_SECTOR_484:
case LL_FLASH_SECTOR_485:
case LL_FLASH_SECTOR_486:
case LL_FLASH_SECTOR_487:
{
if (flash_size > 0x30000UL)
{
LL_FLASH_BYPASS();
CLEAR_BIT(FLASH->SLOCK3, LL_REG_BIT_25);
}
break;
}
case LL_FLASH_SECTOR_488:
case LL_FLASH_SECTOR_489:
case LL_FLASH_SECTOR_490:
case LL_FLASH_SECTOR_491:
{
if (flash_size > 0x30000UL)
{
LL_FLASH_BYPASS();
CLEAR_BIT(FLASH->SLOCK3, LL_REG_BIT_26);
}
break;
}
case LL_FLASH_SECTOR_492:
case LL_FLASH_SECTOR_493:
case LL_FLASH_SECTOR_494:
case LL_FLASH_SECTOR_495:
{
if (flash_size > 0x30000UL)
{
LL_FLASH_BYPASS();
CLEAR_BIT(FLASH->SLOCK3, LL_REG_BIT_27);
}
break;
}
case LL_FLASH_SECTOR_496:
case LL_FLASH_SECTOR_497:
case LL_FLASH_SECTOR_498:
case LL_FLASH_SECTOR_499:
{
if (flash_size > 0x30000UL)
{
LL_FLASH_BYPASS();
CLEAR_BIT(FLASH->SLOCK3, LL_REG_BIT_28);
}
break;
}
case LL_FLASH_SECTOR_500:
case LL_FLASH_SECTOR_501:
case LL_FLASH_SECTOR_502:
case LL_FLASH_SECTOR_503:
{
if (flash_size > 0x30000UL)
{
LL_FLASH_BYPASS();
CLEAR_BIT(FLASH->SLOCK3, LL_REG_BIT_29);
}
break;
}
case LL_FLASH_SECTOR_504:
case LL_FLASH_SECTOR_505:
case LL_FLASH_SECTOR_506:
case LL_FLASH_SECTOR_507:
{
if (flash_size > 0x30000UL)
{
LL_FLASH_BYPASS();
CLEAR_BIT(FLASH->SLOCK3, LL_REG_BIT_30);
}
break;
}
case LL_FLASH_SECTOR_508:
case LL_FLASH_SECTOR_509:
case LL_FLASH_SECTOR_510:
case LL_FLASH_SECTOR_511:
{
if (flash_size > 0x30000UL)
{
LL_FLASH_BYPASS();
CLEAR_BIT(FLASH->SLOCK3, LL_REG_BIT_31);
}
break;
}
default:
{
LL_FLASH_Lock();
break;
}
}
}
///
//函 数:
//功 能: 清除标志位信息
//输入参 数:
//输出参 数:
//说 明:
//
static inline void LL_FLASH_ClearFlag(void)
{
FLASH->CSR=0x00UL;
}
//===函数定义
void LL_Flash_Init(void);
void LL_FLASH_SectorUnLockNum(uint32_t num);
void LL_FLASH_SectorUnLockAddr(uint32_t addr);
uint8_t LL_FLASH_WaitBusy(uint32_t timeout);
uint8_t LL_FLASH_ProgramByte(uint32_t addr, uint8_t val);
uint8_t LL_FLASH_ProgramHalfWord(uint32_t addr, uint16_t val);
uint8_t LL_FLASH_ProgramWord(uint32_t addr, uint32_t val);
uint8_t LL_FLASH_SectorErase(uint32_t addr);
///
#ifdef __cplusplus
}
#endif
#endif /* HC32L1XX_LL_PCNT_H_ */
#include "hc32l1xx_ll_flash.h"
///
//函 数:
//功 能:
//输入参 数:
//输出参 数:
//说 明:
//
void LL_Flash_Init(void)
{
LL_RCC_TypeDef rcc_clockx = { 0 };
float flash_temp = 0.0f;
uint32_t reg_temp = 0;
uint32_t reg_val = 0;
LL_RCC_GetSystemClocks(&rcc_clockx);
//---计算
flash_temp = (rcc_clockx.HCLK / 10000);
flash_temp /= 100.0f;
reg_temp= (uint32_t)(flash_temp * 8)&FLASH_TNVS;
//---配置参数
while (1)
{
LL_FLASH_BYPASS();
FLASH->TNVS = reg_temp;
//---读取结果
reg_val = FLASH->TNVS;
//---校验数据
if (reg_val==reg_temp)
{
//---退出操作
break;
}
}
reg_temp = (uint32_t)(flash_temp * 5.75)&FLASH_TPGS;
//---配置参数
while (1)
{
LL_FLASH_BYPASS();
FLASH->TPGS = reg_temp;
//---读取结果
reg_val = FLASH->TPGS;
//---校验数据
if (reg_val == reg_temp)
{
//---退出操作
break;
}
}
reg_temp = (uint32_t)(flash_temp * 6.75)&FLASH_TPRGOS;
//---配置参数
while (1)
{
LL_FLASH_BYPASS();
FLASH->TPROG = reg_temp;
//---读取结果
reg_val = FLASH->TPROG;
//---校验数据
if (reg_val == reg_temp)
{
//---退出操作
break;
}
}
reg_temp = (uint32_t)(flash_temp * 4500)&FLASH_TSERASE;
//---配置参数
while (1)
{
LL_FLASH_BYPASS();
FLASH->TSERASE = reg_temp;
//---读取结果
reg_val = FLASH->TSERASE;
//---校验数据
if (reg_val == reg_temp)
{
//---退出操作
break;
}
}
reg_temp = (uint32_t)(flash_temp * 35000)&FLASH_TMERASE;
//---配置参数
while (1)
{
LL_FLASH_BYPASS();
FLASH->TMERASE = reg_temp;
//---读取结果
reg_val = FLASH->TMERASE;
//---校验数据
if (reg_val == reg_temp)
{
//---退出操作
break;
}
}
reg_temp = (uint32_t)(flash_temp * 6)&FLASH_TPRCV;
//---配置参数
while (1)
{
LL_FLASH_BYPASS();
FLASH->TPRCV = reg_temp;
//---读取结果
reg_val = FLASH->TPRCV;
//---校验数据
if (reg_val == reg_temp)
{
//---退出操作
break;
}
}
reg_temp = (uint32_t)(flash_temp * 60)&FLASH_TSRCV;
//---配置参数
while (1)
{
LL_FLASH_BYPASS();
FLASH->TSRCV = reg_temp;
//---读取结果
reg_val = FLASH->TSRCV;
//---校验数据
if (reg_val == reg_temp)
{
//---退出操作
break;
}
}
reg_temp = (uint32_t)(flash_temp * 250)&FLASH_TMRCV;
//---配置参数
while (1)
{
LL_FLASH_BYPASS();
FLASH->TMRCV = reg_temp;
//---读取结果
reg_val = FLASH->TMRCV;
//---校验数据
if (reg_val == reg_temp)
{
//---退出操作
break;
}
}
}
///
//函 数:
//功 能: 根据扇区号解锁扇区
//输入参 数:
//输出参 数:
//说 明:
//
void LL_FLASH_SectorUnLockNum(uint32_t num)
{
uint32_t sector_addr = num * LL_FLASH_SECTOR_SIZE;
LL_FLASH_UnLock(sector_addr);
}
///
//函 数:
//功 能: 根据扇区地址解锁扇区
//输入参 数:
//输出参 数:
//说 明:
//
void LL_FLASH_SectorUnLockAddr(uint32_t addr)
{
LL_FLASH_UnLock(addr);
}
///
//函 数:
//功 能: 等待Busy信号
//输入参 数:
//输出参 数: 0---空闲,1,忙且超时错误
//说 明:
//
uint8_t LL_FLASH_WaitBusy(uint32_t timeout)
{
uint32_t cnt_temp = timeout;
//---等待空闲
while (cnt_temp--)
{
//---检查空闲
if (LL_FLASH_Busy()==0)
{
//---空闲退出
return 0;
}
}
return 1;
}
///
//函 数:
//功 能:
//输入参 数:
//输出参 数:
//说 明:
//
uint8_t LL_FLASH_ProgramByte(uint32_t addr, uint8_t val)
{
uint8_t _return = LL_FLASH_WaitBusy(LL_FLASH_TIMEOUT_PROGRAM);
//---Flash操作空闲
if (_return==0)
{
//---写入数据
*((volatile uint8_t*)addr) = val;
//---等待操作完成
_return = LL_FLASH_WaitBusy(LL_FLASH_TIMEOUT_PROGRAM);
}
return _return;
}
///
//函 数:
//功 能:
//输入参 数:
//输出参 数:
//说 明:
//
uint8_t LL_FLASH_ProgramHalfWord(uint32_t addr, uint16_t val)
{
uint8_t _return = LL_FLASH_WaitBusy(LL_FLASH_TIMEOUT_PROGRAM);
//---Flash操作空闲
if (_return == 0)
{
//---写入数据
*((volatile uint16_t*)(addr&0xFFFFFFFE)) = val;
//---等待操作完成
_return = LL_FLASH_WaitBusy(LL_FLASH_TIMEOUT_PROGRAM);
}
return _return;
}
///
//函 数:
//功 能:
//输入参 数:
//输出参 数:
//说 明:
//
uint8_t LL_FLASH_ProgramWord(uint32_t addr, uint32_t val)
{
uint8_t _return = LL_FLASH_WaitBusy(LL_FLASH_TIMEOUT_PROGRAM);
//---Flash操作空闲
if (_return == 0)
{
//---写入数据
*((volatile uint32_t*)(addr & 0xFFFFFFFC)) = val;
//---等待操作完成
_return = LL_FLASH_WaitBusy(LL_FLASH_TIMEOUT_PROGRAM);
}
return _return;
}
///
//函 数:
//功 能:
//输入参 数:
//输出参 数:
//说 明:
//
uint8_t LL_FLASH_SectorErase(uint32_t addr)
{
uint8_t _return = LL_FLASH_WaitBusy(LL_FLASH_TIMEOUT_ERASE);
//---校验空闲
if (_return==0)
{
//---将地址拆解为扇区首地址
addr &= LL_FLASH_SECTOR_MASK;
//---设置页擦除模式
LL_FLASH_Enable_SectorErase();
//---准备擦除,写字节数据,避免地址异常,出现硬件错误
*((volatile uint8_t*)addr) = 0;
//---等待操作完成
_return = LL_FLASH_WaitBusy(LL_FLASH_TIMEOUT_ERASE);
}
if (_return==0)
{
//---设置读取模式
LL_FLASH_Enable_Read();
}
return _return;
}