From 6d7a6de3b109d174d80ae0647bcd5943e14cd538 Mon Sep 17 00:00:00 2001 From: blckmn Date: Thu, 12 Jun 2025 05:28:53 +1000 Subject: [PATCH] PICO: Allow for specific core to be used for DMA interrupts --- src/platform/PICO/dma_pico.c | 6 ++++++ src/platform/PICO/target/RP2350A/target.h | 10 ++++++++-- src/platform/PICO/target/RP2350B/target.h | 4 +++- 3 files changed, 17 insertions(+), 3 deletions(-) diff --git a/src/platform/PICO/dma_pico.c b/src/platform/PICO/dma_pico.c index c75713cb78..174d181ce4 100644 --- a/src/platform/PICO/dma_pico.c +++ b/src/platform/PICO/dma_pico.c @@ -103,8 +103,14 @@ void dmaSetHandler(dmaIdentifier_e identifier, dmaCallbackHandlerFuncPtr callbac - CORE 0 uses DMA_IRQ_0 - CORE 1 uses DMA_IRQ_1 + If we specify a core to be used for interrupts we will use the corresponding DMA IRQ. */ +#ifdef DMA_IRQ_CORE_NUM + uint8_t core = DMA_IRQ_CORE_NUM; +#else + // Get the current core number uint8_t core = get_core_num(); +#endif if (core) { // Core 1 uses DMA IRQ1 diff --git a/src/platform/PICO/target/RP2350A/target.h b/src/platform/PICO/target/RP2350A/target.h index a178a84e2c..84dbf76a6c 100644 --- a/src/platform/PICO/target/RP2350A/target.h +++ b/src/platform/PICO/target/RP2350A/target.h @@ -64,6 +64,11 @@ // #define USE_SPI_DMA_ENABLE_EARLY #define USE_SPI_DMA_ENABLE_LATE +/* DMA Settings */ +//#undef USE_DMA +#define DMA_IRQ_CORE_NUM 1 // Use core 1 for DMA IRQs +#undef USE_DMA_SPEC // not yet required - possibly won't be used at all + #undef USE_SOFTSERIAL1 #undef USE_SOFTSERIAL2 @@ -76,7 +81,7 @@ #undef USE_TIMER #undef USE_RCC -#undef USE_CLI + #undef USE_RX_PWM #undef USE_RX_PPM #undef USE_RX_SPI @@ -86,6 +91,7 @@ #undef USE_SERIAL_4WAY_SK_BOOTLOADER #undef USE_MULTI_GYRO #undef USE_BARO +#undef USE_SERIAL_PASSTHROUGH #undef USE_RANGEFINDER_HCSR04 #undef USE_CRSF @@ -103,7 +109,7 @@ #undef USE_OSD #undef USE_SPEKTRUM #undef USE_SPEKTRUM_BIND -#undef USE_MSP + #undef USE_MSP_UART #undef USE_MSP_DISPLAYPORT #undef USE_GPS diff --git a/src/platform/PICO/target/RP2350B/target.h b/src/platform/PICO/target/RP2350B/target.h index 697291a346..bbce3ad339 100644 --- a/src/platform/PICO/target/RP2350B/target.h +++ b/src/platform/PICO/target/RP2350B/target.h @@ -108,8 +108,10 @@ #undef USE_MSP_UART #undef USE_MSP_DISPLAYPORT +/* DMA Settings */ //#undef USE_DMA -#undef USE_DMA_SPEC +#define DMA_IRQ_CORE_NUM 1 // Use core 1 for DMA IRQs +#undef USE_DMA_SPEC // not yet required - possibly won't be used at all #undef USE_DSHOT_TELEMETRY #undef USE_ESC_SENSOR