In reply to @kryp7on "what I meant is:": It is not kernel but Nim can be used for bare metal code for RP2040: https://github.com/demotomohiro/MinimumNimPico It still uses assembly code in pico-sdk, but replacing these assembly code with C will be hard or result in larger code. It seems C cannot read at address 0 because it is defined as "undefined behavior" in standard. Also, C doesn't seems to guarantee to generate code that doesn't use a stack pointer when stack pointer is not properly set.