Fixes error in DMA irq handling
This commit is contained in:
parent
e3cbff148e
commit
7245c79dce
|
@ -89,8 +89,9 @@ typedef enum {
|
||||||
}
|
}
|
||||||
|
|
||||||
#define DEFINE_DMA_IRQ_HANDLER(d, s, i) void DMA ## d ## _Stream ## s ## _IRQHandler(void) {\
|
#define DEFINE_DMA_IRQ_HANDLER(d, s, i) void DMA ## d ## _Stream ## s ## _IRQHandler(void) {\
|
||||||
if (dmaDescriptors[i].irqHandlerCallback)\
|
const uint8_t index = DMA_IDENTIFIER_TO_INDEX(i); \
|
||||||
dmaDescriptors[i].irqHandlerCallback(&dmaDescriptors[i]);\
|
if (dmaDescriptors[index].irqHandlerCallback)\
|
||||||
|
dmaDescriptors[index].irqHandlerCallback(&dmaDescriptors[index]);\
|
||||||
}
|
}
|
||||||
|
|
||||||
#define DMA_CLEAR_FLAG(d, flag) if (d->flagsShift > 31) d->dma->HIFCR = (flag << (d->flagsShift - 32)); else d->dma->LIFCR = (flag << d->flagsShift)
|
#define DMA_CLEAR_FLAG(d, flag) if (d->flagsShift > 31) d->dma->HIFCR = (flag << (d->flagsShift - 32)); else d->dma->LIFCR = (flag << d->flagsShift)
|
||||||
|
@ -149,8 +150,9 @@ typedef enum {
|
||||||
}
|
}
|
||||||
|
|
||||||
#define DEFINE_DMA_IRQ_HANDLER(d, c, i) void DMA ## d ## _Channel ## c ## _IRQHandler(void) {\
|
#define DEFINE_DMA_IRQ_HANDLER(d, c, i) void DMA ## d ## _Channel ## c ## _IRQHandler(void) {\
|
||||||
if (dmaDescriptors[i].irqHandlerCallback)\
|
const uint8_t index = DMA_IDENTIFIER_TO_INDEX(i); \
|
||||||
dmaDescriptors[i].irqHandlerCallback(&dmaDescriptors[i]);\
|
if (dmaDescriptors[index].irqHandlerCallback)\
|
||||||
|
dmaDescriptors[index].irqHandlerCallback(&dmaDescriptors[index]);\
|
||||||
}
|
}
|
||||||
|
|
||||||
#define DMA_CLEAR_FLAG(d, flag) d->dma->IFCR = (flag << d->flagsShift)
|
#define DMA_CLEAR_FLAG(d, flag) d->dma->IFCR = (flag << d->flagsShift)
|
||||||
|
|
Loading…
Reference in New Issue