- Disable interrupts before setting the reboot cookie - Delay after NVIC_SystemReset before jumping to bootloader (see comment for an explanation) - Make a variable for the reboot cookie - Do reboot cookie checks before C++ static initializers