We'll finish implementing the Nested Vectored Interrupt Controller (NVIC), and start working on the GPIO peripheral.
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 + Recap
2:45 Interrupt Controller (NVIC) - ExceptionEntry()
7:21 SP_Main vs SP_Process, MRS and readSpecialRegister()
29:57 MSR and writeSpecialRegister()
37:00 BXWritePC(), ExceptionExit()
1:05:50 Unit test for our Interrupt/Exception implementation
1:20:35 Bug hunt: interrupt fires repeatedly while the handler is running, exceptionPriority()
1:39:59 Missing stack pointer initialization, Interrupts test pass!
1:47:17 Releasing a new version npm! 🎉
1:55:25 Running Arduino Core (Mbed OS) in the emulator
2:04:11 Bug in our Intel Hex parser, fixing loadHex()
2:20:50 Making GDB debugging faster (Nagel's algorithm)
2:28:20 What's next?