Merged in masayuki2009/nuttx.apps/loadable_app (pull request #148)
loadable app support
* apps: Introduce a build system for loadable apps for nsh.
This PR consits of following changes. (NOTE: Changes to each
application will be provided separately)
apps/nshlib/Kconfig:
Add 'option modules' to NSH_FILE_APPS so that a user can change
an application configuration to tristate (y/n/m)
apps/Make.defs:
Override COMPILE and COMPILEXX macros to compile loadable apps.
To make loadable apps, -DLOADABLE_APP is added to the flags.
Also, introduce ELFLD to link a lodable app.
Please note that the variable 'LOADABLE' must be defined in
each application Makefile if you want to make a loadable app.
apps/Application.mk:
Add .build target in case of 'LOADABLE=y' which is used to
link a final loadable application and install the app to
apps/bin.
apps/Makefile:
Add SYMTABSRC and SYMTABOBJ variables for loadable apps which
will be generated under the apps directory.
Add make_symbols target which will be called when all applications
are installed to generate symtab_app.c which is used for
nsh to inform symbol information to the NuttX kernel.
Signed-off-by: Masayuki Ishikawa <Masayuki.Ishikawa@jp.sony.com>
* apps/examples/hello: Apply changes to support a lodable app.
Kconfig:
Change the application state from bool to tristate
Make.defs:
Change the condition to build. By default, the application is
not selected (i.e. 'n'), so if other states (i.e. y/m) are
selected, the application will be compiled.
Makefile:
If the application is specified to 'm', the variable 'LOADABLE'
must be defined here. Also note that other variables (PRIORITY
and STACKSIZE) can only be used for built-in apps.
hello_main.c
Add LOADABLE_APP condition to main().
Signed-off-by: Masayuki Ishikawa <Masayuki.Ishikawa@jp.sony.com>
* apps/examples/helloxx: Apply changes to support a lodable app.
Kconfig:
Change the application state from bool to tristate
Make.defs:
Change the condition to build. By default, the application is
not selected (i.e. 'n'), so if other states (i.e. y/m) are
selected, the application will be compiled.
Makefile:
If the application is specified to 'm', the variable 'LOADABLE'
must be defined here. Also note that other variables (PRIORITY
and STACKSIZE) can only be used for built-in apps.
helloxx_main.c
Add LOADABLE_APP condition to main().
Signed-off-by: Masayuki Ishikawa <Masayuki.Ishikawa@jp.sony.com>
Approved-by: GregoryN <gnutt@nuttx.org>
nsh_parse.c: fix 'while' and 'until' loop condition
The loop condition logic was inverted:
while true; do echo "test"; done
would exit immediately, while using 'until' would stay in the loop.
This is the opposite of how it is supposed to work.
The reason is that 'state' was set wrong because 'whilematch' is a bool.
Approved-by: Gregory Nutt <gnutt@nuttx.org>
Squashed commit of the following:
apps/system ping and ping6: Fix a backward test.
apps/system/ping6: ping6 logic now builds without error.
apps/system/ping and ping6: Minor clean-up to configuration settings.
apps/system/ping6: Minor clean-up to be able to configure CONFIG_SYSTEM_PING6
apps/nshlib: Remove support for ping6 from NSH.
apps/system/ping6: Add IPPROTO_ICMPv6 ping6. Initial commit is simply a clone of the IPPROTO_ICMP ping logic.
Rename CONFIG_NET_ICMPv6_PING to CONFIG_NET_ICMPv6_SOCKET.
Squashed commit of the following:
apps/system/ping: Fix some timing issues.
apps/system/ping: A few timing related corrections.
apps/nshlib: Remove support for the NSH 'ping' command. The implementation of that command violated the portable POSIX interface and has been replaced with a ping 'built-in' command at apps/system/ping.
apps/system/ping: Add larger payload. Verify content of echoed payload.
apps/system/ping: Various fixes for a clean compile
system/ping: Add new build structure for system ping command.
apps/fsutils/mkfatfs: New user-space fatfs appears to work fine.
apps/fsutils/mkfatfs: Move mkfatfs from the OS to here. Not fully integrated on the intial commit.