#include #include #include extern volatile uint8_t __bss_start[]; extern volatile uint8_t __bss_end[]; extern void app_main(void); static size_t premain_memset(void* dst, uint8_t b, size_t n) { uint8_t* dst1 = dst; size_t i; for (i = 0; i < n; i++) dst1[i] = b; return i; } static void clear_bss(void) { premain_memset((void*)__bss_start, 0, (uintptr_t)__bss_end - (uintptr_t)__bss_end); } void __premain(void) { clear_bss(); process_self_init(); app_main(); quit(); }