#include extern "C" int main(); extern uint32_t _bss_begin, _bss_end, _initial_stack_pointer; __attribute__((section(".app_init"), used)) void AppInit() { *(uint32_t*)(0x40000000) = 0; asm("mov sp, %0" : : "r"(&_initial_stack_pointer) :); // clear .bss for (uint32_t* ptr = &_bss_begin; ptr < &_bss_end; ptr++) { *ptr = 0; } main(); while (true) { } }