File indexing completed on 2025-05-11 08:22:58
0001
0002
0003
0004
0005
0006
0007
0008
0009 #include "fsl_edma.h"
0010 #if defined FSL_FEATURE_MEMORY_HAS_ADDRESS_OFFSET && FSL_FEATURE_MEMORY_HAS_ADDRESS_OFFSET
0011 #include "fsl_memory.h"
0012 #endif
0013
0014
0015
0016
0017
0018 #ifndef FSL_COMPONENT_ID
0019 #define FSL_COMPONENT_ID "platform.drivers.edma"
0020 #endif
0021
0022 #define EDMA_TRANSFER_ENABLED_MASK 0x80U
0023
0024
0025
0026
0027
0028
0029
0030
0031
0032
0033 static uint32_t EDMA_GetInstanceOffset(uint32_t instance);
0034
0035
0036
0037
0038
0039
0040 static edma_transfer_size_t EDMA_TransferWidthMapping(uint32_t width);
0041
0042
0043
0044
0045
0046 static DMA_Type *const s_edmaBases[] = DMA_BASE_PTRS;
0047
0048 #if !(defined(FSL_SDK_DISABLE_DRIVER_CLOCK_CONTROL) && FSL_SDK_DISABLE_DRIVER_CLOCK_CONTROL)
0049
0050 static const clock_ip_name_t s_edmaClockName[] = EDMA_CLOCKS;
0051 #endif
0052
0053
0054 static const IRQn_Type s_edmaIRQNumber[][FSL_FEATURE_EDMA_MODULE_CHANNEL] = DMA_CHN_IRQS;
0055
0056
0057 static edma_handle_t *s_EDMAHandle[FSL_FEATURE_EDMA_MODULE_CHANNEL * FSL_FEATURE_SOC_EDMA_COUNT];
0058
0059
0060
0061
0062
0063 static uint32_t EDMA_GetInstance(DMA_Type *base)
0064 {
0065 uint32_t instance;
0066
0067
0068 for (instance = 0; instance < ARRAY_SIZE(s_edmaBases); instance++)
0069 {
0070 if (s_edmaBases[instance] == base)
0071 {
0072 break;
0073 }
0074 }
0075
0076 assert(instance < ARRAY_SIZE(s_edmaBases));
0077
0078 return instance;
0079 }
0080
0081
0082
0083
0084
0085
0086
0087
0088 void EDMA_InstallTCD(DMA_Type *base, uint32_t channel, edma_tcd_t *tcd)
0089 {
0090 assert(channel < (uint32_t)FSL_FEATURE_EDMA_MODULE_CHANNEL);
0091 assert(tcd != NULL);
0092 assert(((uint32_t)tcd & 0x1FU) == 0U);
0093
0094
0095 base->TCD[channel].SADDR = tcd->SADDR;
0096 base->TCD[channel].SOFF = tcd->SOFF;
0097 base->TCD[channel].ATTR = tcd->ATTR;
0098 base->TCD[channel].NBYTES_MLNO = tcd->NBYTES;
0099 base->TCD[channel].SLAST = (int32_t)tcd->SLAST;
0100 base->TCD[channel].DADDR = tcd->DADDR;
0101 base->TCD[channel].DOFF = tcd->DOFF;
0102 base->TCD[channel].CITER_ELINKNO = tcd->CITER;
0103 base->TCD[channel].DLAST_SGA = (int32_t)tcd->DLAST_SGA;
0104
0105 base->TCD[channel].CSR = 0;
0106 base->TCD[channel].CSR = tcd->CSR;
0107 base->TCD[channel].BITER_ELINKNO = tcd->BITER;
0108 }
0109
0110
0111
0112
0113
0114
0115
0116
0117
0118
0119
0120 void EDMA_Init(DMA_Type *base, const edma_config_t *config)
0121 {
0122 assert(config != NULL);
0123
0124 uint32_t tmpreg;
0125
0126 #if !(defined(FSL_SDK_DISABLE_DRIVER_CLOCK_CONTROL) && FSL_SDK_DISABLE_DRIVER_CLOCK_CONTROL)
0127
0128 CLOCK_EnableClock(s_edmaClockName[EDMA_GetInstance(base)]);
0129 #endif
0130
0131
0132 base->ERQ = 0U;
0133 base->INT = 0xFFFFFFFFU;
0134 base->ERR = 0xFFFFFFFFU;
0135
0136 tmpreg = base->CR;
0137 tmpreg &= ~(DMA_CR_ERCA_MASK | DMA_CR_HOE_MASK | DMA_CR_CLM_MASK | DMA_CR_EDBG_MASK);
0138 tmpreg |= (DMA_CR_ERCA(config->enableRoundRobinArbitration) | DMA_CR_HOE(config->enableHaltOnError) |
0139 DMA_CR_CLM(config->enableContinuousLinkMode) | DMA_CR_EDBG(config->enableDebugMode) | DMA_CR_EMLM(1U));
0140 base->CR = tmpreg;
0141 }
0142
0143
0144
0145
0146
0147
0148
0149
0150 void EDMA_Deinit(DMA_Type *base)
0151 {
0152 #if !(defined(FSL_SDK_DISABLE_DRIVER_CLOCK_CONTROL) && FSL_SDK_DISABLE_DRIVER_CLOCK_CONTROL)
0153
0154 CLOCK_DisableClock(s_edmaClockName[EDMA_GetInstance(base)]);
0155 #endif
0156 }
0157
0158
0159
0160
0161
0162
0163
0164
0165
0166
0167
0168
0169
0170
0171
0172 void EDMA_GetDefaultConfig(edma_config_t *config)
0173 {
0174 assert(config != NULL);
0175
0176
0177 (void)memset(config, 0, sizeof(*config));
0178
0179 config->enableRoundRobinArbitration = false;
0180 config->enableHaltOnError = true;
0181 config->enableContinuousLinkMode = false;
0182 config->enableDebugMode = false;
0183 }
0184
0185
0186
0187
0188
0189
0190
0191
0192
0193
0194
0195
0196 void EDMA_ResetChannel(DMA_Type *base, uint32_t channel)
0197 {
0198 assert(channel < (uint32_t)FSL_FEATURE_EDMA_MODULE_CHANNEL);
0199
0200 EDMA_TcdReset((edma_tcd_t *)(uint32_t)&base->TCD[channel]);
0201 }
0202
0203
0204
0205
0206
0207
0208
0209
0210
0211
0212
0213
0214
0215
0216
0217
0218
0219
0220
0221
0222
0223
0224
0225
0226
0227
0228 void EDMA_SetTransferConfig(DMA_Type *base, uint32_t channel, const edma_transfer_config_t *config, edma_tcd_t *nextTcd)
0229 {
0230 assert(channel < (uint32_t)FSL_FEATURE_EDMA_MODULE_CHANNEL);
0231 assert(config != NULL);
0232 assert(((uint32_t)nextTcd & 0x1FU) == 0U);
0233
0234
0235 #if defined FSL_FEATURE_MEMORY_HAS_ADDRESS_OFFSET && FSL_FEATURE_MEMORY_HAS_ADDRESS_OFFSET
0236 nextTcd = (edma_tcd_t *)(MEMORY_ConvertMemoryMapAddress((uint32_t)nextTcd, kMEMORY_Local2DMA));
0237 #endif
0238 EDMA_TcdSetTransferConfig((edma_tcd_t *)(uint32_t)&base->TCD[channel], config, nextTcd);
0239 }
0240
0241
0242
0243
0244
0245
0246
0247
0248
0249
0250
0251 void EDMA_SetMinorOffsetConfig(DMA_Type *base, uint32_t channel, const edma_minor_offset_config_t *config)
0252 {
0253 assert(channel < (uint32_t)FSL_FEATURE_EDMA_MODULE_CHANNEL);
0254 assert(config != NULL);
0255
0256 uint32_t tmpreg;
0257
0258 tmpreg = base->TCD[channel].NBYTES_MLOFFYES;
0259 tmpreg &= ~(DMA_NBYTES_MLOFFYES_SMLOE_MASK | DMA_NBYTES_MLOFFYES_DMLOE_MASK | DMA_NBYTES_MLOFFYES_MLOFF_MASK);
0260 tmpreg |=
0261 (DMA_NBYTES_MLOFFYES_SMLOE(config->enableSrcMinorOffset) |
0262 DMA_NBYTES_MLOFFYES_DMLOE(config->enableDestMinorOffset) | DMA_NBYTES_MLOFFYES_MLOFF(config->minorOffset));
0263 base->TCD[channel].NBYTES_MLOFFYES = tmpreg;
0264 }
0265
0266
0267
0268
0269
0270
0271
0272
0273
0274
0275
0276 void EDMA_SetMajorOffsetConfig(DMA_Type *base, uint32_t channel, int32_t sourceOffset, int32_t destOffset)
0277 {
0278 assert(channel < (uint32_t)FSL_FEATURE_EDMA_MODULE_CHANNEL);
0279
0280 base->TCD[channel].SLAST = sourceOffset;
0281 base->TCD[channel].DLAST_SGA = destOffset;
0282 }
0283
0284
0285
0286
0287
0288
0289
0290
0291
0292
0293 void EDMA_SetChannelPreemptionConfig(DMA_Type *base, uint32_t channel, const edma_channel_Preemption_config_t *config)
0294 {
0295 assert(channel < (uint32_t)FSL_FEATURE_EDMA_MODULE_CHANNEL);
0296 assert(config != NULL);
0297
0298 bool tmpEnablePreemptAbility = config->enablePreemptAbility;
0299 bool tmpEnableChannelPreemption = config->enableChannelPreemption;
0300 uint8_t tmpChannelPriority = config->channelPriority;
0301 volatile uint8_t *tmpReg = &base->DCHPRI3;
0302
0303 ((volatile uint8_t *)tmpReg)[DMA_DCHPRI_INDEX(channel)] =
0304 (DMA_DCHPRI0_DPA((true == tmpEnablePreemptAbility ? 0U : 1U)) |
0305 DMA_DCHPRI0_ECP((true == tmpEnableChannelPreemption ? 1U : 0U)) | DMA_DCHPRI0_CHPRI(tmpChannelPriority));
0306 }
0307
0308
0309
0310
0311
0312
0313
0314
0315
0316
0317
0318
0319
0320
0321
0322
0323
0324 void EDMA_SetChannelLink(DMA_Type *base, uint32_t channel, edma_channel_link_type_t linkType, uint32_t linkedChannel)
0325 {
0326 assert(channel < (uint32_t)FSL_FEATURE_EDMA_MODULE_CHANNEL);
0327 assert(linkedChannel < (uint32_t)FSL_FEATURE_EDMA_MODULE_CHANNEL);
0328
0329 EDMA_TcdSetChannelLink((edma_tcd_t *)(uint32_t)&base->TCD[channel], linkType, linkedChannel);
0330 }
0331
0332
0333
0334
0335
0336
0337
0338
0339
0340
0341
0342
0343
0344
0345
0346 void EDMA_SetBandWidth(DMA_Type *base, uint32_t channel, edma_bandwidth_t bandWidth)
0347 {
0348 assert(channel < (uint32_t)FSL_FEATURE_EDMA_MODULE_CHANNEL);
0349
0350 base->TCD[channel].CSR = (uint16_t)((base->TCD[channel].CSR & (~DMA_CSR_BWC_MASK)) | DMA_CSR_BWC(bandWidth));
0351 }
0352
0353
0354
0355
0356
0357
0358
0359
0360
0361
0362
0363
0364
0365 void EDMA_SetModulo(DMA_Type *base, uint32_t channel, edma_modulo_t srcModulo, edma_modulo_t destModulo)
0366 {
0367 assert(channel < (uint32_t)FSL_FEATURE_EDMA_MODULE_CHANNEL);
0368
0369 uint16_t tmpreg;
0370
0371 tmpreg = base->TCD[channel].ATTR & (~(uint16_t)(DMA_ATTR_SMOD_MASK | DMA_ATTR_DMOD_MASK));
0372 base->TCD[channel].ATTR = tmpreg | DMA_ATTR_DMOD(destModulo) | DMA_ATTR_SMOD(srcModulo);
0373 }
0374
0375
0376
0377
0378
0379
0380
0381
0382
0383 void EDMA_EnableChannelInterrupts(DMA_Type *base, uint32_t channel, uint32_t mask)
0384 {
0385 assert(channel < (uint32_t)FSL_FEATURE_EDMA_MODULE_CHANNEL);
0386
0387
0388 if (0U != (mask & (uint32_t)kEDMA_ErrorInterruptEnable))
0389 {
0390 base->EEI |= ((uint32_t)0x1U << channel);
0391 }
0392
0393
0394 if (0U != (mask & (uint32_t)kEDMA_MajorInterruptEnable))
0395 {
0396 base->TCD[channel].CSR |= DMA_CSR_INTMAJOR_MASK;
0397 }
0398
0399
0400 if (0U != (mask & (uint32_t)kEDMA_HalfInterruptEnable))
0401 {
0402 base->TCD[channel].CSR |= DMA_CSR_INTHALF_MASK;
0403 }
0404 }
0405
0406
0407
0408
0409
0410
0411
0412
0413
0414 void EDMA_DisableChannelInterrupts(DMA_Type *base, uint32_t channel, uint32_t mask)
0415 {
0416 assert(channel < (uint32_t)FSL_FEATURE_EDMA_MODULE_CHANNEL);
0417
0418
0419 if (0U != (mask & (uint32_t)kEDMA_ErrorInterruptEnable))
0420 {
0421 base->EEI &= (~((uint32_t)0x1U << channel));
0422 }
0423
0424
0425 if (0U != (mask & (uint32_t)kEDMA_MajorInterruptEnable))
0426 {
0427 base->TCD[channel].CSR &= ~(uint16_t)DMA_CSR_INTMAJOR_MASK;
0428 }
0429
0430
0431 if (0U != (mask & (uint32_t)kEDMA_HalfInterruptEnable))
0432 {
0433 base->TCD[channel].CSR &= ~(uint16_t)DMA_CSR_INTHALF_MASK;
0434 }
0435 }
0436
0437
0438
0439
0440
0441
0442
0443
0444
0445 void EDMA_TcdReset(edma_tcd_t *tcd)
0446 {
0447 assert(tcd != NULL);
0448 assert(((uint32_t)tcd & 0x1FU) == 0U);
0449
0450
0451 tcd->SADDR = 0U;
0452 tcd->SOFF = 0U;
0453 tcd->ATTR = 0U;
0454 tcd->NBYTES = 0U;
0455 tcd->SLAST = 0U;
0456 tcd->DADDR = 0U;
0457 tcd->DOFF = 0U;
0458 tcd->CITER = 0U;
0459 tcd->DLAST_SGA = 0U;
0460
0461 tcd->CSR = DMA_CSR_DREQ(1U);
0462 tcd->BITER = 0U;
0463 }
0464
0465
0466
0467
0468
0469
0470
0471
0472
0473
0474
0475
0476
0477
0478
0479
0480
0481
0482
0483
0484
0485
0486
0487
0488
0489
0490
0491
0492 void EDMA_TcdSetTransferConfig(edma_tcd_t *tcd, const edma_transfer_config_t *config, edma_tcd_t *nextTcd)
0493 {
0494 assert(tcd != NULL);
0495 assert(((uint32_t)tcd & 0x1FU) == 0U);
0496 assert(config != NULL);
0497 assert(((uint32_t)nextTcd & 0x1FU) == 0U);
0498 assert((config->srcAddr % (1UL << (uint32_t)config->srcTransferSize)) == 0U);
0499 assert((config->destAddr % (1UL << (uint32_t)config->destTransferSize)) == 0U);
0500
0501
0502 #if defined FSL_FEATURE_MEMORY_HAS_ADDRESS_OFFSET && FSL_FEATURE_MEMORY_HAS_ADDRESS_OFFSET
0503 tcd->SADDR = MEMORY_ConvertMemoryMapAddress(config->srcAddr, kMEMORY_Local2DMA);
0504
0505 tcd->DADDR = MEMORY_ConvertMemoryMapAddress(config->destAddr, kMEMORY_Local2DMA);
0506 #else
0507 tcd->SADDR = config->srcAddr;
0508
0509 tcd->DADDR = config->destAddr;
0510 #endif
0511
0512 tcd->ATTR = DMA_ATTR_SSIZE(config->srcTransferSize) | DMA_ATTR_DSIZE(config->destTransferSize);
0513
0514 tcd->SOFF = (uint16_t)config->srcOffset;
0515
0516 tcd->DOFF = (uint16_t)config->destOffset;
0517
0518 tcd->NBYTES = config->minorLoopBytes;
0519
0520 tcd->CITER = (uint16_t)config->majorLoopCounts;
0521
0522 tcd->BITER = (uint16_t)config->majorLoopCounts;
0523
0524 if (nextTcd != NULL)
0525 {
0526 #if defined FSL_FEATURE_MEMORY_HAS_ADDRESS_OFFSET && FSL_FEATURE_MEMORY_HAS_ADDRESS_OFFSET
0527 tcd->DLAST_SGA = MEMORY_ConvertMemoryMapAddress((uint32_t)nextTcd, kMEMORY_Local2DMA);
0528 #else
0529 tcd->DLAST_SGA = (uint32_t)nextTcd;
0530 #endif
0531
0532
0533
0534
0535
0536
0537
0538
0539
0540 tcd->CSR = (tcd->CSR | (uint16_t)DMA_CSR_ESG_MASK) & ~(uint16_t)DMA_CSR_DREQ_MASK;
0541 }
0542 }
0543
0544
0545
0546
0547
0548
0549
0550
0551
0552
0553 void EDMA_TcdSetMinorOffsetConfig(edma_tcd_t *tcd, const edma_minor_offset_config_t *config)
0554 {
0555 assert(tcd != NULL);
0556 assert(((uint32_t)tcd & 0x1FU) == 0U);
0557
0558 uint32_t tmpreg;
0559
0560 tmpreg = tcd->NBYTES &
0561 ~(DMA_NBYTES_MLOFFYES_SMLOE_MASK | DMA_NBYTES_MLOFFYES_DMLOE_MASK | DMA_NBYTES_MLOFFYES_MLOFF_MASK);
0562 tmpreg |=
0563 (DMA_NBYTES_MLOFFYES_SMLOE(config->enableSrcMinorOffset) |
0564 DMA_NBYTES_MLOFFYES_DMLOE(config->enableDestMinorOffset) | DMA_NBYTES_MLOFFYES_MLOFF(config->minorOffset));
0565 tcd->NBYTES = tmpreg;
0566 }
0567
0568
0569
0570
0571
0572
0573
0574
0575
0576
0577 void EDMA_TcdSetMajorOffsetConfig(edma_tcd_t *tcd, int32_t sourceOffset, int32_t destOffset)
0578 {
0579 assert(tcd != NULL);
0580 assert(((uint32_t)tcd & 0x1FU) == 0U);
0581
0582 tcd->SLAST = (uint32_t)sourceOffset;
0583 tcd->DLAST_SGA = (uint32_t)destOffset;
0584 }
0585
0586
0587
0588
0589
0590
0591
0592
0593
0594
0595
0596
0597
0598
0599
0600
0601 void EDMA_TcdSetChannelLink(edma_tcd_t *tcd, edma_channel_link_type_t linkType, uint32_t linkedChannel)
0602 {
0603 assert(tcd != NULL);
0604 assert(((uint32_t)tcd & 0x1FU) == 0U);
0605 assert(linkedChannel < (uint32_t)FSL_FEATURE_EDMA_MODULE_CHANNEL);
0606
0607 if (linkType == kEDMA_MinorLink)
0608 {
0609 uint16_t tmpreg;
0610
0611
0612 tcd->CITER |= DMA_CITER_ELINKYES_ELINK_MASK;
0613 tcd->BITER |= DMA_BITER_ELINKYES_ELINK_MASK;
0614
0615 tmpreg = tcd->CITER & (~(uint16_t)DMA_CITER_ELINKYES_LINKCH_MASK);
0616 tmpreg |= DMA_CITER_ELINKYES_LINKCH(linkedChannel);
0617 tcd->CITER = tmpreg;
0618 tmpreg = tcd->BITER & (~(uint16_t)DMA_BITER_ELINKYES_LINKCH_MASK);
0619 tmpreg |= DMA_BITER_ELINKYES_LINKCH(linkedChannel);
0620 tcd->BITER = tmpreg;
0621 }
0622 else if (linkType == kEDMA_MajorLink)
0623 {
0624 uint16_t tmpreg;
0625
0626
0627 tcd->CSR |= DMA_CSR_MAJORELINK_MASK;
0628
0629 tmpreg = tcd->CSR & (~(uint16_t)DMA_CSR_MAJORLINKCH_MASK);
0630 tcd->CSR = tmpreg | DMA_CSR_MAJORLINKCH(linkedChannel);
0631 }
0632 else
0633 {
0634 tcd->CITER &= ~(uint16_t)DMA_CITER_ELINKYES_ELINK_MASK;
0635 tcd->BITER &= ~(uint16_t)DMA_BITER_ELINKYES_ELINK_MASK;
0636 tcd->CSR &= ~(uint16_t)DMA_CSR_MAJORELINK_MASK;
0637 }
0638 }
0639
0640
0641
0642
0643
0644
0645
0646
0647
0648
0649
0650
0651 void EDMA_TcdSetModulo(edma_tcd_t *tcd, edma_modulo_t srcModulo, edma_modulo_t destModulo)
0652 {
0653 assert(tcd != NULL);
0654 assert(((uint32_t)tcd & 0x1FU) == 0U);
0655
0656 uint16_t tmpreg;
0657
0658 tmpreg = tcd->ATTR & (~(uint16_t)(DMA_ATTR_SMOD_MASK | DMA_ATTR_DMOD_MASK));
0659 tcd->ATTR = tmpreg | DMA_ATTR_DMOD(destModulo) | DMA_ATTR_SMOD(srcModulo);
0660 }
0661
0662
0663
0664
0665
0666
0667
0668
0669 void EDMA_TcdEnableInterrupts(edma_tcd_t *tcd, uint32_t mask)
0670 {
0671 assert(tcd != NULL);
0672
0673
0674 if (0U != (mask & (uint32_t)kEDMA_MajorInterruptEnable))
0675 {
0676 tcd->CSR |= DMA_CSR_INTMAJOR_MASK;
0677 }
0678
0679
0680 if (0U != (mask & (uint32_t)kEDMA_HalfInterruptEnable))
0681 {
0682 tcd->CSR |= DMA_CSR_INTHALF_MASK;
0683 }
0684 }
0685
0686
0687
0688
0689
0690
0691
0692
0693 void EDMA_TcdDisableInterrupts(edma_tcd_t *tcd, uint32_t mask)
0694 {
0695 assert(tcd != NULL);
0696
0697
0698 if (0U != (mask & (uint32_t)kEDMA_MajorInterruptEnable))
0699 {
0700 tcd->CSR &= ~(uint16_t)DMA_CSR_INTMAJOR_MASK;
0701 }
0702
0703
0704 if (0U != (mask & (uint32_t)kEDMA_HalfInterruptEnable))
0705 {
0706 tcd->CSR &= ~(uint16_t)DMA_CSR_INTHALF_MASK;
0707 }
0708 }
0709
0710
0711
0712
0713
0714
0715
0716
0717
0718
0719
0720
0721
0722
0723
0724
0725
0726
0727
0728
0729
0730
0731 uint32_t EDMA_GetRemainingMajorLoopCount(DMA_Type *base, uint32_t channel)
0732 {
0733 assert(channel < (uint32_t)FSL_FEATURE_EDMA_MODULE_CHANNEL);
0734
0735 uint32_t remainingCount = 0;
0736
0737 if (0U != (DMA_CSR_DONE_MASK & base->TCD[channel].CSR))
0738 {
0739 remainingCount = 0;
0740 }
0741 else
0742 {
0743
0744 if (0U != (base->TCD[channel].CITER_ELINKNO & DMA_CITER_ELINKNO_ELINK_MASK))
0745 {
0746 remainingCount = (((uint32_t)base->TCD[channel].CITER_ELINKYES & DMA_CITER_ELINKYES_CITER_MASK) >>
0747 DMA_CITER_ELINKYES_CITER_SHIFT);
0748 }
0749 else
0750 {
0751 remainingCount = (((uint32_t)base->TCD[channel].CITER_ELINKNO & DMA_CITER_ELINKNO_CITER_MASK) >>
0752 DMA_CITER_ELINKNO_CITER_SHIFT);
0753 }
0754 }
0755
0756 return remainingCount;
0757 }
0758
0759
0760
0761
0762
0763
0764
0765
0766
0767 uint32_t EDMA_GetChannelStatusFlags(DMA_Type *base, uint32_t channel)
0768 {
0769 assert(channel < (uint32_t)FSL_FEATURE_EDMA_MODULE_CHANNEL);
0770
0771 uint32_t retval = 0;
0772
0773
0774 retval |= (((uint32_t)base->TCD[channel].CSR & DMA_CSR_DONE_MASK) >> DMA_CSR_DONE_SHIFT);
0775
0776 retval |= ((((uint32_t)base->ERR >> channel) & 0x1U) << 1U);
0777
0778 retval |= ((((uint32_t)base->INT >> channel) & 0x1U) << 2U);
0779
0780 return retval;
0781 }
0782
0783
0784
0785
0786
0787
0788
0789
0790
0791 void EDMA_ClearChannelStatusFlags(DMA_Type *base, uint32_t channel, uint32_t mask)
0792 {
0793 assert(channel < (uint32_t)FSL_FEATURE_EDMA_MODULE_CHANNEL);
0794
0795
0796 if (0U != (mask & (uint32_t)kEDMA_DoneFlag))
0797 {
0798 base->CDNE = (uint8_t)channel;
0799 }
0800
0801 if (0U != (mask & (uint32_t)kEDMA_ErrorFlag))
0802 {
0803 base->CERR = (uint8_t)channel;
0804 }
0805
0806 if (0U != (mask & (uint32_t)kEDMA_InterruptFlag))
0807 {
0808 base->CINT = (uint8_t)channel;
0809 }
0810 }
0811
0812 static uint32_t EDMA_GetInstanceOffset(uint32_t instance)
0813 {
0814 static uint8_t startInstanceNum;
0815
0816 #if defined(DMA0)
0817 startInstanceNum = (uint8_t)EDMA_GetInstance(DMA0);
0818 #elif defined(DMA1)
0819 startInstanceNum = (uint8_t)EDMA_GetInstance(DMA1);
0820 #elif defined(DMA2)
0821 startInstanceNum = (uint8_t)EDMA_GetInstance(DMA2);
0822 #elif defined(DMA3)
0823 startInstanceNum = (uint8_t)EDMA_GetInstance(DMA3);
0824 #endif
0825
0826 assert(startInstanceNum <= instance);
0827
0828 return instance - startInstanceNum;
0829 }
0830
0831
0832
0833
0834
0835
0836
0837
0838
0839
0840
0841
0842 void EDMA_CreateHandle(edma_handle_t *handle, DMA_Type *base, uint32_t channel)
0843 {
0844 assert(handle != NULL);
0845 assert(channel < (uint32_t)FSL_FEATURE_EDMA_MODULE_CHANNEL);
0846
0847 uint32_t edmaInstance;
0848 uint32_t channelIndex;
0849 edma_tcd_t *tcdRegs;
0850
0851
0852 (void)memset(handle, 0, sizeof(*handle));
0853
0854 handle->base = base;
0855 handle->channel = (uint8_t)channel;
0856
0857
0858 edmaInstance = EDMA_GetInstance(base);
0859 channelIndex = (EDMA_GetInstanceOffset(edmaInstance) * (uint32_t)FSL_FEATURE_EDMA_MODULE_CHANNEL) + channel;
0860 s_EDMAHandle[channelIndex] = handle;
0861
0862
0863 (void)EnableIRQ(s_edmaIRQNumber[edmaInstance][channel]);
0864
0865
0866
0867
0868
0869
0870 tcdRegs = (edma_tcd_t *)(uint32_t)&handle->base->TCD[handle->channel];
0871 tcdRegs->SADDR = 0;
0872 tcdRegs->SOFF = 0;
0873 tcdRegs->ATTR = 0;
0874 tcdRegs->NBYTES = 0;
0875 tcdRegs->SLAST = 0;
0876 tcdRegs->DADDR = 0;
0877 tcdRegs->DOFF = 0;
0878 tcdRegs->CITER = 0;
0879 tcdRegs->DLAST_SGA = 0;
0880 tcdRegs->CSR = 0;
0881 tcdRegs->BITER = 0;
0882 }
0883
0884
0885
0886
0887
0888
0889
0890
0891
0892
0893
0894
0895
0896 void EDMA_InstallTCDMemory(edma_handle_t *handle, edma_tcd_t *tcdPool, uint32_t tcdSize)
0897 {
0898 assert(handle != NULL);
0899 assert(((uint32_t)tcdPool & 0x1FU) == 0U);
0900
0901
0902
0903
0904
0905
0906
0907
0908
0909
0910
0911 handle->header = 1;
0912 handle->tcdUsed = 0;
0913 handle->tcdSize = (int8_t)tcdSize;
0914 handle->flags = 0;
0915 handle->tcdPool = tcdPool;
0916 }
0917
0918
0919
0920
0921
0922
0923
0924
0925
0926
0927
0928 void EDMA_SetCallback(edma_handle_t *handle, edma_callback callback, void *userData)
0929 {
0930 assert(handle != NULL);
0931
0932 handle->callback = callback;
0933 handle->userData = userData;
0934 }
0935
0936 static edma_transfer_size_t EDMA_TransferWidthMapping(uint32_t width)
0937 {
0938 edma_transfer_size_t transferSize = kEDMA_TransferSize1Bytes;
0939
0940
0941 switch (width)
0942 {
0943
0944 case 1U:
0945 transferSize = kEDMA_TransferSize1Bytes;
0946 break;
0947
0948 case 2U:
0949 transferSize = kEDMA_TransferSize2Bytes;
0950 break;
0951
0952 case 4U:
0953 transferSize = kEDMA_TransferSize4Bytes;
0954 break;
0955 #if (defined(FSL_FEATURE_EDMA_SUPPORT_8_BYTES_TRANSFER) && FSL_FEATURE_EDMA_SUPPORT_8_BYTES_TRANSFER)
0956
0957 case 8U:
0958 transferSize = kEDMA_TransferSize8Bytes;
0959 break;
0960 #endif
0961 #if (defined(FSL_FEATURE_EDMA_SUPPORT_16_BYTES_TRANSFER) && FSL_FEATURE_EDMA_SUPPORT_16_BYTES_TRANSFER)
0962
0963 case 16U:
0964 transferSize = kEDMA_TransferSize16Bytes;
0965 break;
0966 #endif
0967
0968 case 32U:
0969 transferSize = kEDMA_TransferSize32Bytes;
0970 break;
0971 default:
0972
0973 assert(false);
0974 break;
0975 }
0976
0977 return transferSize;
0978 }
0979
0980
0981
0982
0983
0984
0985
0986
0987
0988
0989
0990
0991
0992
0993
0994
0995
0996
0997
0998 void EDMA_PrepareTransferConfig(edma_transfer_config_t *config,
0999 void *srcAddr,
1000 uint32_t srcWidth,
1001 int16_t srcOffset,
1002 void *destAddr,
1003 uint32_t destWidth,
1004 int16_t destOffset,
1005 uint32_t bytesEachRequest,
1006 uint32_t transferBytes)
1007 {
1008 assert(config != NULL);
1009 assert(srcAddr != NULL);
1010 assert(destAddr != NULL);
1011 assert((srcWidth != 0U) && (srcWidth <= 32U) && ((srcWidth & (srcWidth - 1U)) == 0U));
1012 assert((destWidth != 0U) && (destWidth <= 32U) && ((destWidth & (destWidth - 1U)) == 0U));
1013 assert((transferBytes % bytesEachRequest) == 0U);
1014 assert((((uint32_t)(uint32_t *)srcAddr) % srcWidth) == 0U);
1015 assert((((uint32_t)(uint32_t *)destAddr) % destWidth) == 0U);
1016
1017
1018 (void)memset(config, 0, sizeof(*config));
1019
1020 #if defined FSL_FEATURE_MEMORY_HAS_ADDRESS_OFFSET && FSL_FEATURE_MEMORY_HAS_ADDRESS_OFFSET
1021 config->srcAddr = MEMORY_ConvertMemoryMapAddress((uint32_t)(uint32_t *)srcAddr, kMEMORY_Local2DMA);
1022 config->destAddr = MEMORY_ConvertMemoryMapAddress((uint32_t)(uint32_t *)destAddr, kMEMORY_Local2DMA);
1023 #else
1024 config->destAddr = (uint32_t)(uint32_t *)destAddr;
1025 config->srcAddr = (uint32_t)(uint32_t *)srcAddr;
1026 #endif
1027 config->minorLoopBytes = bytesEachRequest;
1028 config->majorLoopCounts = transferBytes / bytesEachRequest;
1029 config->srcTransferSize = EDMA_TransferWidthMapping(srcWidth);
1030 config->destTransferSize = EDMA_TransferWidthMapping(destWidth);
1031 config->destOffset = destOffset;
1032 config->srcOffset = srcOffset;
1033 }
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052 void EDMA_PrepareTransfer(edma_transfer_config_t *config,
1053 void *srcAddr,
1054 uint32_t srcWidth,
1055 void *destAddr,
1056 uint32_t destWidth,
1057 uint32_t bytesEachRequest,
1058 uint32_t transferBytes,
1059 edma_transfer_type_t transferType)
1060 {
1061 assert(config != NULL);
1062
1063 int16_t srcOffset = 0, destOffset = 0;
1064
1065 switch (transferType)
1066 {
1067 case kEDMA_MemoryToMemory:
1068 destOffset = (int16_t)destWidth;
1069 srcOffset = (int16_t)srcWidth;
1070 break;
1071 case kEDMA_MemoryToPeripheral:
1072 destOffset = 0;
1073 srcOffset = (int16_t)srcWidth;
1074 break;
1075 case kEDMA_PeripheralToMemory:
1076 destOffset = (int16_t)destWidth;
1077 srcOffset = 0;
1078 break;
1079 case kEDMA_PeripheralToPeripheral:
1080 destOffset = 0;
1081 srcOffset = 0;
1082 break;
1083 default:
1084
1085 assert(false);
1086 break;
1087 }
1088
1089 EDMA_PrepareTransferConfig(config, srcAddr, srcWidth, srcOffset, destAddr, destWidth, destOffset, bytesEachRequest,
1090 transferBytes);
1091 }
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106 status_t EDMA_SubmitTransfer(edma_handle_t *handle, const edma_transfer_config_t *config)
1107 {
1108 assert(handle != NULL);
1109 assert(config != NULL);
1110
1111 edma_tcd_t *tcdRegs = (edma_tcd_t *)(uint32_t)&handle->base->TCD[handle->channel];
1112
1113 if (handle->tcdPool == NULL)
1114 {
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127 if (((handle->base->TCD[handle->channel].CSR & DMA_CSR_ACTIVE_MASK) != 0U) ||
1128 (((handle->base->TCD[handle->channel].CITER_ELINKNO & DMA_CITER_ELINKNO_CITER_MASK) !=
1129 (handle->base->TCD[handle->channel].BITER_ELINKNO & DMA_BITER_ELINKNO_BITER_MASK))))
1130 {
1131 return kStatus_EDMA_Busy;
1132 }
1133 else
1134 {
1135 EDMA_SetTransferConfig(handle->base, handle->channel, config, NULL);
1136
1137 handle->base->TCD[handle->channel].CSR |= DMA_CSR_DREQ_MASK;
1138
1139 handle->base->TCD[handle->channel].CSR |= DMA_CSR_INTMAJOR_MASK;
1140
1141 return kStatus_Success;
1142 }
1143 }
1144 else
1145 {
1146 uint32_t primask;
1147 uint16_t csr;
1148 int8_t currentTcd;
1149 int8_t previousTcd;
1150 int8_t nextTcd;
1151 int8_t tmpTcdUsed;
1152 int8_t tmpTcdSize;
1153
1154
1155 primask = DisableGlobalIRQ();
1156 tmpTcdUsed = handle->tcdUsed;
1157 tmpTcdSize = handle->tcdSize;
1158 if (tmpTcdUsed >= tmpTcdSize)
1159 {
1160 EnableGlobalIRQ(primask);
1161
1162 return kStatus_EDMA_QueueFull;
1163 }
1164 currentTcd = handle->tail;
1165 handle->tcdUsed++;
1166
1167 nextTcd = currentTcd + 1;
1168 if (nextTcd == handle->tcdSize)
1169 {
1170 nextTcd = 0;
1171 }
1172
1173 handle->tail = nextTcd;
1174 EnableGlobalIRQ(primask);
1175
1176 previousTcd = currentTcd != 0 ? currentTcd - 1 : (handle->tcdSize - 1);
1177
1178 EDMA_TcdReset(&handle->tcdPool[currentTcd]);
1179 EDMA_TcdSetTransferConfig(&handle->tcdPool[currentTcd], config, NULL);
1180
1181 handle->tcdPool[currentTcd].CSR |= DMA_CSR_INTMAJOR_MASK;
1182
1183 #if defined FSL_FEATURE_MEMORY_HAS_ADDRESS_OFFSET && FSL_FEATURE_MEMORY_HAS_ADDRESS_OFFSET
1184 handle->tcdPool[currentTcd].DLAST_SGA =
1185 MEMORY_ConvertMemoryMapAddress((uint32_t)&handle->tcdPool[nextTcd], kMEMORY_Local2DMA);
1186 #else
1187 handle->tcdPool[currentTcd].DLAST_SGA = (uint32_t)&handle->tcdPool[nextTcd];
1188 #endif
1189
1190 if (currentTcd != previousTcd)
1191 {
1192
1193 csr = handle->tcdPool[previousTcd].CSR | ((uint16_t)DMA_CSR_ESG_MASK);
1194 csr &= ~((uint16_t)DMA_CSR_DREQ_MASK);
1195 handle->tcdPool[previousTcd].CSR = csr;
1196
1197
1198
1199
1200
1201
1202 #if defined FSL_FEATURE_MEMORY_HAS_ADDRESS_OFFSET && FSL_FEATURE_MEMORY_HAS_ADDRESS_OFFSET
1203 if (tcdRegs->DLAST_SGA ==
1204 MEMORY_ConvertMemoryMapAddress((uint32_t)&handle->tcdPool[currentTcd], kMEMORY_Local2DMA))
1205 #else
1206 if (tcdRegs->DLAST_SGA == (uint32_t)&handle->tcdPool[currentTcd])
1207 #endif
1208 {
1209
1210 tcdRegs->CSR |= DMA_CSR_DREQ_MASK;
1211
1212 csr = tcdRegs->CSR | DMA_CSR_ESG_MASK;
1213
1214 tcdRegs->CSR = csr;
1215
1216
1217
1218
1219
1220
1221
1222
1223
1224
1225 if (0U != (tcdRegs->CSR & DMA_CSR_ESG_MASK))
1226 {
1227 tcdRegs->CSR &= ~(uint16_t)DMA_CSR_DREQ_MASK;
1228 return kStatus_Success;
1229 }
1230
1231
1232
1233
1234
1235 #if defined FSL_FEATURE_MEMORY_HAS_ADDRESS_OFFSET && FSL_FEATURE_MEMORY_HAS_ADDRESS_OFFSET
1236 if (tcdRegs->DLAST_SGA ==
1237 MEMORY_ConvertMemoryMapAddress((uint32_t)&handle->tcdPool[nextTcd], kMEMORY_Local2DMA))
1238 #else
1239 if (tcdRegs->DLAST_SGA == (uint32_t)&handle->tcdPool[nextTcd])
1240 #endif
1241 {
1242 return kStatus_Success;
1243 }
1244
1245
1246
1247
1248 }
1249 else if (tcdRegs->DLAST_SGA != 0UL)
1250 {
1251
1252 return kStatus_Success;
1253 }
1254 else
1255 {
1256
1257
1258
1259
1260 }
1261 }
1262
1263 EDMA_InstallTCD(handle->base, handle->channel, &handle->tcdPool[currentTcd]);
1264
1265 if (0U != (handle->flags & EDMA_TRANSFER_ENABLED_MASK))
1266 {
1267 handle->base->SERQ = DMA_SERQ_SERQ(handle->channel);
1268 }
1269
1270 return kStatus_Success;
1271 }
1272 }
1273
1274
1275
1276
1277
1278
1279
1280
1281
1282 void EDMA_StartTransfer(edma_handle_t *handle)
1283 {
1284 assert(handle != NULL);
1285 uint32_t tmpCSR = 0;
1286
1287 if (handle->tcdPool == NULL)
1288 {
1289 handle->base->SERQ = DMA_SERQ_SERQ(handle->channel);
1290 }
1291 else
1292 {
1293 uint32_t primask;
1294 edma_tcd_t *tcdRegs = (edma_tcd_t *)(uint32_t)&handle->base->TCD[handle->channel];
1295
1296 handle->flags |= EDMA_TRANSFER_ENABLED_MASK;
1297
1298
1299 if (tcdRegs->DLAST_SGA != 0U)
1300 {
1301 primask = DisableGlobalIRQ();
1302
1303 if ((handle->base->ERQ & ((uint32_t)1U << handle->channel)) == 0U)
1304 {
1305
1306 tmpCSR = tcdRegs->CSR;
1307 if ((0U == (tmpCSR & DMA_CSR_DONE_MASK)) || (0U != (tmpCSR & DMA_CSR_ESG_MASK)))
1308 {
1309
1310
1311
1312
1313 handle->base->SERQ = DMA_SERQ_SERQ(handle->channel);
1314 }
1315 }
1316 EnableGlobalIRQ(primask);
1317 }
1318 }
1319 }
1320
1321
1322
1323
1324
1325
1326
1327
1328
1329 void EDMA_StopTransfer(edma_handle_t *handle)
1330 {
1331 assert(handle != NULL);
1332
1333 handle->flags &= (~(uint8_t)EDMA_TRANSFER_ENABLED_MASK);
1334 handle->base->CERQ = DMA_CERQ_CERQ(handle->channel);
1335 }
1336
1337
1338
1339
1340
1341
1342
1343
1344
1345 void EDMA_AbortTransfer(edma_handle_t *handle)
1346 {
1347 handle->base->CERQ = DMA_CERQ_CERQ(handle->channel);
1348
1349
1350
1351
1352
1353 handle->base->TCD[handle->channel].CSR = 0;
1354
1355 handle->base->TCD[handle->channel].DLAST_SGA = 0;
1356
1357
1358 handle->base->TCD[handle->channel].CITER_ELINKNO = 0;
1359 handle->base->TCD[handle->channel].BITER_ELINKNO = 0;
1360
1361
1362 if (handle->tcdPool != NULL)
1363 {
1364 handle->header = 1;
1365 handle->tail = 0;
1366 handle->tcdUsed = 0;
1367 }
1368 }
1369
1370
1371
1372
1373
1374
1375
1376
1377
1378
1379
1380
1381
1382
1383
1384
1385
1386
1387
1388
1389
1390
1391
1392
1393
1394
1395
1396
1397
1398 void EDMA_HandleIRQ(edma_handle_t *handle)
1399 {
1400 assert(handle != NULL);
1401
1402 bool transfer_done;
1403
1404
1405 handle->base->CINT = handle->channel;
1406
1407 transfer_done = ((handle->base->TCD[handle->channel].CSR & DMA_CSR_DONE_MASK) != 0U);
1408
1409 if (handle->tcdPool == NULL)
1410 {
1411 if (handle->callback != NULL)
1412 {
1413 (handle->callback)(handle, handle->userData, transfer_done, 0);
1414 }
1415 }
1416 else
1417 {
1418 uint32_t sga = (uint32_t)handle->base->TCD[handle->channel].DLAST_SGA;
1419 uint32_t sga_index;
1420 int32_t tcds_done;
1421 uint8_t new_header;
1422 bool esg = ((handle->base->TCD[handle->channel].CSR & DMA_CSR_ESG_MASK) != 0U);
1423
1424
1425 #if defined FSL_FEATURE_MEMORY_HAS_ADDRESS_OFFSET && FSL_FEATURE_MEMORY_HAS_ADDRESS_OFFSET
1426 sga -= MEMORY_ConvertMemoryMapAddress((uint32_t)handle->tcdPool, kMEMORY_Local2DMA);
1427 #else
1428 sga -= (uint32_t)handle->tcdPool;
1429 #endif
1430
1431 sga_index = sga / sizeof(edma_tcd_t);
1432
1433 if (transfer_done)
1434 {
1435
1436 new_header = (uint8_t)sga_index;
1437 }
1438 else
1439 {
1440
1441 new_header = sga_index != 0U ? (uint8_t)sga_index - 1U : (uint8_t)handle->tcdSize - 1U;
1442 }
1443
1444 if (new_header == (uint8_t)handle->header)
1445 {
1446 int8_t tmpTcdUsed = handle->tcdUsed;
1447 int8_t tmpTcdSize = handle->tcdSize;
1448
1449
1450
1451
1452
1453
1454 if ((tmpTcdUsed == tmpTcdSize) || (!esg))
1455 {
1456 tcds_done = handle->tcdUsed;
1457 }
1458 else
1459 {
1460
1461 tcds_done = 0;
1462 }
1463 }
1464 else
1465 {
1466 tcds_done = (int32_t)new_header - (int32_t)handle->header;
1467 if (tcds_done < 0)
1468 {
1469 tcds_done += handle->tcdSize;
1470 }
1471
1472
1473
1474
1475
1476 if (transfer_done)
1477 {
1478 handle->base->CDNE = handle->channel;
1479 }
1480 }
1481
1482 handle->header = (int8_t)new_header;
1483
1484 handle->tcdUsed -= (int8_t)tcds_done;
1485
1486 if (NULL != handle->callback)
1487 {
1488 (handle->callback)(handle, handle->userData, transfer_done, tcds_done);
1489 }
1490
1491
1492
1493
1494
1495
1496
1497
1498
1499
1500
1501 if (transfer_done)
1502 {
1503 if ((handle->base->TCD[handle->channel].CSR & DMA_CSR_ESG_MASK) != 0U)
1504 {
1505 handle->base->CDNE = handle->channel;
1506 }
1507 }
1508 }
1509 }
1510
1511 #if defined(FSL_FEATURE_EDMA_MODULE_CHANNEL_IRQ_ENTRY_SHARED_OFFSET) && \
1512 (FSL_FEATURE_EDMA_MODULE_CHANNEL_IRQ_ENTRY_SHARED_OFFSET == 4)
1513
1514 #if defined(FSL_FEATURE_EDMA_MODULE_CHANNEL) && (FSL_FEATURE_EDMA_MODULE_CHANNEL == 8U)
1515
1516 #if defined(DMA0)
1517 void DMA0_04_DriverIRQHandler(void);
1518 void DMA0_04_DriverIRQHandler(void)
1519 {
1520 if ((EDMA_GetChannelStatusFlags(DMA0, 0U) & (uint32_t)kEDMA_InterruptFlag) != 0U)
1521 {
1522 EDMA_HandleIRQ(s_EDMAHandle[0]);
1523 }
1524 if ((EDMA_GetChannelStatusFlags(DMA0, 4U) & (uint32_t)kEDMA_InterruptFlag) != 0U)
1525 {
1526 EDMA_HandleIRQ(s_EDMAHandle[4]);
1527 }
1528 SDK_ISR_EXIT_BARRIER;
1529 }
1530
1531 void DMA0_15_DriverIRQHandler(void);
1532 void DMA0_15_DriverIRQHandler(void)
1533 {
1534 if ((EDMA_GetChannelStatusFlags(DMA0, 1U) & (uint32_t)kEDMA_InterruptFlag) != 0U)
1535 {
1536 EDMA_HandleIRQ(s_EDMAHandle[1]);
1537 }
1538 if ((EDMA_GetChannelStatusFlags(DMA0, 5U) & (uint32_t)kEDMA_InterruptFlag) != 0U)
1539 {
1540 EDMA_HandleIRQ(s_EDMAHandle[5]);
1541 }
1542 SDK_ISR_EXIT_BARRIER;
1543 }
1544
1545 void DMA0_26_DriverIRQHandler(void);
1546 void DMA0_26_DriverIRQHandler(void)
1547 {
1548 if ((EDMA_GetChannelStatusFlags(DMA0, 2U) & (uint32_t)kEDMA_InterruptFlag) != 0U)
1549 {
1550 EDMA_HandleIRQ(s_EDMAHandle[2]);
1551 }
1552 if ((EDMA_GetChannelStatusFlags(DMA0, 6U) & (uint32_t)kEDMA_InterruptFlag) != 0U)
1553 {
1554 EDMA_HandleIRQ(s_EDMAHandle[6]);
1555 }
1556 SDK_ISR_EXIT_BARRIER;
1557 }
1558
1559 void DMA0_37_DriverIRQHandler(void);
1560 void DMA0_37_DriverIRQHandler(void)
1561 {
1562 if ((EDMA_GetChannelStatusFlags(DMA0, 3U) & (uint32_t)kEDMA_InterruptFlag) != 0U)
1563 {
1564 EDMA_HandleIRQ(s_EDMAHandle[3]);
1565 }
1566 if ((EDMA_GetChannelStatusFlags(DMA0, 7U) & (uint32_t)kEDMA_InterruptFlag) != 0U)
1567 {
1568 EDMA_HandleIRQ(s_EDMAHandle[7]);
1569 }
1570 SDK_ISR_EXIT_BARRIER;
1571 }
1572 #endif
1573
1574 #if defined(DMA1)
1575
1576 #if defined(DMA0)
1577 void DMA1_04_DriverIRQHandler(void);
1578 void DMA1_04_DriverIRQHandler(void)
1579 {
1580 if ((EDMA_GetChannelStatusFlags(DMA1, 0U) & (uint32_t)kEDMA_InterruptFlag) != 0U)
1581 {
1582 EDMA_HandleIRQ(s_EDMAHandle[8]);
1583 }
1584 if ((EDMA_GetChannelStatusFlags(DMA1, 4U) & (uint32_t)kEDMA_InterruptFlag) != 0U)
1585 {
1586 EDMA_HandleIRQ(s_EDMAHandle[12]);
1587 }
1588 SDK_ISR_EXIT_BARRIER;
1589 }
1590
1591 void DMA1_15_DriverIRQHandler(void);
1592 void DMA1_15_DriverIRQHandler(void)
1593 {
1594 if ((EDMA_GetChannelStatusFlags(DMA1, 1U) & (uint32_t)kEDMA_InterruptFlag) != 0U)
1595 {
1596 EDMA_HandleIRQ(s_EDMAHandle[9]);
1597 }
1598 if ((EDMA_GetChannelStatusFlags(DMA1, 5U) & (uint32_t)kEDMA_InterruptFlag) != 0U)
1599 {
1600 EDMA_HandleIRQ(s_EDMAHandle[13]);
1601 }
1602 SDK_ISR_EXIT_BARRIER;
1603 }
1604
1605 void DMA1_26_DriverIRQHandler(void);
1606 void DMA1_26_DriverIRQHandler(void)
1607 {
1608 if ((EDMA_GetChannelStatusFlags(DMA1, 2U) & (uint32_t)kEDMA_InterruptFlag) != 0U)
1609 {
1610 EDMA_HandleIRQ(s_EDMAHandle[10]);
1611 }
1612 if ((EDMA_GetChannelStatusFlags(DMA1, 6U) & (uint32_t)kEDMA_InterruptFlag) != 0U)
1613 {
1614 EDMA_HandleIRQ(s_EDMAHandle[14]);
1615 }
1616 SDK_ISR_EXIT_BARRIER;
1617 }
1618
1619 void DMA1_37_DriverIRQHandler(void);
1620 void DMA1_37_DriverIRQHandler(void)
1621 {
1622 if ((EDMA_GetChannelStatusFlags(DMA1, 3U) & (uint32_t)kEDMA_InterruptFlag) != 0U)
1623 {
1624 EDMA_HandleIRQ(s_EDMAHandle[11]);
1625 }
1626 if ((EDMA_GetChannelStatusFlags(DMA1, 7U) & (uint32_t)kEDMA_InterruptFlag) != 0U)
1627 {
1628 EDMA_HandleIRQ(s_EDMAHandle[15]);
1629 }
1630 SDK_ISR_EXIT_BARRIER;
1631 }
1632
1633 #else
1634 void DMA1_04_DriverIRQHandler(void);
1635 void DMA1_04_DriverIRQHandler(void)
1636 {
1637 if ((EDMA_GetChannelStatusFlags(DMA1, 0U) & (uint32_t)kEDMA_InterruptFlag) != 0U)
1638 {
1639 EDMA_HandleIRQ(s_EDMAHandle[0]);
1640 }
1641 if ((EDMA_GetChannelStatusFlags(DMA1, 4U) & (uint32_t)kEDMA_InterruptFlag) != 0U)
1642 {
1643 EDMA_HandleIRQ(s_EDMAHandle[4]);
1644 }
1645 SDK_ISR_EXIT_BARRIER;
1646 }
1647
1648 void DMA1_15_DriverIRQHandler(void);
1649 void DMA1_15_DriverIRQHandler(void)
1650 {
1651 if ((EDMA_GetChannelStatusFlags(DMA1, 1U) & (uint32_t)kEDMA_InterruptFlag) != 0U)
1652 {
1653 EDMA_HandleIRQ(s_EDMAHandle[1]);
1654 }
1655 if ((EDMA_GetChannelStatusFlags(DMA1, 5U) & (uint32_t)kEDMA_InterruptFlag) != 0U)
1656 {
1657 EDMA_HandleIRQ(s_EDMAHandle[5]);
1658 }
1659 SDK_ISR_EXIT_BARRIER;
1660 }
1661
1662 void DMA1_26_DriverIRQHandler(void);
1663 void DMA1_26_DriverIRQHandler(void)
1664 {
1665 if ((EDMA_GetChannelStatusFlags(DMA1, 2U) & (uint32_t)kEDMA_InterruptFlag) != 0U)
1666 {
1667 EDMA_HandleIRQ(s_EDMAHandle[2]);
1668 }
1669 if ((EDMA_GetChannelStatusFlags(DMA1, 6U) & (uint32_t)kEDMA_InterruptFlag) != 0U)
1670 {
1671 EDMA_HandleIRQ(s_EDMAHandle[6]);
1672 }
1673 SDK_ISR_EXIT_BARRIER;
1674 }
1675
1676 void DMA1_37_DriverIRQHandler(void);
1677 void DMA1_37_DriverIRQHandler(void)
1678 {
1679 if ((EDMA_GetChannelStatusFlags(DMA1, 3U) & (uint32_t)kEDMA_InterruptFlag) != 0U)
1680 {
1681 EDMA_HandleIRQ(s_EDMAHandle[3]);
1682 }
1683 if ((EDMA_GetChannelStatusFlags(DMA1, 7U) & (uint32_t)kEDMA_InterruptFlag) != 0U)
1684 {
1685 EDMA_HandleIRQ(s_EDMAHandle[7]);
1686 }
1687 SDK_ISR_EXIT_BARRIER;
1688 }
1689 #endif
1690 #endif
1691 #endif
1692 #endif
1693
1694 #if defined(FSL_FEATURE_EDMA_MODULE_CHANNEL_IRQ_ENTRY_SHARED_OFFSET) && \
1695 (FSL_FEATURE_EDMA_MODULE_CHANNEL_IRQ_ENTRY_SHARED_OFFSET == 8)
1696
1697 #if defined(FSL_FEATURE_EDMA_MODULE_CHANNEL) && (FSL_FEATURE_EDMA_MODULE_CHANNEL == 16U)
1698
1699 void DMA0_08_DriverIRQHandler(void);
1700 void DMA0_08_DriverIRQHandler(void)
1701 {
1702 if ((EDMA_GetChannelStatusFlags(DMA0, 0U) & (uint32_t)kEDMA_InterruptFlag) != 0U)
1703 {
1704 EDMA_HandleIRQ(s_EDMAHandle[0]);
1705 }
1706 if ((EDMA_GetChannelStatusFlags(DMA0, 8U) & (uint32_t)kEDMA_InterruptFlag) != 0U)
1707 {
1708 EDMA_HandleIRQ(s_EDMAHandle[8]);
1709 }
1710 SDK_ISR_EXIT_BARRIER;
1711 }
1712
1713 void DMA0_19_DriverIRQHandler(void);
1714 void DMA0_19_DriverIRQHandler(void)
1715 {
1716 if ((EDMA_GetChannelStatusFlags(DMA0, 1U) & (uint32_t)kEDMA_InterruptFlag) != 0U)
1717 {
1718 EDMA_HandleIRQ(s_EDMAHandle[1]);
1719 }
1720 if ((EDMA_GetChannelStatusFlags(DMA0, 9U) & (uint32_t)kEDMA_InterruptFlag) != 0U)
1721 {
1722 EDMA_HandleIRQ(s_EDMAHandle[9]);
1723 }
1724 SDK_ISR_EXIT_BARRIER;
1725 }
1726
1727 void DMA0_210_DriverIRQHandler(void);
1728 void DMA0_210_DriverIRQHandler(void)
1729 {
1730 if ((EDMA_GetChannelStatusFlags(DMA0, 2U) & (uint32_t)kEDMA_InterruptFlag) != 0U)
1731 {
1732 EDMA_HandleIRQ(s_EDMAHandle[2]);
1733 }
1734 if ((EDMA_GetChannelStatusFlags(DMA0, 10U) & (uint32_t)kEDMA_InterruptFlag) != 0U)
1735 {
1736 EDMA_HandleIRQ(s_EDMAHandle[10]);
1737 }
1738 SDK_ISR_EXIT_BARRIER;
1739 }
1740
1741 void DMA0_311_DriverIRQHandler(void);
1742 void DMA0_311_DriverIRQHandler(void)
1743 {
1744 if ((EDMA_GetChannelStatusFlags(DMA0, 3U) & (uint32_t)kEDMA_InterruptFlag) != 0U)
1745 {
1746 EDMA_HandleIRQ(s_EDMAHandle[3]);
1747 }
1748 if ((EDMA_GetChannelStatusFlags(DMA0, 11U) & (uint32_t)kEDMA_InterruptFlag) != 0U)
1749 {
1750 EDMA_HandleIRQ(s_EDMAHandle[11]);
1751 }
1752 SDK_ISR_EXIT_BARRIER;
1753 }
1754
1755 void DMA0_412_DriverIRQHandler(void);
1756 void DMA0_412_DriverIRQHandler(void)
1757 {
1758 if ((EDMA_GetChannelStatusFlags(DMA0, 4U) & (uint32_t)kEDMA_InterruptFlag) != 0U)
1759 {
1760 EDMA_HandleIRQ(s_EDMAHandle[4]);
1761 }
1762 if ((EDMA_GetChannelStatusFlags(DMA0, 12U) & (uint32_t)kEDMA_InterruptFlag) != 0U)
1763 {
1764 EDMA_HandleIRQ(s_EDMAHandle[12]);
1765 }
1766 SDK_ISR_EXIT_BARRIER;
1767 }
1768
1769 void DMA0_513_DriverIRQHandler(void);
1770 void DMA0_513_DriverIRQHandler(void)
1771 {
1772 if ((EDMA_GetChannelStatusFlags(DMA0, 5U) & (uint32_t)kEDMA_InterruptFlag) != 0U)
1773 {
1774 EDMA_HandleIRQ(s_EDMAHandle[5]);
1775 }
1776 if ((EDMA_GetChannelStatusFlags(DMA0, 13U) & (uint32_t)kEDMA_InterruptFlag) != 0U)
1777 {
1778 EDMA_HandleIRQ(s_EDMAHandle[13]);
1779 }
1780 SDK_ISR_EXIT_BARRIER;
1781 }
1782
1783 void DMA0_614_DriverIRQHandler(void);
1784 void DMA0_614_DriverIRQHandler(void)
1785 {
1786 if ((EDMA_GetChannelStatusFlags(DMA0, 6U) & (uint32_t)kEDMA_InterruptFlag) != 0U)
1787 {
1788 EDMA_HandleIRQ(s_EDMAHandle[6]);
1789 }
1790 if ((EDMA_GetChannelStatusFlags(DMA0, 14U) & (uint32_t)kEDMA_InterruptFlag) != 0U)
1791 {
1792 EDMA_HandleIRQ(s_EDMAHandle[14]);
1793 }
1794 SDK_ISR_EXIT_BARRIER;
1795 }
1796
1797 void DMA0_715_DriverIRQHandler(void);
1798 void DMA0_715_DriverIRQHandler(void)
1799 {
1800 if ((EDMA_GetChannelStatusFlags(DMA0, 7U) & (uint32_t)kEDMA_InterruptFlag) != 0U)
1801 {
1802 EDMA_HandleIRQ(s_EDMAHandle[7]);
1803 }
1804 if ((EDMA_GetChannelStatusFlags(DMA0, 15U) & (uint32_t)kEDMA_InterruptFlag) != 0U)
1805 {
1806 EDMA_HandleIRQ(s_EDMAHandle[15]);
1807 }
1808 SDK_ISR_EXIT_BARRIER;
1809 }
1810
1811 #if defined(DMA1)
1812 void DMA1_08_DriverIRQHandler(void);
1813 void DMA1_08_DriverIRQHandler(void)
1814 {
1815 if ((EDMA_GetChannelStatusFlags(DMA1, 0U) & (uint32_t)kEDMA_InterruptFlag) != 0U)
1816 {
1817 EDMA_HandleIRQ(s_EDMAHandle[16]);
1818 }
1819 if ((EDMA_GetChannelStatusFlags(DMA1, 8U) & (uint32_t)kEDMA_InterruptFlag) != 0U)
1820 {
1821 EDMA_HandleIRQ(s_EDMAHandle[24]);
1822 }
1823 SDK_ISR_EXIT_BARRIER;
1824 }
1825
1826 void DMA1_19_DriverIRQHandler(void);
1827 void DMA1_19_DriverIRQHandler(void)
1828 {
1829 if ((EDMA_GetChannelStatusFlags(DMA1, 1U) & (uint32_t)kEDMA_InterruptFlag) != 0U)
1830 {
1831 EDMA_HandleIRQ(s_EDMAHandle[17]);
1832 }
1833 if ((EDMA_GetChannelStatusFlags(DMA1, 9U) & (uint32_t)kEDMA_InterruptFlag) != 0U)
1834 {
1835 EDMA_HandleIRQ(s_EDMAHandle[25]);
1836 }
1837 SDK_ISR_EXIT_BARRIER;
1838 }
1839
1840 void DMA1_210_DriverIRQHandler(void);
1841 void DMA1_210_DriverIRQHandler(void)
1842 {
1843 if ((EDMA_GetChannelStatusFlags(DMA1, 2U) & (uint32_t)kEDMA_InterruptFlag) != 0U)
1844 {
1845 EDMA_HandleIRQ(s_EDMAHandle[18]);
1846 }
1847 if ((EDMA_GetChannelStatusFlags(DMA1, 10U) & (uint32_t)kEDMA_InterruptFlag) != 0U)
1848 {
1849 EDMA_HandleIRQ(s_EDMAHandle[26]);
1850 }
1851 SDK_ISR_EXIT_BARRIER;
1852 }
1853
1854 void DMA1_311_DriverIRQHandler(void);
1855 void DMA1_311_DriverIRQHandler(void)
1856 {
1857 if ((EDMA_GetChannelStatusFlags(DMA1, 3U) & (uint32_t)kEDMA_InterruptFlag) != 0U)
1858 {
1859 EDMA_HandleIRQ(s_EDMAHandle[19]);
1860 }
1861 if ((EDMA_GetChannelStatusFlags(DMA1, 11U) & (uint32_t)kEDMA_InterruptFlag) != 0U)
1862 {
1863 EDMA_HandleIRQ(s_EDMAHandle[27]);
1864 }
1865 SDK_ISR_EXIT_BARRIER;
1866 }
1867
1868 void DMA1_412_DriverIRQHandler(void);
1869 void DMA1_412_DriverIRQHandler(void)
1870 {
1871 if ((EDMA_GetChannelStatusFlags(DMA1, 4U) & (uint32_t)kEDMA_InterruptFlag) != 0U)
1872 {
1873 EDMA_HandleIRQ(s_EDMAHandle[20]);
1874 }
1875 if ((EDMA_GetChannelStatusFlags(DMA1, 12U) & (uint32_t)kEDMA_InterruptFlag) != 0U)
1876 {
1877 EDMA_HandleIRQ(s_EDMAHandle[28]);
1878 }
1879 SDK_ISR_EXIT_BARRIER;
1880 }
1881
1882 void DMA1_513_DriverIRQHandler(void);
1883 void DMA1_513_DriverIRQHandler(void)
1884 {
1885 if ((EDMA_GetChannelStatusFlags(DMA1, 5U) & (uint32_t)kEDMA_InterruptFlag) != 0U)
1886 {
1887 EDMA_HandleIRQ(s_EDMAHandle[21]);
1888 }
1889 if ((EDMA_GetChannelStatusFlags(DMA1, 13U) & (uint32_t)kEDMA_InterruptFlag) != 0U)
1890 {
1891 EDMA_HandleIRQ(s_EDMAHandle[29]);
1892 }
1893 SDK_ISR_EXIT_BARRIER;
1894 }
1895
1896 void DMA1_614_DriverIRQHandler(void);
1897 void DMA1_614_DriverIRQHandler(void)
1898 {
1899 if ((EDMA_GetChannelStatusFlags(DMA1, 6U) & (uint32_t)kEDMA_InterruptFlag) != 0U)
1900 {
1901 EDMA_HandleIRQ(s_EDMAHandle[22]);
1902 }
1903 if ((EDMA_GetChannelStatusFlags(DMA1, 14U) & (uint32_t)kEDMA_InterruptFlag) != 0U)
1904 {
1905 EDMA_HandleIRQ(s_EDMAHandle[30]);
1906 }
1907 SDK_ISR_EXIT_BARRIER;
1908 }
1909
1910 void DMA1_715_DriverIRQHandler(void);
1911 void DMA1_715_DriverIRQHandler(void)
1912 {
1913 if ((EDMA_GetChannelStatusFlags(DMA1, 7U) & (uint32_t)kEDMA_InterruptFlag) != 0U)
1914 {
1915 EDMA_HandleIRQ(s_EDMAHandle[23]);
1916 }
1917 if ((EDMA_GetChannelStatusFlags(DMA1, 15U) & (uint32_t)kEDMA_InterruptFlag) != 0U)
1918 {
1919 EDMA_HandleIRQ(s_EDMAHandle[31]);
1920 }
1921 SDK_ISR_EXIT_BARRIER;
1922 }
1923 #endif
1924 #endif
1925 #endif
1926
1927 #if defined(FSL_FEATURE_EDMA_MODULE_CHANNEL_IRQ_ENTRY_SHARED_OFFSET) && \
1928 (FSL_FEATURE_EDMA_MODULE_CHANNEL_IRQ_ENTRY_SHARED_OFFSET == 16)
1929
1930 #if defined(FSL_FEATURE_EDMA_MODULE_CHANNEL) && FSL_FEATURE_EDMA_MODULE_CHANNEL == 32U
1931 #if defined(DMA0)
1932 void DMA0_DMA16_DriverIRQHandler(void);
1933 void DMA0_DMA16_DriverIRQHandler(void)
1934 {
1935 if ((EDMA_GetChannelStatusFlags(DMA0, 0U) & (uint32_t)kEDMA_InterruptFlag) != 0U)
1936 {
1937 EDMA_HandleIRQ(s_EDMAHandle[0]);
1938 }
1939 if ((EDMA_GetChannelStatusFlags(DMA0, 16U) & (uint32_t)kEDMA_InterruptFlag) != 0U)
1940 {
1941 EDMA_HandleIRQ(s_EDMAHandle[16]);
1942 }
1943 SDK_ISR_EXIT_BARRIER;
1944 }
1945
1946 void DMA1_DMA17_DriverIRQHandler(void);
1947 void DMA1_DMA17_DriverIRQHandler(void)
1948 {
1949 if ((EDMA_GetChannelStatusFlags(DMA0, 1U) & (uint32_t)kEDMA_InterruptFlag) != 0U)
1950 {
1951 EDMA_HandleIRQ(s_EDMAHandle[1]);
1952 }
1953 if ((EDMA_GetChannelStatusFlags(DMA0, 17U) & (uint32_t)kEDMA_InterruptFlag) != 0U)
1954 {
1955 EDMA_HandleIRQ(s_EDMAHandle[17]);
1956 }
1957 SDK_ISR_EXIT_BARRIER;
1958 }
1959
1960 void DMA2_DMA18_DriverIRQHandler(void);
1961 void DMA2_DMA18_DriverIRQHandler(void)
1962 {
1963 if ((EDMA_GetChannelStatusFlags(DMA0, 2U) & (uint32_t)kEDMA_InterruptFlag) != 0U)
1964 {
1965 EDMA_HandleIRQ(s_EDMAHandle[2]);
1966 }
1967 if ((EDMA_GetChannelStatusFlags(DMA0, 18U) & (uint32_t)kEDMA_InterruptFlag) != 0U)
1968 {
1969 EDMA_HandleIRQ(s_EDMAHandle[18]);
1970 }
1971 SDK_ISR_EXIT_BARRIER;
1972 }
1973
1974 void DMA3_DMA19_DriverIRQHandler(void);
1975 void DMA3_DMA19_DriverIRQHandler(void)
1976 {
1977 if ((EDMA_GetChannelStatusFlags(DMA0, 3U) & (uint32_t)kEDMA_InterruptFlag) != 0U)
1978 {
1979 EDMA_HandleIRQ(s_EDMAHandle[3]);
1980 }
1981 if ((EDMA_GetChannelStatusFlags(DMA0, 19U) & (uint32_t)kEDMA_InterruptFlag) != 0U)
1982 {
1983 EDMA_HandleIRQ(s_EDMAHandle[19]);
1984 }
1985 SDK_ISR_EXIT_BARRIER;
1986 }
1987
1988 void DMA4_DMA20_DriverIRQHandler(void);
1989 void DMA4_DMA20_DriverIRQHandler(void)
1990 {
1991 if ((EDMA_GetChannelStatusFlags(DMA0, 4U) & (uint32_t)kEDMA_InterruptFlag) != 0U)
1992 {
1993 EDMA_HandleIRQ(s_EDMAHandle[4]);
1994 }
1995 if ((EDMA_GetChannelStatusFlags(DMA0, 20U) & (uint32_t)kEDMA_InterruptFlag) != 0U)
1996 {
1997 EDMA_HandleIRQ(s_EDMAHandle[20]);
1998 }
1999 SDK_ISR_EXIT_BARRIER;
2000 }
2001
2002 void DMA5_DMA21_DriverIRQHandler(void);
2003 void DMA5_DMA21_DriverIRQHandler(void)
2004 {
2005 if ((EDMA_GetChannelStatusFlags(DMA0, 5U) & (uint32_t)kEDMA_InterruptFlag) != 0U)
2006 {
2007 EDMA_HandleIRQ(s_EDMAHandle[5]);
2008 }
2009 if ((EDMA_GetChannelStatusFlags(DMA0, 21U) & (uint32_t)kEDMA_InterruptFlag) != 0U)
2010 {
2011 EDMA_HandleIRQ(s_EDMAHandle[21]);
2012 }
2013 SDK_ISR_EXIT_BARRIER;
2014 }
2015
2016 void DMA6_DMA22_DriverIRQHandler(void);
2017 void DMA6_DMA22_DriverIRQHandler(void)
2018 {
2019 if ((EDMA_GetChannelStatusFlags(DMA0, 6U) & (uint32_t)kEDMA_InterruptFlag) != 0U)
2020 {
2021 EDMA_HandleIRQ(s_EDMAHandle[6]);
2022 }
2023 if ((EDMA_GetChannelStatusFlags(DMA0, 22U) & (uint32_t)kEDMA_InterruptFlag) != 0U)
2024 {
2025 EDMA_HandleIRQ(s_EDMAHandle[22]);
2026 }
2027 SDK_ISR_EXIT_BARRIER;
2028 }
2029
2030 void DMA7_DMA23_DriverIRQHandler(void);
2031 void DMA7_DMA23_DriverIRQHandler(void)
2032 {
2033 if ((EDMA_GetChannelStatusFlags(DMA0, 7U) & (uint32_t)kEDMA_InterruptFlag) != 0U)
2034 {
2035 EDMA_HandleIRQ(s_EDMAHandle[7]);
2036 }
2037 if ((EDMA_GetChannelStatusFlags(DMA0, 23U) & (uint32_t)kEDMA_InterruptFlag) != 0U)
2038 {
2039 EDMA_HandleIRQ(s_EDMAHandle[23]);
2040 }
2041 SDK_ISR_EXIT_BARRIER;
2042 }
2043
2044 void DMA8_DMA24_DriverIRQHandler(void);
2045 void DMA8_DMA24_DriverIRQHandler(void)
2046 {
2047 if ((EDMA_GetChannelStatusFlags(DMA0, 8U) & (uint32_t)kEDMA_InterruptFlag) != 0U)
2048 {
2049 EDMA_HandleIRQ(s_EDMAHandle[8]);
2050 }
2051 if ((EDMA_GetChannelStatusFlags(DMA0, 24U) & (uint32_t)kEDMA_InterruptFlag) != 0U)
2052 {
2053 EDMA_HandleIRQ(s_EDMAHandle[24]);
2054 }
2055 SDK_ISR_EXIT_BARRIER;
2056 }
2057
2058 void DMA9_DMA25_DriverIRQHandler(void);
2059 void DMA9_DMA25_DriverIRQHandler(void)
2060 {
2061 if ((EDMA_GetChannelStatusFlags(DMA0, 9U) & (uint32_t)kEDMA_InterruptFlag) != 0U)
2062 {
2063 EDMA_HandleIRQ(s_EDMAHandle[9]);
2064 }
2065 if ((EDMA_GetChannelStatusFlags(DMA0, 25U) & (uint32_t)kEDMA_InterruptFlag) != 0U)
2066 {
2067 EDMA_HandleIRQ(s_EDMAHandle[25]);
2068 }
2069 SDK_ISR_EXIT_BARRIER;
2070 }
2071
2072 void DMA10_DMA26_DriverIRQHandler(void);
2073 void DMA10_DMA26_DriverIRQHandler(void)
2074 {
2075 if ((EDMA_GetChannelStatusFlags(DMA0, 10U) & (uint32_t)kEDMA_InterruptFlag) != 0U)
2076 {
2077 EDMA_HandleIRQ(s_EDMAHandle[10]);
2078 }
2079 if ((EDMA_GetChannelStatusFlags(DMA0, 26U) & (uint32_t)kEDMA_InterruptFlag) != 0U)
2080 {
2081 EDMA_HandleIRQ(s_EDMAHandle[26]);
2082 }
2083 SDK_ISR_EXIT_BARRIER;
2084 }
2085
2086 void DMA11_DMA27_DriverIRQHandler(void);
2087 void DMA11_DMA27_DriverIRQHandler(void)
2088 {
2089 if ((EDMA_GetChannelStatusFlags(DMA0, 11U) & (uint32_t)kEDMA_InterruptFlag) != 0U)
2090 {
2091 EDMA_HandleIRQ(s_EDMAHandle[11]);
2092 }
2093 if ((EDMA_GetChannelStatusFlags(DMA0, 27U) & (uint32_t)kEDMA_InterruptFlag) != 0U)
2094 {
2095 EDMA_HandleIRQ(s_EDMAHandle[27]);
2096 }
2097 SDK_ISR_EXIT_BARRIER;
2098 }
2099
2100 void DMA12_DMA28_DriverIRQHandler(void);
2101 void DMA12_DMA28_DriverIRQHandler(void)
2102 {
2103 if ((EDMA_GetChannelStatusFlags(DMA0, 12U) & (uint32_t)kEDMA_InterruptFlag) != 0U)
2104 {
2105 EDMA_HandleIRQ(s_EDMAHandle[12]);
2106 }
2107 if ((EDMA_GetChannelStatusFlags(DMA0, 28U) & (uint32_t)kEDMA_InterruptFlag) != 0U)
2108 {
2109 EDMA_HandleIRQ(s_EDMAHandle[28]);
2110 }
2111 SDK_ISR_EXIT_BARRIER;
2112 }
2113
2114 void DMA13_DMA29_DriverIRQHandler(void);
2115 void DMA13_DMA29_DriverIRQHandler(void)
2116 {
2117 if ((EDMA_GetChannelStatusFlags(DMA0, 13U) & (uint32_t)kEDMA_InterruptFlag) != 0U)
2118 {
2119 EDMA_HandleIRQ(s_EDMAHandle[13]);
2120 }
2121 if ((EDMA_GetChannelStatusFlags(DMA0, 29U) & (uint32_t)kEDMA_InterruptFlag) != 0U)
2122 {
2123 EDMA_HandleIRQ(s_EDMAHandle[29]);
2124 }
2125 SDK_ISR_EXIT_BARRIER;
2126 }
2127
2128 void DMA14_DMA30_DriverIRQHandler(void);
2129 void DMA14_DMA30_DriverIRQHandler(void)
2130 {
2131 if ((EDMA_GetChannelStatusFlags(DMA0, 14U) & (uint32_t)kEDMA_InterruptFlag) != 0U)
2132 {
2133 EDMA_HandleIRQ(s_EDMAHandle[14]);
2134 }
2135 if ((EDMA_GetChannelStatusFlags(DMA0, 30U) & (uint32_t)kEDMA_InterruptFlag) != 0U)
2136 {
2137 EDMA_HandleIRQ(s_EDMAHandle[30]);
2138 }
2139 SDK_ISR_EXIT_BARRIER;
2140 }
2141
2142 void DMA15_DMA31_DriverIRQHandler(void);
2143 void DMA15_DMA31_DriverIRQHandler(void)
2144 {
2145 if ((EDMA_GetChannelStatusFlags(DMA0, 15U) & (uint32_t)kEDMA_InterruptFlag) != 0U)
2146 {
2147 EDMA_HandleIRQ(s_EDMAHandle[15]);
2148 }
2149 if ((EDMA_GetChannelStatusFlags(DMA0, 31U) & (uint32_t)kEDMA_InterruptFlag) != 0U)
2150 {
2151 EDMA_HandleIRQ(s_EDMAHandle[31]);
2152 }
2153 SDK_ISR_EXIT_BARRIER;
2154 }
2155
2156 #else
2157 void DMA0_DMA16_DriverIRQHandler(void);
2158 void DMA0_DMA16_DriverIRQHandler(void)
2159 {
2160 if ((EDMA_GetChannelStatusFlags(DMA1, 0U) & (uint32_t)kEDMA_InterruptFlag) != 0U)
2161 {
2162 EDMA_HandleIRQ(s_EDMAHandle[0]);
2163 }
2164 if ((EDMA_GetChannelStatusFlags(DMA1, 16U) & (uint32_t)kEDMA_InterruptFlag) != 0U)
2165 {
2166 EDMA_HandleIRQ(s_EDMAHandle[16]);
2167 }
2168 SDK_ISR_EXIT_BARRIER;
2169 }
2170
2171 void DMA1_DMA17_DriverIRQHandler(void);
2172 void DMA1_DMA17_DriverIRQHandler(void)
2173 {
2174 if ((EDMA_GetChannelStatusFlags(DMA1, 1U) & (uint32_t)kEDMA_InterruptFlag) != 0U)
2175 {
2176 EDMA_HandleIRQ(s_EDMAHandle[1]);
2177 }
2178 if ((EDMA_GetChannelStatusFlags(DMA1, 17U) & (uint32_t)kEDMA_InterruptFlag) != 0U)
2179 {
2180 EDMA_HandleIRQ(s_EDMAHandle[17]);
2181 }
2182 SDK_ISR_EXIT_BARRIER;
2183 }
2184
2185 void DMA2_DMA18_DriverIRQHandler(void);
2186 void DMA2_DMA18_DriverIRQHandler(void)
2187 {
2188 if ((EDMA_GetChannelStatusFlags(DMA1, 2U) & (uint32_t)kEDMA_InterruptFlag) != 0U)
2189 {
2190 EDMA_HandleIRQ(s_EDMAHandle[2]);
2191 }
2192 if ((EDMA_GetChannelStatusFlags(DMA1, 18U) & (uint32_t)kEDMA_InterruptFlag) != 0U)
2193 {
2194 EDMA_HandleIRQ(s_EDMAHandle[18]);
2195 }
2196 SDK_ISR_EXIT_BARRIER;
2197 }
2198
2199 void DMA3_DMA19_DriverIRQHandler(void);
2200 void DMA3_DMA19_DriverIRQHandler(void)
2201 {
2202 if ((EDMA_GetChannelStatusFlags(DMA1, 3U) & (uint32_t)kEDMA_InterruptFlag) != 0U)
2203 {
2204 EDMA_HandleIRQ(s_EDMAHandle[3]);
2205 }
2206 if ((EDMA_GetChannelStatusFlags(DMA1, 19U) & (uint32_t)kEDMA_InterruptFlag) != 0U)
2207 {
2208 EDMA_HandleIRQ(s_EDMAHandle[19]);
2209 }
2210 SDK_ISR_EXIT_BARRIER;
2211 }
2212
2213 void DMA4_DMA20_DriverIRQHandler(void);
2214 void DMA4_DMA20_DriverIRQHandler(void)
2215 {
2216 if ((EDMA_GetChannelStatusFlags(DMA1, 4U) & (uint32_t)kEDMA_InterruptFlag) != 0U)
2217 {
2218 EDMA_HandleIRQ(s_EDMAHandle[4]);
2219 }
2220 if ((EDMA_GetChannelStatusFlags(DMA1, 20U) & (uint32_t)kEDMA_InterruptFlag) != 0U)
2221 {
2222 EDMA_HandleIRQ(s_EDMAHandle[20]);
2223 }
2224 SDK_ISR_EXIT_BARRIER;
2225 }
2226
2227 void DMA5_DMA21_DriverIRQHandler(void);
2228 void DMA5_DMA21_DriverIRQHandler(void)
2229 {
2230 if ((EDMA_GetChannelStatusFlags(DMA1, 5U) & (uint32_t)kEDMA_InterruptFlag) != 0U)
2231 {
2232 EDMA_HandleIRQ(s_EDMAHandle[5]);
2233 }
2234 if ((EDMA_GetChannelStatusFlags(DMA1, 21U) & (uint32_t)kEDMA_InterruptFlag) != 0U)
2235 {
2236 EDMA_HandleIRQ(s_EDMAHandle[21]);
2237 }
2238 SDK_ISR_EXIT_BARRIER;
2239 }
2240
2241 void DMA6_DMA22_DriverIRQHandler(void);
2242 void DMA6_DMA22_DriverIRQHandler(void)
2243 {
2244 if ((EDMA_GetChannelStatusFlags(DMA1, 6U) & (uint32_t)kEDMA_InterruptFlag) != 0U)
2245 {
2246 EDMA_HandleIRQ(s_EDMAHandle[6]);
2247 }
2248 if ((EDMA_GetChannelStatusFlags(DMA1, 22U) & (uint32_t)kEDMA_InterruptFlag) != 0U)
2249 {
2250 EDMA_HandleIRQ(s_EDMAHandle[22]);
2251 }
2252 SDK_ISR_EXIT_BARRIER;
2253 }
2254
2255 void DMA7_DMA23_DriverIRQHandler(void);
2256 void DMA7_DMA23_DriverIRQHandler(void)
2257 {
2258 if ((EDMA_GetChannelStatusFlags(DMA1, 7U) & (uint32_t)kEDMA_InterruptFlag) != 0U)
2259 {
2260 EDMA_HandleIRQ(s_EDMAHandle[7]);
2261 }
2262 if ((EDMA_GetChannelStatusFlags(DMA1, 23U) & (uint32_t)kEDMA_InterruptFlag) != 0U)
2263 {
2264 EDMA_HandleIRQ(s_EDMAHandle[23]);
2265 }
2266 SDK_ISR_EXIT_BARRIER;
2267 }
2268
2269 void DMA8_DMA24_DriverIRQHandler(void);
2270 void DMA8_DMA24_DriverIRQHandler(void)
2271 {
2272 if ((EDMA_GetChannelStatusFlags(DMA1, 8U) & (uint32_t)kEDMA_InterruptFlag) != 0U)
2273 {
2274 EDMA_HandleIRQ(s_EDMAHandle[8]);
2275 }
2276 if ((EDMA_GetChannelStatusFlags(DMA1, 24U) & (uint32_t)kEDMA_InterruptFlag) != 0U)
2277 {
2278 EDMA_HandleIRQ(s_EDMAHandle[24]);
2279 }
2280 SDK_ISR_EXIT_BARRIER;
2281 }
2282
2283 void DMA9_DMA25_DriverIRQHandler(void);
2284 void DMA9_DMA25_DriverIRQHandler(void)
2285 {
2286 if ((EDMA_GetChannelStatusFlags(DMA1, 9U) & (uint32_t)kEDMA_InterruptFlag) != 0U)
2287 {
2288 EDMA_HandleIRQ(s_EDMAHandle[9]);
2289 }
2290 if ((EDMA_GetChannelStatusFlags(DMA1, 25U) & (uint32_t)kEDMA_InterruptFlag) != 0U)
2291 {
2292 EDMA_HandleIRQ(s_EDMAHandle[25]);
2293 }
2294 SDK_ISR_EXIT_BARRIER;
2295 }
2296
2297 void DMA10_DMA26_DriverIRQHandler(void);
2298 void DMA10_DMA26_DriverIRQHandler(void)
2299 {
2300 if ((EDMA_GetChannelStatusFlags(DMA1, 10U) & (uint32_t)kEDMA_InterruptFlag) != 0U)
2301 {
2302 EDMA_HandleIRQ(s_EDMAHandle[10]);
2303 }
2304 if ((EDMA_GetChannelStatusFlags(DMA1, 26U) & (uint32_t)kEDMA_InterruptFlag) != 0U)
2305 {
2306 EDMA_HandleIRQ(s_EDMAHandle[26]);
2307 }
2308 SDK_ISR_EXIT_BARRIER;
2309 }
2310
2311 void DMA11_DMA27_DriverIRQHandler(void);
2312 void DMA11_DMA27_DriverIRQHandler(void)
2313 {
2314 if ((EDMA_GetChannelStatusFlags(DMA1, 11U) & (uint32_t)kEDMA_InterruptFlag) != 0U)
2315 {
2316 EDMA_HandleIRQ(s_EDMAHandle[11]);
2317 }
2318 if ((EDMA_GetChannelStatusFlags(DMA1, 27U) & (uint32_t)kEDMA_InterruptFlag) != 0U)
2319 {
2320 EDMA_HandleIRQ(s_EDMAHandle[27]);
2321 }
2322 SDK_ISR_EXIT_BARRIER;
2323 }
2324
2325 void DMA12_DMA28_DriverIRQHandler(void);
2326 void DMA12_DMA28_DriverIRQHandler(void)
2327 {
2328 if ((EDMA_GetChannelStatusFlags(DMA1, 12U) & (uint32_t)kEDMA_InterruptFlag) != 0U)
2329 {
2330 EDMA_HandleIRQ(s_EDMAHandle[12]);
2331 }
2332 if ((EDMA_GetChannelStatusFlags(DMA1, 28U) & (uint32_t)kEDMA_InterruptFlag) != 0U)
2333 {
2334 EDMA_HandleIRQ(s_EDMAHandle[28]);
2335 }
2336 SDK_ISR_EXIT_BARRIER;
2337 }
2338
2339 void DMA13_DMA29_DriverIRQHandler(void);
2340 void DMA13_DMA29_DriverIRQHandler(void)
2341 {
2342 if ((EDMA_GetChannelStatusFlags(DMA1, 13U) & (uint32_t)kEDMA_InterruptFlag) != 0U)
2343 {
2344 EDMA_HandleIRQ(s_EDMAHandle[13]);
2345 }
2346 if ((EDMA_GetChannelStatusFlags(DMA1, 29U) & (uint32_t)kEDMA_InterruptFlag) != 0U)
2347 {
2348 EDMA_HandleIRQ(s_EDMAHandle[29]);
2349 }
2350 SDK_ISR_EXIT_BARRIER;
2351 }
2352
2353 void DMA14_DMA30_DriverIRQHandler(void);
2354 void DMA14_DMA30_DriverIRQHandler(void)
2355 {
2356 if ((EDMA_GetChannelStatusFlags(DMA1, 14U) & (uint32_t)kEDMA_InterruptFlag) != 0U)
2357 {
2358 EDMA_HandleIRQ(s_EDMAHandle[14]);
2359 }
2360 if ((EDMA_GetChannelStatusFlags(DMA1, 30U) & (uint32_t)kEDMA_InterruptFlag) != 0U)
2361 {
2362 EDMA_HandleIRQ(s_EDMAHandle[30]);
2363 }
2364 SDK_ISR_EXIT_BARRIER;
2365 }
2366
2367 void DMA15_DMA31_DriverIRQHandler(void);
2368 void DMA15_DMA31_DriverIRQHandler(void)
2369 {
2370 if ((EDMA_GetChannelStatusFlags(DMA1, 15U) & (uint32_t)kEDMA_InterruptFlag) != 0U)
2371 {
2372 EDMA_HandleIRQ(s_EDMAHandle[15]);
2373 }
2374 if ((EDMA_GetChannelStatusFlags(DMA1, 31U) & (uint32_t)kEDMA_InterruptFlag) != 0U)
2375 {
2376 EDMA_HandleIRQ(s_EDMAHandle[31]);
2377 }
2378 SDK_ISR_EXIT_BARRIER;
2379 }
2380
2381 #endif
2382 #endif
2383 #endif
2384
2385 #if defined(FSL_FEATURE_EDMA_MODULE_CHANNEL_IRQ_ENTRY_SHARED_OFFSET) && \
2386 (FSL_FEATURE_EDMA_MODULE_CHANNEL_IRQ_ENTRY_SHARED_OFFSET == 4)
2387
2388 #if defined(FSL_FEATURE_EDMA_MODULE_CHANNEL) && (FSL_FEATURE_EDMA_MODULE_CHANNEL == 32U)
2389
2390 void DMA0_0_4_DriverIRQHandler(void);
2391 void DMA0_0_4_DriverIRQHandler(void)
2392 {
2393 if ((EDMA_GetChannelStatusFlags(DMA0, 0U) & (uint32_t)kEDMA_InterruptFlag) != 0U)
2394 {
2395 EDMA_HandleIRQ(s_EDMAHandle[0]);
2396 }
2397 if ((EDMA_GetChannelStatusFlags(DMA0, 4U) & (uint32_t)kEDMA_InterruptFlag) != 0U)
2398 {
2399 EDMA_HandleIRQ(s_EDMAHandle[4]);
2400 }
2401 SDK_ISR_EXIT_BARRIER;
2402 }
2403
2404 void DMA0_1_5_DriverIRQHandler(void);
2405 void DMA0_1_5_DriverIRQHandler(void)
2406 {
2407 if ((EDMA_GetChannelStatusFlags(DMA0, 1U) & (uint32_t)kEDMA_InterruptFlag) != 0U)
2408 {
2409 EDMA_HandleIRQ(s_EDMAHandle[1]);
2410 }
2411 if ((EDMA_GetChannelStatusFlags(DMA0, 5U) & (uint32_t)kEDMA_InterruptFlag) != 0U)
2412 {
2413 EDMA_HandleIRQ(s_EDMAHandle[5]);
2414 }
2415 SDK_ISR_EXIT_BARRIER;
2416 }
2417
2418 void DMA0_2_6_DriverIRQHandler(void);
2419 void DMA0_2_6_DriverIRQHandler(void)
2420 {
2421 if ((EDMA_GetChannelStatusFlags(DMA0, 2U) & (uint32_t)kEDMA_InterruptFlag) != 0U)
2422 {
2423 EDMA_HandleIRQ(s_EDMAHandle[2]);
2424 }
2425 if ((EDMA_GetChannelStatusFlags(DMA0, 6U) & (uint32_t)kEDMA_InterruptFlag) != 0U)
2426 {
2427 EDMA_HandleIRQ(s_EDMAHandle[6]);
2428 }
2429 SDK_ISR_EXIT_BARRIER;
2430 }
2431
2432 void DMA0_3_7_DriverIRQHandler(void);
2433 void DMA0_3_7_DriverIRQHandler(void)
2434 {
2435 if ((EDMA_GetChannelStatusFlags(DMA0, 3U) & (uint32_t)kEDMA_InterruptFlag) != 0U)
2436 {
2437 EDMA_HandleIRQ(s_EDMAHandle[3]);
2438 }
2439 if ((EDMA_GetChannelStatusFlags(DMA0, 7U) & (uint32_t)kEDMA_InterruptFlag) != 0U)
2440 {
2441 EDMA_HandleIRQ(s_EDMAHandle[7]);
2442 }
2443 SDK_ISR_EXIT_BARRIER;
2444 }
2445
2446 void DMA0_8_12_DriverIRQHandler(void);
2447 void DMA0_8_12_DriverIRQHandler(void)
2448 {
2449 if ((EDMA_GetChannelStatusFlags(DMA0, 8U) & (uint32_t)kEDMA_InterruptFlag) != 0U)
2450 {
2451 EDMA_HandleIRQ(s_EDMAHandle[8]);
2452 }
2453 if ((EDMA_GetChannelStatusFlags(DMA0, 12U) & (uint32_t)kEDMA_InterruptFlag) != 0U)
2454 {
2455 EDMA_HandleIRQ(s_EDMAHandle[12]);
2456 }
2457 SDK_ISR_EXIT_BARRIER;
2458 }
2459
2460 void DMA0_9_13_DriverIRQHandler(void);
2461 void DMA0_9_13_DriverIRQHandler(void)
2462 {
2463 if ((EDMA_GetChannelStatusFlags(DMA0, 9U) & (uint32_t)kEDMA_InterruptFlag) != 0U)
2464 {
2465 EDMA_HandleIRQ(s_EDMAHandle[9]);
2466 }
2467 if ((EDMA_GetChannelStatusFlags(DMA0, 13U) & (uint32_t)kEDMA_InterruptFlag) != 0U)
2468 {
2469 EDMA_HandleIRQ(s_EDMAHandle[13]);
2470 }
2471 SDK_ISR_EXIT_BARRIER;
2472 }
2473
2474 void DMA0_10_14_DriverIRQHandler(void);
2475 void DMA0_10_14_DriverIRQHandler(void)
2476 {
2477 if ((EDMA_GetChannelStatusFlags(DMA0, 10U) & (uint32_t)kEDMA_InterruptFlag) != 0U)
2478 {
2479 EDMA_HandleIRQ(s_EDMAHandle[10]);
2480 }
2481 if ((EDMA_GetChannelStatusFlags(DMA0, 14U) & (uint32_t)kEDMA_InterruptFlag) != 0U)
2482 {
2483 EDMA_HandleIRQ(s_EDMAHandle[14]);
2484 }
2485 SDK_ISR_EXIT_BARRIER;
2486 }
2487
2488 void DMA0_11_15_DriverIRQHandler(void);
2489 void DMA0_11_15_DriverIRQHandler(void)
2490 {
2491 if ((EDMA_GetChannelStatusFlags(DMA0, 11U) & (uint32_t)kEDMA_InterruptFlag) != 0U)
2492 {
2493 EDMA_HandleIRQ(s_EDMAHandle[11]);
2494 }
2495 if ((EDMA_GetChannelStatusFlags(DMA0, 15U) & (uint32_t)kEDMA_InterruptFlag) != 0U)
2496 {
2497 EDMA_HandleIRQ(s_EDMAHandle[15]);
2498 }
2499 SDK_ISR_EXIT_BARRIER;
2500 }
2501
2502 void DMA0_16_20_DriverIRQHandler(void);
2503 void DMA0_16_20_DriverIRQHandler(void)
2504 {
2505 if ((EDMA_GetChannelStatusFlags(DMA0, 16U) & (uint32_t)kEDMA_InterruptFlag) != 0U)
2506 {
2507 EDMA_HandleIRQ(s_EDMAHandle[16]);
2508 }
2509 if ((EDMA_GetChannelStatusFlags(DMA0, 20U) & (uint32_t)kEDMA_InterruptFlag) != 0U)
2510 {
2511 EDMA_HandleIRQ(s_EDMAHandle[20]);
2512 }
2513 SDK_ISR_EXIT_BARRIER;
2514 }
2515
2516 void DMA0_17_21_DriverIRQHandler(void);
2517 void DMA0_17_21_DriverIRQHandler(void)
2518 {
2519 if ((EDMA_GetChannelStatusFlags(DMA0, 17U) & (uint32_t)kEDMA_InterruptFlag) != 0U)
2520 {
2521 EDMA_HandleIRQ(s_EDMAHandle[17]);
2522 }
2523 if ((EDMA_GetChannelStatusFlags(DMA0, 21U) & (uint32_t)kEDMA_InterruptFlag) != 0U)
2524 {
2525 EDMA_HandleIRQ(s_EDMAHandle[21]);
2526 }
2527 SDK_ISR_EXIT_BARRIER;
2528 }
2529
2530 void DMA0_18_22_DriverIRQHandler(void);
2531 void DMA0_18_22_DriverIRQHandler(void)
2532 {
2533 if ((EDMA_GetChannelStatusFlags(DMA0, 18U) & (uint32_t)kEDMA_InterruptFlag) != 0U)
2534 {
2535 EDMA_HandleIRQ(s_EDMAHandle[18]);
2536 }
2537 if ((EDMA_GetChannelStatusFlags(DMA0, 22U) & (uint32_t)kEDMA_InterruptFlag) != 0U)
2538 {
2539 EDMA_HandleIRQ(s_EDMAHandle[22]);
2540 }
2541 SDK_ISR_EXIT_BARRIER;
2542 }
2543
2544 void DMA0_19_23_DriverIRQHandler(void);
2545 void DMA0_19_23_DriverIRQHandler(void)
2546 {
2547 if ((EDMA_GetChannelStatusFlags(DMA0, 19U) & (uint32_t)kEDMA_InterruptFlag) != 0U)
2548 {
2549 EDMA_HandleIRQ(s_EDMAHandle[19]);
2550 }
2551 if ((EDMA_GetChannelStatusFlags(DMA0, 23U) & (uint32_t)kEDMA_InterruptFlag) != 0U)
2552 {
2553 EDMA_HandleIRQ(s_EDMAHandle[23]);
2554 }
2555 SDK_ISR_EXIT_BARRIER;
2556 }
2557
2558 void DMA0_24_28_DriverIRQHandler(void);
2559 void DMA0_24_28_DriverIRQHandler(void)
2560 {
2561 if ((EDMA_GetChannelStatusFlags(DMA0, 24U) & (uint32_t)kEDMA_InterruptFlag) != 0U)
2562 {
2563 EDMA_HandleIRQ(s_EDMAHandle[24]);
2564 }
2565 if ((EDMA_GetChannelStatusFlags(DMA0, 28U) & (uint32_t)kEDMA_InterruptFlag) != 0U)
2566 {
2567 EDMA_HandleIRQ(s_EDMAHandle[28]);
2568 }
2569 SDK_ISR_EXIT_BARRIER;
2570 }
2571
2572 void DMA0_25_29_DriverIRQHandler(void);
2573 void DMA0_25_29_DriverIRQHandler(void)
2574 {
2575 if ((EDMA_GetChannelStatusFlags(DMA0, 25U) & (uint32_t)kEDMA_InterruptFlag) != 0U)
2576 {
2577 EDMA_HandleIRQ(s_EDMAHandle[25]);
2578 }
2579 if ((EDMA_GetChannelStatusFlags(DMA0, 29U) & (uint32_t)kEDMA_InterruptFlag) != 0U)
2580 {
2581 EDMA_HandleIRQ(s_EDMAHandle[29]);
2582 }
2583 SDK_ISR_EXIT_BARRIER;
2584 }
2585
2586 void DMA0_26_30_DriverIRQHandler(void);
2587 void DMA0_26_30_DriverIRQHandler(void)
2588 {
2589 if ((EDMA_GetChannelStatusFlags(DMA0, 26U) & (uint32_t)kEDMA_InterruptFlag) != 0U)
2590 {
2591 EDMA_HandleIRQ(s_EDMAHandle[26]);
2592 }
2593 if ((EDMA_GetChannelStatusFlags(DMA0, 30U) & (uint32_t)kEDMA_InterruptFlag) != 0U)
2594 {
2595 EDMA_HandleIRQ(s_EDMAHandle[30]);
2596 }
2597 SDK_ISR_EXIT_BARRIER;
2598 }
2599
2600 void DMA0_27_31_DriverIRQHandler(void);
2601 void DMA0_27_31_DriverIRQHandler(void)
2602 {
2603 if ((EDMA_GetChannelStatusFlags(DMA0, 27U) & (uint32_t)kEDMA_InterruptFlag) != 0U)
2604 {
2605 EDMA_HandleIRQ(s_EDMAHandle[27]);
2606 }
2607 if ((EDMA_GetChannelStatusFlags(DMA0, 31U) & (uint32_t)kEDMA_InterruptFlag) != 0U)
2608 {
2609 EDMA_HandleIRQ(s_EDMAHandle[31]);
2610 }
2611 SDK_ISR_EXIT_BARRIER;
2612 }
2613 #endif
2614 #endif
2615
2616 #if defined(FSL_FEATURE_EDMA_MODULE_CHANNEL_IRQ_ENTRY_SHARED_OFFSET) && \
2617 (FSL_FEATURE_EDMA_MODULE_CHANNEL_IRQ_ENTRY_SHARED_OFFSET == 0)
2618
2619 #if defined(FSL_FEATURE_EDMA_MODULE_CHANNEL) && (FSL_FEATURE_EDMA_MODULE_CHANNEL > 0)
2620
2621 void DMA0_DriverIRQHandler(void);
2622 void DMA0_DriverIRQHandler(void)
2623 {
2624 EDMA_HandleIRQ(s_EDMAHandle[0]);
2625 SDK_ISR_EXIT_BARRIER;
2626 }
2627
2628 void DMA1_DriverIRQHandler(void);
2629 void DMA1_DriverIRQHandler(void)
2630 {
2631 EDMA_HandleIRQ(s_EDMAHandle[1]);
2632 SDK_ISR_EXIT_BARRIER;
2633 }
2634
2635 void DMA2_DriverIRQHandler(void);
2636 void DMA2_DriverIRQHandler(void)
2637 {
2638 EDMA_HandleIRQ(s_EDMAHandle[2]);
2639 SDK_ISR_EXIT_BARRIER;
2640 }
2641
2642 void DMA3_DriverIRQHandler(void);
2643 void DMA3_DriverIRQHandler(void)
2644 {
2645 EDMA_HandleIRQ(s_EDMAHandle[3]);
2646 SDK_ISR_EXIT_BARRIER;
2647 }
2648
2649
2650 #if defined(FSL_FEATURE_EDMA_MODULE_CHANNEL) && (FSL_FEATURE_EDMA_MODULE_CHANNEL > 4U)
2651
2652 void DMA4_DriverIRQHandler(void);
2653 void DMA4_DriverIRQHandler(void)
2654 {
2655 EDMA_HandleIRQ(s_EDMAHandle[4]);
2656 SDK_ISR_EXIT_BARRIER;
2657 }
2658
2659 void DMA5_DriverIRQHandler(void);
2660 void DMA5_DriverIRQHandler(void)
2661 {
2662 EDMA_HandleIRQ(s_EDMAHandle[5]);
2663 SDK_ISR_EXIT_BARRIER;
2664 }
2665
2666 void DMA6_DriverIRQHandler(void);
2667 void DMA6_DriverIRQHandler(void)
2668 {
2669 EDMA_HandleIRQ(s_EDMAHandle[6]);
2670 SDK_ISR_EXIT_BARRIER;
2671 }
2672
2673 void DMA7_DriverIRQHandler(void);
2674 void DMA7_DriverIRQHandler(void)
2675 {
2676 EDMA_HandleIRQ(s_EDMAHandle[7]);
2677 SDK_ISR_EXIT_BARRIER;
2678 }
2679 #endif
2680
2681
2682 #if defined(FSL_FEATURE_EDMA_MODULE_CHANNEL) && (FSL_FEATURE_EDMA_MODULE_CHANNEL > 8U)
2683
2684 void DMA8_DriverIRQHandler(void);
2685 void DMA8_DriverIRQHandler(void)
2686 {
2687 EDMA_HandleIRQ(s_EDMAHandle[8]);
2688 SDK_ISR_EXIT_BARRIER;
2689 }
2690
2691 void DMA9_DriverIRQHandler(void);
2692 void DMA9_DriverIRQHandler(void)
2693 {
2694 EDMA_HandleIRQ(s_EDMAHandle[9]);
2695 SDK_ISR_EXIT_BARRIER;
2696 }
2697
2698 void DMA10_DriverIRQHandler(void);
2699 void DMA10_DriverIRQHandler(void)
2700 {
2701 EDMA_HandleIRQ(s_EDMAHandle[10]);
2702 SDK_ISR_EXIT_BARRIER;
2703 }
2704
2705 void DMA11_DriverIRQHandler(void);
2706 void DMA11_DriverIRQHandler(void)
2707 {
2708 EDMA_HandleIRQ(s_EDMAHandle[11]);
2709 SDK_ISR_EXIT_BARRIER;
2710 }
2711
2712 void DMA12_DriverIRQHandler(void);
2713 void DMA12_DriverIRQHandler(void)
2714 {
2715 EDMA_HandleIRQ(s_EDMAHandle[12]);
2716 SDK_ISR_EXIT_BARRIER;
2717 }
2718
2719 void DMA13_DriverIRQHandler(void);
2720 void DMA13_DriverIRQHandler(void)
2721 {
2722 EDMA_HandleIRQ(s_EDMAHandle[13]);
2723 SDK_ISR_EXIT_BARRIER;
2724 }
2725
2726 void DMA14_DriverIRQHandler(void);
2727 void DMA14_DriverIRQHandler(void)
2728 {
2729 EDMA_HandleIRQ(s_EDMAHandle[14]);
2730 SDK_ISR_EXIT_BARRIER;
2731 }
2732
2733 void DMA15_DriverIRQHandler(void);
2734 void DMA15_DriverIRQHandler(void)
2735 {
2736 EDMA_HandleIRQ(s_EDMAHandle[15]);
2737 SDK_ISR_EXIT_BARRIER;
2738 }
2739 #endif
2740
2741
2742 #if defined(FSL_FEATURE_EDMA_MODULE_CHANNEL) && (FSL_FEATURE_EDMA_MODULE_CHANNEL > 16U)
2743
2744 void DMA16_DriverIRQHandler(void);
2745 void DMA16_DriverIRQHandler(void)
2746 {
2747 EDMA_HandleIRQ(s_EDMAHandle[16]);
2748 SDK_ISR_EXIT_BARRIER;
2749 }
2750
2751 void DMA17_DriverIRQHandler(void);
2752 void DMA17_DriverIRQHandler(void)
2753 {
2754 EDMA_HandleIRQ(s_EDMAHandle[17]);
2755 SDK_ISR_EXIT_BARRIER;
2756 }
2757
2758 void DMA18_DriverIRQHandler(void);
2759 void DMA18_DriverIRQHandler(void)
2760 {
2761 EDMA_HandleIRQ(s_EDMAHandle[18]);
2762 SDK_ISR_EXIT_BARRIER;
2763 }
2764
2765 void DMA19_DriverIRQHandler(void);
2766 void DMA19_DriverIRQHandler(void)
2767 {
2768 EDMA_HandleIRQ(s_EDMAHandle[19]);
2769 SDK_ISR_EXIT_BARRIER;
2770 }
2771
2772 void DMA20_DriverIRQHandler(void);
2773 void DMA20_DriverIRQHandler(void)
2774 {
2775 EDMA_HandleIRQ(s_EDMAHandle[20]);
2776 SDK_ISR_EXIT_BARRIER;
2777 }
2778
2779 void DMA21_DriverIRQHandler(void);
2780 void DMA21_DriverIRQHandler(void)
2781 {
2782 EDMA_HandleIRQ(s_EDMAHandle[21]);
2783 SDK_ISR_EXIT_BARRIER;
2784 }
2785
2786 void DMA22_DriverIRQHandler(void);
2787 void DMA22_DriverIRQHandler(void)
2788 {
2789 EDMA_HandleIRQ(s_EDMAHandle[22]);
2790 SDK_ISR_EXIT_BARRIER;
2791 }
2792
2793 void DMA23_DriverIRQHandler(void);
2794 void DMA23_DriverIRQHandler(void)
2795 {
2796 EDMA_HandleIRQ(s_EDMAHandle[23]);
2797 SDK_ISR_EXIT_BARRIER;
2798 }
2799
2800 void DMA24_DriverIRQHandler(void);
2801 void DMA24_DriverIRQHandler(void)
2802 {
2803 EDMA_HandleIRQ(s_EDMAHandle[24]);
2804 SDK_ISR_EXIT_BARRIER;
2805 }
2806
2807 void DMA25_DriverIRQHandler(void);
2808 void DMA25_DriverIRQHandler(void)
2809 {
2810 EDMA_HandleIRQ(s_EDMAHandle[25]);
2811 SDK_ISR_EXIT_BARRIER;
2812 }
2813
2814 void DMA26_DriverIRQHandler(void);
2815 void DMA26_DriverIRQHandler(void)
2816 {
2817 EDMA_HandleIRQ(s_EDMAHandle[26]);
2818 SDK_ISR_EXIT_BARRIER;
2819 }
2820
2821 void DMA27_DriverIRQHandler(void);
2822 void DMA27_DriverIRQHandler(void)
2823 {
2824 EDMA_HandleIRQ(s_EDMAHandle[27]);
2825 SDK_ISR_EXIT_BARRIER;
2826 }
2827
2828 void DMA28_DriverIRQHandler(void);
2829 void DMA28_DriverIRQHandler(void)
2830 {
2831 EDMA_HandleIRQ(s_EDMAHandle[28]);
2832 SDK_ISR_EXIT_BARRIER;
2833 }
2834
2835 void DMA29_DriverIRQHandler(void);
2836 void DMA29_DriverIRQHandler(void)
2837 {
2838 EDMA_HandleIRQ(s_EDMAHandle[29]);
2839 SDK_ISR_EXIT_BARRIER;
2840 }
2841
2842 void DMA30_DriverIRQHandler(void);
2843 void DMA30_DriverIRQHandler(void)
2844 {
2845 EDMA_HandleIRQ(s_EDMAHandle[30]);
2846 SDK_ISR_EXIT_BARRIER;
2847 }
2848
2849 void DMA31_DriverIRQHandler(void);
2850 void DMA31_DriverIRQHandler(void)
2851 {
2852 EDMA_HandleIRQ(s_EDMAHandle[31]);
2853 SDK_ISR_EXIT_BARRIER;
2854 }
2855 #endif
2856
2857 #endif
2858 #endif