synth/mbv/hal/start.cc
2025-06-25 08:38:46 -07:00

19 lines
373 B
C++

#include <cstdint>
extern "C" uint32_t _bss_begin, _bss_end, _initial_stack_pointer;
extern "C" int main();
__attribute__((section(".start"), used, naked)) void _start() {
// clear .bss
for (uint32_t* ptr = &_bss_begin; ptr < &_bss_end; ptr++) {
*ptr = 0;
}
asm volatile("la sp, _initial_stack_pointer");
main();
while (true) {
}
}