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