diff options
author | Gregory Nutt <gnutt@nuttx.org> | 2013-05-16 09:36:55 -0600 |
---|---|---|
committer | Gregory Nutt <gnutt@nuttx.org> | 2013-05-16 09:36:55 -0600 |
commit | 8103e0321234bec9383d442068a66162e67c2598 (patch) | |
tree | 9e7265ee49152481ea4f341779ddf5742daf6365 | |
parent | 4e4fe19a8deba9dbb63294bb2ba74a452a663a9f (diff) | |
download | px4-nuttx-8103e0321234bec9383d442068a66162e67c2598.tar.gz px4-nuttx-8103e0321234bec9383d442068a66162e67c2598.tar.bz2 px4-nuttx-8103e0321234bec9383d442068a66162e67c2598.zip |
apps/examples/helloxx entry point name was mangled when built as an NSH builtin; plus some README updates
-rw-r--r-- | apps/ChangeLog.txt | 2 | ||||
-rw-r--r-- | apps/examples/Makefile | 5 | ||||
-rw-r--r-- | apps/examples/cxxtest/Makefile | 2 | ||||
-rw-r--r-- | apps/examples/helloxx/Makefile | 2 | ||||
-rw-r--r-- | apps/examples/helloxx/helloxx_main.cxx | 40 | ||||
-rw-r--r-- | nuttx/configs/pirelli_dpl10/README.txt | 66 |
6 files changed, 82 insertions, 35 deletions
diff --git a/apps/ChangeLog.txt b/apps/ChangeLog.txt index ec626ea84..a7f0fad8b 100644 --- a/apps/ChangeLog.txt +++ b/apps/ChangeLog.txt @@ -553,3 +553,5 @@ is not selected. Also, complete the empty Kconfig file (2013-5-7). * apps/NxWidgets/Kconfig: Updated to match NxWidgets/Kconfig by Ken Pettit (2013-5-11). + * apps/examples/helloxx: C++ name mangling was occurring when this + example is built as an NSH built-in application. (2013-5-16). diff --git a/apps/examples/Makefile b/apps/examples/Makefile index a10fef5dc..7827bf9a3 100644 --- a/apps/examples/Makefile +++ b/apps/examples/Makefile @@ -59,13 +59,10 @@ CNTXTDIRS = pwm ifeq ($(CONFIG_NSH_BUILTIN_APPS),y) CNTXTDIRS += adc can cdcacm composite cxxtest dhcpd discover flash_test ftpd -CNTXTDIRS += hello json keypadtestmodbus mtdpart nettest nxlines relays +CNTXTDIRS += hello helloxx json keypadtestmodbus mtdpart nettest nxlines relays CNTXTDIRS += qencoder smart_test telnetd watchdog wgetjson endif -ifeq ($(CONFIG_EXAMPLES_HELLOXX_BUILTIN),y) -CNTXTDIRS += helloxx -endif ifeq ($(CONFIG_EXAMPLES_LCDRW_BUILTIN),y) CNTXTDIRS += lcdrw endif diff --git a/apps/examples/cxxtest/Makefile b/apps/examples/cxxtest/Makefile index 97fdb6ede..ecdc1d4fb 100644 --- a/apps/examples/cxxtest/Makefile +++ b/apps/examples/cxxtest/Makefile @@ -100,7 +100,7 @@ $(CXXOBJS): %$(OBJEXT): %.cxx $(call ARCHIVE, $(BIN), $(OBJS)) @touch .built -ifeq ($(CONFIG_EXAMPLES_HELLOXX_BUILTIN),y) +ifeq ($(CONFIG_NSH_BUILTIN_APPS),y) $(BUILTIN_REGISTRY)$(DELIM)$(APPNAME)_main.bdat: $(DEPCONFIG) Makefile $(call REGISTER,$(APPNAME),$(PRIORITY),$(STACKSIZE),$(APPNAME)_main) diff --git a/apps/examples/helloxx/Makefile b/apps/examples/helloxx/Makefile index 44d880658..5cbe7dd59 100644 --- a/apps/examples/helloxx/Makefile +++ b/apps/examples/helloxx/Makefile @@ -100,7 +100,7 @@ $(CXXOBJS): %$(OBJEXT): %.cxx $(call ARCHIVE, $(BIN), $(OBJS)) @touch .built -ifeq ($(CONFIG_EXAMPLES_HELLOXX_BUILTIN),y) +ifeq ($(CONFIG_NSH_BUILTIN_APPS),y) $(BUILTIN_REGISTRY)$(DELIM)$(APPNAME)_main.bdat: $(DEPCONFIG) Makefile $(call REGISTER,$(APPNAME),$(PRIORITY),$(STACKSIZE),$(APPNAME)_main) diff --git a/apps/examples/helloxx/helloxx_main.cxx b/apps/examples/helloxx/helloxx_main.cxx index 60fd0487b..eeca52263 100644 --- a/apps/examples/helloxx/helloxx_main.cxx +++ b/apps/examples/helloxx/helloxx_main.cxx @@ -1,7 +1,7 @@ //*************************************************************************** // examples/helloxx/helloxx_main.cxx // -// Copyright (C) 2009, 2011-2012 Gregory Nutt. All rights reserved. +// Copyright (C) 2009, 2011-2013 Gregory Nutt. All rights reserved. // Author: Gregory Nutt <gnutt@nuttx.org> // // Redistribution and use in source and binary forms, with or without @@ -128,38 +128,40 @@ static CHelloWorld g_HelloWorld; * Name: helloxx_main ****************************************************************************/ -int helloxx_main(int argc, char *argv[]) +extern "C" { - // If C++ initialization for static constructors is supported, then do - // that first + int helloxx_main(int argc, char *argv[]) + { + // If C++ initialization for static constructors is supported, then do + // that first #ifdef CONFIG_HAVE_CXXINITIALIZE - up_cxxinitialize(); + up_cxxinitialize(); #endif - // Exercise an explictly instantiated C++ object + // Exercise an explictly instantiated C++ object - CHelloWorld *pHelloWorld = new CHelloWorld; - printf("helloxx_main: Saying hello from the dynamically constructed instance\n"); - pHelloWorld->HelloWorld(); + CHelloWorld *pHelloWorld = new CHelloWorld; + printf("helloxx_main: Saying hello from the dynamically constructed instance\n"); + pHelloWorld->HelloWorld(); - // Exercise an C++ object instantiated on the stack + // Exercise an C++ object instantiated on the stack #ifndef CONFIG_EXAMPLES_HELLOXX_NOSTACKCONST - CHelloWorld HelloWorld; + CHelloWorld HelloWorld; - printf("helloxx_main: Saying hello from the instance constructed on the stack\n"); - HelloWorld.HelloWorld(); + printf("helloxx_main: Saying hello from the instance constructed on the stack\n"); + HelloWorld.HelloWorld(); #endif - // Exercise an statically constructed C++ object + // Exercise an statically constructed C++ object #ifdef CONFIG_HAVE_CXXINITIALIZE - printf("helloxx_main: Saying hello from the statically constructed instance\n"); - g_HelloWorld.HelloWorld(); + printf("helloxx_main: Saying hello from the statically constructed instance\n"); + g_HelloWorld.HelloWorld(); #endif - delete pHelloWorld; - return 0; + delete pHelloWorld; + return 0; + } } - diff --git a/nuttx/configs/pirelli_dpl10/README.txt b/nuttx/configs/pirelli_dpl10/README.txt index 57e0a609b..6f2339f11 100644 --- a/nuttx/configs/pirelli_dpl10/README.txt +++ b/nuttx/configs/pirelli_dpl10/README.txt @@ -8,6 +8,7 @@ Contents ======== * History + * Hardware * Osmocom-BB Dependencies and Sercomm * Loading NuttX * Memory Map @@ -34,26 +35,71 @@ History http://cgit.osmocom.org/cgit/nuttx-bb/log/?h=lputt%2Ftesting +Hardware +======== + + * CPU/DBB: TI Calypso (D751992AZHH) + + See http://bb.osmocom.org/trac/wiki/Hardware/Calypso + + * ABB: TI Iota (TWL3014) + + Analog baseband chip. See http://bb.osmocom.org/trac/wiki/Iota + + * GSM Transceiver: TI Rita (TRF6151) + + GSM Transceiver. See http://bb.osmocom.org/trac/wiki/Rita + + * PA: SKY77328-13 + + Quad-band GSM/GPRS: See http://www.skyworksinc.com/Product.aspx?ProductID=434 + + * Flash/SRAM: Spansion S71PL129NC0 128MBit/64MBit + + Combined FLASH and SDRAM: + FLASH: 128Mbit + SDRAM: 64Mbit + + * Wifi: Marvell 88W8385 802.11 MAC + Marvell 88W8015 802.11b/g transceiver + + * Winbond W56940 ringtone chip + + * Sunplus SPCA552E multimedia controller + + Multimedia processor: integrates CMOS sensor interface, DSC processor, JPEG + codec engine, LCM interface and other peripherals. + + I have not yet been able to find a data sheet for this chip. I believe that + it will be critical to develop drivers for the display. + + * LSI-65194A1 ASIC (seems to be a DSP for VoIP en-/decoding) + + * Silabs CP2102 USB UART (connected to UART_IRDA of the Calypso) + Osmocom-BB Dependencies and Sercomm =================================== - The build environment assumes that you have the osmocom-bb project - directory at same level as the nuttx project: + Sercomm is an HDLC protocol used to communicate between a Calypso phone + and the host PC. By default, NuttX will not use sercomm (HDLC protocol) to + communicate with the host system. Sercomm is the transport used by + osmocom-bb that runs on top of serial. See + http://bb.osmocom.org/trac/wiki/nuttx-bb/run for detailed the usage of nuttx + with sercomm. + + If you build with sercomm, you must add support for sercomm in your + configuration (CONFIG_SERCOMM_CONSOLE=y). In this case, the build + environment assumes that you have the osmocom-bb project directory at same + level as the nuttx project: |- nuttx |- apps `- osmocom-bb - If you attempt to build this configuration without osmocom-bb, and that - you added support for sercomm in your configuration(CONFIG_SERCOMM_CONSOLE=y) + If you attempt to build a sercomm-enaled configuration without osmocom-bb, you will get compilation errors in drivers/sercomm due to header files that are needed from the osmocom-bb directory. - By default, NuttX will not use sercomm (HDLC protocol) to communicate with - the host system. Sercomm is the transport used by osmocom-bb that runs on top - of serial. See http://bb.osmocom.org/trac/wiki/nuttx-bb/run for detailed - the usage of nuttx with sercomm. - Loading NuttX ============= @@ -302,7 +348,7 @@ Configurations for Windows and builds under Cygwin (or probably MSYS). That can easily be reconfigured, of course. - CONFIG_HOST_LINUX=y : Builds under Windows + CONFIG_HOST_LINUX=y : Builds under Linux CONFIG_ARM_TOOLCHAIN_BUILDROOT=y : NuttX buildroot OABI toolchain CONFIG_ARM_OABI_TOOLCHAIN=y |