mirror of
https://github.com/PX4/PX4-Autopilot.git
synced 2026-05-27 18:27:05 +08:00
Add logic to NSH startup to call C++ static initializers on startup
git-svn-id: https://nuttx.svn.sourceforge.net/svnroot/nuttx/trunk@4439 7fd9a85b-ad96-42d3-883c-3090e2eb8679
This commit is contained in:
@@ -198,3 +198,5 @@
|
|||||||
keyboard mappings of the Backspace key. Submitted by Mike Smith.
|
keyboard mappings of the Backspace key. Submitted by Mike Smith.
|
||||||
* apps/examples/cdcacm: An example that illustrates how the CDC/ACM driver
|
* apps/examples/cdcacm: An example that illustrates how the CDC/ACM driver
|
||||||
may to connected and disconnected through software control.
|
may to connected and disconnected through software control.
|
||||||
|
* apps/examples/nsh/nsh_main.c: If available, call up_cxxinitialize() to
|
||||||
|
initialize all statically defined C++ classes.
|
||||||
|
|||||||
@@ -45,6 +45,8 @@
|
|||||||
#include <sched.h>
|
#include <sched.h>
|
||||||
#include <errno.h>
|
#include <errno.h>
|
||||||
|
|
||||||
|
#include <nuttx/arch.h>
|
||||||
|
|
||||||
#include <apps/nsh.h>
|
#include <apps/nsh.h>
|
||||||
|
|
||||||
/****************************************************************************
|
/****************************************************************************
|
||||||
@@ -84,6 +86,12 @@ int user_start(int argc, char *argv[])
|
|||||||
int exitval = 0;
|
int exitval = 0;
|
||||||
int ret;
|
int ret;
|
||||||
|
|
||||||
|
/* Call all C++ static constructors */
|
||||||
|
|
||||||
|
#if defined(CONFIG_HAVE_CXX) && defined(CONFIG_HAVE_CXXINITIALIZE)
|
||||||
|
up_cxxinitialize();
|
||||||
|
#endif
|
||||||
|
|
||||||
/* Initialize the NSH library */
|
/* Initialize the NSH library */
|
||||||
|
|
||||||
nsh_initialize();
|
nsh_initialize();
|
||||||
|
|||||||
@@ -511,7 +511,7 @@ EXTERN void up_udelay(useconds_t microseconds);
|
|||||||
* This function should then be called in the application-specific
|
* This function should then be called in the application-specific
|
||||||
* user_start logic in order to perform the C++ initialization. NOTE
|
* user_start logic in order to perform the C++ initialization. NOTE
|
||||||
* that no component of the core NuttX RTOS logic is involved; This
|
* that no component of the core NuttX RTOS logic is involved; This
|
||||||
* function defintion only provides the 'contract' between application
|
* function definition only provides the 'contract' between application
|
||||||
* specific C++ code and platform-specific toolchain support
|
* specific C++ code and platform-specific toolchain support
|
||||||
*
|
*
|
||||||
***************************************************************************/
|
***************************************************************************/
|
||||||
|
|||||||
Reference in New Issue
Block a user