Embedded Journeys

Debugging RP2350: Subtle Differences Between the RISC-V and ARM cores

3 insights that facilitated my Pico 2W multi-core debugging sessions

This all started when I was trying to understand how my RP2350 would react when I wanted to read a memory address like 0x00000000 on the RISC-V and ARM cores. However, this sidetracked me into a deeper understanding of debugging the RP2350 with my Raspberry Pi Debugger Probe! At first, it felt like regular breakpoints were just ignored, if the program even started running at all! My attempts at running RISC-V and ARM cores revealed some subtle debugging behaviour.

Why hexdump and hexdump -C Show Different Output

A quick discovery I made while dumping ELF files with hexdump. A single flag changed the output in a way that made me rethink what I was seeing. Turns out, understanding how hexdump works under the hood is more important than it looks at first glance