Merge pull request #9520 from tannewt/rp2350_audio_crash

Switch to pico-sdk style interrupt names.
This commit is contained in:
Dan Halbert 2024-08-14 12:58:54 -04:00 committed by GitHub
commit 26f682d83a
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
5 changed files with 14 additions and 37 deletions

View file

@ -145,7 +145,10 @@ $(INC_CYW43) \
# Pico specific configuration
CFLAGS += \
-DRASPBERRYPI \
-DLIB_PICO_MULTICORE=1 \
-DPICO_NO_HARDWARE=0 \
-DPICO_ON_DEVICE=1 \
-DPICO_BUILD=1 \
-DPICO_NO_BINARY_INFO=0 \
-DPICO_TIME_DEFAULT_ALARM_POOL_DISABLED=0 \
-DPICO_DIVIDER_CALL_IDIV0=0 \
@ -153,7 +156,6 @@ CFLAGS += \
-DPICO_DIVIDER_HARDWARE=1 \
-DPICO_DOUBLE_ROM=1 \
-DPICO_FLOAT_ROM=1 \
-DLIB_PICO_MULTICORE=1 \
-DPICO_BITS_IN_RAM=0 \
-DPICO_DIVIDER_IN_RAM=0 \
-DPICO_DOUBLE_PROPAGATE_NANS=0 \
@ -177,7 +179,9 @@ CFLAGS += \
-DCFG_TUD_CDC_RX_BUFSIZE=256 \
-DCFG_TUD_MIDI_TX_BUFSIZE=128 \
-DCFG_TUD_CDC_TX_BUFSIZE=256 \
-DCFG_TUD_MSC_BUFSIZE=1024
-DCFG_TUD_MSC_BUFSIZE=1024 \
-DPICO_RP2040_USB_DEVICE_UFRAME_FIX=1 \
-DPICO_RP2040_USB_DEVICE_ENUMERATION_FIX=1 \
# option to override default optimization level, set in boards/$(BOARD)/mpconfigboard.mk
CFLAGS += $(OPTIMIZATION_FLAGS)

View file

@ -16,6 +16,8 @@
#include "py/runtime.h"
#include "src/rp2_common/hardware_irq/include/hardware/irq.h"
#include "hardware/regs/intctrl.h" // For isr_ macro.
#if CIRCUITPY_AUDIOCORE
@ -459,7 +461,7 @@ static void dma_callback_fun(void *arg) {
}
}
void isr_dma_0(void) {
void __not_in_flash_func(isr_dma_0)(void) {
for (size_t i = 0; i < NUM_DMA_CHANNELS; i++) {
uint32_t mask = 1 << i;
if ((dma_hw->intr & mask) == 0) {

View file

@ -1,32 +1,3 @@
#pragma once
#include "pico-sdk-configboard.h"
// alphabetized
#define LIB_CMSIS_CORE (1)
#define LIB_PICO_BINARY_INFO (0)
#define LIB_PICO_PRINTF_NONE (0)
#define LIB_PICO_PRINTF_PICO (0)
#define LIB_PICO_STDIO_SEMIHOSTING (0)
#define LIB_PICO_STDIO_UART (0)
#define LIB_PICO_STDIO_USB (0)
#define PICO_DIVIDER_DISABLE_INTERRUPTS (0)
#define PICO_DOUBLE_SUPPORT_ROM_V1 (1)
#define PICO_ENTER_USB_BOOT_ON_EXIT (0)
#define PICO_FLOAT_SUPPORT_ROM_V1 (1)
#define PICO_IE_26_29_UNCHANGED_ON_RESET (0)
#define PICO_INT64_OPS_IN_RAM (0)
#define PICO_NO_HARDWARE (0)
#define PICO_ON_DEVICE (1)
#define PICO_PRINTF_ALWAYS_INCLUDED (1)
#define PICO_RP2040_USB_DEVICE_ENUMERATION_FIX (1)
#define PICO_RP2040_USB_DEVICE_UFRAME_FIX (1)
#define PICO_STDIO_IGNORE_NESTED_STDOUT (0)
#define PICO_USE_CRT_PRINTF (0)
#define PICO_USE_OPTIMISTIC_SBRK (0)
// Stack guards cause a hard fault when 32 bytes around the stack bottom are
// accessed. These backtraces aren't always helpful and this conflicts with our
// own stack checking.
#define PICO_USE_STACK_GUARDS (0)
#include "include/cmsis/rename_exceptions.h"

View file

@ -11,9 +11,9 @@
#ifndef _PICO_VERSION_H
#define _PICO_VERSION_H
#define PICO_SDK_VERSION_MAJOR 1
#define PICO_SDK_VERSION_MINOR 2
#define PICO_SDK_VERSION_MAJOR 2
#define PICO_SDK_VERSION_MINOR 0
#define PICO_SDK_VERSION_REVISION 0
#define PICO_SDK_VERSION_STRING "1.2.0"
#define PICO_SDK_VERSION_STRING "2.0.0"
#endif

View file

@ -510,8 +510,8 @@ void port_idle_until_interrupt(void) {
/**
* \brief Default interrupt handler for unused IRQs.
*/
extern void HardFault_Handler(void); // provide a prototype to avoid a missing-prototypes diagnostic
__attribute__((used)) void __not_in_flash_func(HardFault_Handler)(void) {
extern void isr_hardfault(void); // provide a prototype to avoid a missing-prototypes diagnostic
__attribute__((used)) void __not_in_flash_func(isr_hardfault)(void) {
// Only safe mode from core 0 which is running CircuitPython. Core 1 faulting
// should not be fatal to CP. (Fingers crossed.)
if (get_core_num() == 0) {