Close

Interrupt Controller

A project log for Raspberry Pi Pico Emulator

Live-coding an Open-Source Pico Emulator from Scratch

uri-shakedUri Shaked 04/26/2021 at 09:300 Comments

We spent the last two episodes working on the Nested Vectored Interrupt Controller (NVIC), adding some more instructions (UXTH, MULS, REV), and working on the special register implementation (MRS / MSR / CSPID i / CPSIE i) instructions. 

We got Hello Serial to work, and started looking at running the Arduino Core for Pi Pico, based on Mbed OS, in the emulator. 

Along the way we also found how to make GDB much faster by disabling Nagle's algorithm in our gdbserver. Now debugging the emulator is so much more delightful!

Interrupts, part 1:

Interrupts, part 2:

In the next episode, we will implement the SVC instruction, look at an interesting bug in our MULS implementation, and try to get the Arduino Core "blink" to work. See you tomorrow!

Discussions