Live-coding Raspberry Pi Pico Emulator (Episode 10)

Опубликовано: 15 Июнь 2026
на канале: Wokwi
926
24

We've got a working GDB setup. Hooray! Now we are going to use it to figure out why the hello_uart code dies in irq_set_exclusive_handler(). Prepare yourself for some hardcore debugging!

In this live-coding series we're implementing an emulator for the RP2040 chip, which powers the new Raspberry Pi Pico. Every week we implement a new feature together, diving into the datasheet and thickening our Cortex M0 implementation.

Previous streams:    • Live Coding RP2040 Emulator  

Get emails with the links to the future stream:
https://pages.wokwi.com/rp2040

For more details check out the Hackaday project: https://hackaday.io/project/177082-ra...

Project repo: https://github.com/wokwi/rp2040js
Wokwi Arduino simulator: https://wokwi.com

0:00 Hello!
1:08 Last week Recap
3:40 Debugging a failing assertion in irq_set_exclusive_handler()
13:17 Adding xPSR pseudo-register (APSR, IPSR and EPSR)
21:33 Side note about Wallaby
25:41 Comparing behavior with the real hardware, breakpoints fail
34:45 Moving to GDB and figuring out the breakpoints issue
43:11 Disabling compiler optimizations
49:28 Side-tracking to discuss the APB bridge
1:00:35 Finding the expected return value of irq_get_vtable_handler()
1:12:53 Fixing broken break in gdbserver
1:23:50 Drawf Error?! 🤔
1:30:44 Blocked by spinlocks ⏳
1:46:00 GDB breakpoints not breaking
1:53:36 Finding the bug in get_vtable() & VTOR
2:03:45 Stuck in uart_is_writable()
2:14:05 A very tricky bug in NEGS
2:29:30 hello_uart runs from start to end. Milestone achieved! 🥳🎉
2:31:52 Coming up next + release announcement