Many years ago on the RP2040 I was trying to write flash without saving/disabling interrupts, so I cannot access any flash while the write is happening. I forced queue and multicore functions into RAM in the linker script, and kilograham gave me the final piece which was to set PICO_MEM_IN_RAM since memcpy is used somewhere in there.
I'm now on the RP2350 and I'm seeing:
This is where the core locks up as far as I can tell. I do still have PUBLIC PICO_MEM_IN_RAM=1 set in target_compile_definitions. But it seems like memcpy is being called in flash here? What's going on?
Thank you!
I'm now on the RP2350 and I'm seeing:
Code:
(gdb) bt#0 0xeffffffe in ?? ()#1 <signal handler called>#2 0x1000b470 in memcpy ()#3 0x20000730 in queue_add_internal (block=false, data=0x20002640 <undo_buffer+312>, q=0x200024f4 <ui_snapshot_queue>) at firmware/pico-sdk/src/common/pico_util/queue.c:48#4 queue_try_add (q=q@entry=0x200024f4 <ui_snapshot_queue>, data=data@entry=0x200416b4 <engine+320>) at firmware/pico-sdk/src/common/pico_util/queue.c:102#5 0x20041538 in run_engine () at firmware/main.c:67#6 0x10009552 in main () at firmware/main.c:135Thank you!
Statistics: Posted by waveshaper — Mon Feb 23, 2026 3:29 am