Fix PX4IO to run C++ static ctors

This commit is contained in:
px4dev
2012-12-29 12:57:29 -08:00
parent 35c82ff2fc
commit d5da457e29
3 changed files with 15 additions and 1 deletions
+5
View File
@@ -55,10 +55,15 @@
__EXPORT int user_start(int argc, char *argv[]); __EXPORT int user_start(int argc, char *argv[]);
extern void up_cxxinitialize(void);
struct sys_state_s system_state; struct sys_state_s system_state;
int user_start(int argc, char *argv[]) int user_start(int argc, char *argv[])
{ {
/* run C++ ctors before we go any further */
up_cxxinitialize();
/* reset all to zero */ /* reset all to zero */
memset(&system_state, 0, sizeof(system_state)); memset(&system_state, 0, sizeof(system_state));
+9
View File
@@ -74,6 +74,15 @@ SECTIONS
_etext = ABSOLUTE(.); _etext = ABSOLUTE(.);
} > flash } > flash
/*
* Init functions (static constructors and the like)
*/
.init_section : {
_sinit = ABSOLUTE(.);
KEEP(*(.init_array .init_array.*))
_einit = ABSOLUTE(.);
} > flash
.ARM.extab : { .ARM.extab : {
*(.ARM.extab*) *(.ARM.extab*)
} > flash } > flash
+1 -1
View File
@@ -345,7 +345,7 @@ CONFIG_DEBUG_INPUT=n
CONFIG_MSEC_PER_TICK=1 CONFIG_MSEC_PER_TICK=1
CONFIG_HAVE_CXX=y CONFIG_HAVE_CXX=y
CONFIG_HAVE_CXXINITIALIZE=n CONFIG_HAVE_CXXINITIALIZE=y
CONFIG_MM_REGIONS=1 CONFIG_MM_REGIONS=1
CONFIG_MM_SMALL=y CONFIG_MM_SMALL=y
CONFIG_ARCH_LOWPUTC=y CONFIG_ARCH_LOWPUTC=y