Browse Source

Fix PX4IO to run C++ static ctors

sbg
px4dev 12 years ago
parent
commit
d5da457e29
  1. 5
      apps/px4io/px4io.c
  2. 9
      nuttx/configs/px4io/common/ld.script
  3. 2
      nuttx/configs/px4io/io/defconfig

5
apps/px4io/px4io.c

@ -55,10 +55,15 @@ @@ -55,10 +55,15 @@
__EXPORT int user_start(int argc, char *argv[]);
extern void up_cxxinitialize(void);
struct sys_state_s system_state;
int user_start(int argc, char *argv[])
{
/* run C++ ctors before we go any further */
up_cxxinitialize();
/* reset all to zero */
memset(&system_state, 0, sizeof(system_state));

9
nuttx/configs/px4io/common/ld.script

@ -74,6 +74,15 @@ SECTIONS @@ -74,6 +74,15 @@ SECTIONS
_etext = ABSOLUTE(.);
} > flash
/*
* Init functions (static constructors and the like)
*/
.init_section : {
_sinit = ABSOLUTE(.);
KEEP(*(.init_array .init_array.*))
_einit = ABSOLUTE(.);
} > flash
.ARM.extab : {
*(.ARM.extab*)
} > flash

2
nuttx/configs/px4io/io/defconfig

@ -345,7 +345,7 @@ CONFIG_DEBUG_INPUT=n @@ -345,7 +345,7 @@ CONFIG_DEBUG_INPUT=n
CONFIG_MSEC_PER_TICK=1
CONFIG_HAVE_CXX=y
CONFIG_HAVE_CXXINITIALIZE=n
CONFIG_HAVE_CXXINITIALIZE=y
CONFIG_MM_REGIONS=1
CONFIG_MM_SMALL=y
CONFIG_ARCH_LOWPUTC=y

Loading…
Cancel
Save