mirror of
https://gitee.com/mirrors_PX4/PX4-Autopilot.git
synced 2026-06-27 06:00:34 +08:00
LPC11C24: Fixed C++ runtime initialization
This commit is contained in:
@@ -9,11 +9,13 @@ struct A
|
||||
A()
|
||||
{
|
||||
board::setStatusLed(true);
|
||||
board::setErrorLed(false);
|
||||
}
|
||||
|
||||
~A()
|
||||
{
|
||||
board::setStatusLed(false);
|
||||
board::setErrorLed(true);
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
@@ -127,6 +127,7 @@ void setErrorLed(bool state)
|
||||
} // namespace board
|
||||
|
||||
/*
|
||||
* Basic hardware initialization
|
||||
* C++ runtime initialization
|
||||
*/
|
||||
extern "C"
|
||||
@@ -147,13 +148,22 @@ static void call_init_array(unsigned long* start, unsigned long* end)
|
||||
}
|
||||
}
|
||||
|
||||
void __pre_main()
|
||||
// We need to disable pedantic mode to call main()
|
||||
#pragma GCC diagnostic ignored "-Wpedantic"
|
||||
|
||||
extern int main();
|
||||
|
||||
void __start()
|
||||
{
|
||||
board::init();
|
||||
|
||||
call_init_array(&__preinit_array_start, &__preinit_array_end);
|
||||
call_init_array(&__init_array_start, &__init_array_end);
|
||||
call_init_array(&_ctor_start, &_ctor_end);
|
||||
|
||||
board::init();
|
||||
(void)main();
|
||||
|
||||
while (true) { }
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -239,10 +239,7 @@ Reset_Handler:
|
||||
blt .flash_to_ram_loop
|
||||
.flash_to_ram_loop_end:
|
||||
|
||||
ldr r0, =__pre_main
|
||||
blx r0
|
||||
|
||||
ldr r0, =main
|
||||
ldr r0, =__start
|
||||
bx r0
|
||||
.pool
|
||||
.size Reset_Handler, . - Reset_Handler
|
||||
|
||||
Reference in New Issue
Block a user