mirror of
https://github.com/betaflight/betaflight.git
synced 2025-07-12 19:10:32 +03:00
PICO: Enabling DMA IRQ Channel
This commit is contained in:
parent
635b3c2de4
commit
6a95d4e13f
1 changed files with 9 additions and 4 deletions
|
@ -105,18 +105,22 @@ void dmaSetHandler(dmaIdentifier_e identifier, dmaCallbackHandlerFuncPtr callbac
|
||||||
|
|
||||||
If we specify a core to be used for interrupts we will use the corresponding DMA IRQ.
|
If we specify a core to be used for interrupts we will use the corresponding DMA IRQ.
|
||||||
*/
|
*/
|
||||||
#ifdef DMA_IRQ_CORE_NUM
|
#if defined(USE_MULTICORE) && defined(DMA_IRQ_CORE_NUM)
|
||||||
uint8_t core = DMA_IRQ_CORE_NUM;
|
const uint8_t core = DMA_IRQ_CORE_NUM;
|
||||||
#else
|
#elif defined(USE_MULTICORE)
|
||||||
// Get the current core number
|
// Get the current core number
|
||||||
uint8_t core = get_core_num();
|
const uint8_t core = get_core_num();
|
||||||
|
#else
|
||||||
|
const uint8_t core = 0;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
const uint32_t channel = dmaDescriptors[identifier].channel;
|
||||||
if (core) {
|
if (core) {
|
||||||
// Core 1 uses DMA IRQ1
|
// Core 1 uses DMA IRQ1
|
||||||
if (!dma_irq1_handler_registered) {
|
if (!dma_irq1_handler_registered) {
|
||||||
irq_set_exclusive_handler(DMA_IRQ_1, dma_irq1_handler);
|
irq_set_exclusive_handler(DMA_IRQ_1, dma_irq1_handler);
|
||||||
irq_set_enabled(DMA_IRQ_1, true);
|
irq_set_enabled(DMA_IRQ_1, true);
|
||||||
|
dma_channel_set_irq1_enabled(channel, true);
|
||||||
dma_irq1_handler_registered = true;
|
dma_irq1_handler_registered = true;
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
|
@ -124,6 +128,7 @@ void dmaSetHandler(dmaIdentifier_e identifier, dmaCallbackHandlerFuncPtr callbac
|
||||||
if (!dma_irq0_handler_registered) {
|
if (!dma_irq0_handler_registered) {
|
||||||
irq_set_exclusive_handler(DMA_IRQ_0, dma_irq0_handler);
|
irq_set_exclusive_handler(DMA_IRQ_0, dma_irq0_handler);
|
||||||
irq_set_enabled(DMA_IRQ_0, true);
|
irq_set_enabled(DMA_IRQ_0, true);
|
||||||
|
dma_channel_set_irq0_enabled(channel, true);
|
||||||
dma_irq0_handler_registered = true;
|
dma_irq0_handler_registered = true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue