diff --git a/src/main/drivers/dma.c b/src/main/drivers/dma.c index c128ac1ac8..5521183adf 100644 --- a/src/main/drivers/dma.c +++ b/src/main/drivers/dma.c @@ -52,6 +52,7 @@ static dmaChannelDescriptor_t dmaDescriptors[DMA_LAST_HANDLER] = { /* * DMA IRQ Handlers */ + DEFINE_DMA_IRQ_HANDLER(1, 1, DMA1_CH1_HANDLER) DEFINE_DMA_IRQ_HANDLER(1, 2, DMA1_CH2_HANDLER) DEFINE_DMA_IRQ_HANDLER(1, 3, DMA1_CH3_HANDLER) diff --git a/src/main/drivers/dma.h b/src/main/drivers/dma.h index 691ea86d33..a865907248 100644 --- a/src/main/drivers/dma.h +++ b/src/main/drivers/dma.h @@ -168,7 +168,13 @@ typedef enum { .owner.resourceIndex = 0 \ } -#define DEFINE_DMA_IRQ_HANDLER(d, c, i) void DMA ## d ## _Channel ## c ## _IRQHandler(void) {\ +#if defined(USE_CCM_CODE) && defined(STM32F3) +#define DMA_HANDLER_CODE CCM_CODE +#else +#define DMA_HANDLER_CODE +#endif + +#define DEFINE_DMA_IRQ_HANDLER(d, c, i) DMA_HANDLER_CODE void DMA ## d ## _Channel ## c ## _IRQHandler(void) {\ const uint8_t index = DMA_IDENTIFIER_TO_INDEX(i); \ dmaCallbackHandlerFuncPtr handler = dmaDescriptors[index].irqHandlerCallback; \ if (handler) \