Rewrite init app in C, introduce MSL (MOP3 System Library)
All checks were successful
Build documentation / build-and-deploy (push) Successful in 35s
All checks were successful
Build documentation / build-and-deploy (push) Successful in 35s
This commit is contained in:
1
libmsl/init/.gitignore
vendored
Normal file
1
libmsl/init/.gitignore
vendored
Normal file
@@ -0,0 +1 @@
|
||||
*.o
|
||||
22
libmsl/init/__premain.c
Normal file
22
libmsl/init/__premain.c
Normal file
@@ -0,0 +1,22 @@
|
||||
#include <stdint.h>
|
||||
#include <m/proc.h>
|
||||
|
||||
extern volatile uint8_t __bss_start[];
|
||||
extern volatile uint8_t __bss_end[];
|
||||
|
||||
extern void app_main (void);
|
||||
|
||||
static void msl_clear_bss (void) {
|
||||
uint8_t *p = (uint8_t*)__bss_start;
|
||||
while (p < __bss_end) {
|
||||
*p++ = 0;
|
||||
}
|
||||
}
|
||||
|
||||
void __premain (void) {
|
||||
msl_clear_bss ();
|
||||
|
||||
app_main ();
|
||||
|
||||
m_proc_quit ();
|
||||
}
|
||||
3
libmsl/init/src.mk
Normal file
3
libmsl/init/src.mk
Normal file
@@ -0,0 +1,3 @@
|
||||
c += init/__premain.c
|
||||
|
||||
o += init/__premain.o
|
||||
Reference in New Issue
Block a user