25b92edd9f
apps/builtin/exec_builtin.c: Try posix_spawn if builtin apps do not have have an entry point. apps/Application.mk: introduce MODULE config to simplify tristate(m) apps/nsh: Change the nuttx shell module type to tristate apps: Add loadable application support script/mksymtab: Generate symbol table name by default apps/builtin: Allow loadable applications can register with apps/builtin.
92 lines
2.8 KiB
Plaintext
92 lines
2.8 KiB
Plaintext
#
|
|
# For a description of the syntax of this configuration file,
|
|
# see the file kconfig-language.txt in the NuttX tools repository.
|
|
#
|
|
|
|
config SYSTEM_NSH
|
|
tristate "NuttShell (NSH) example"
|
|
default n
|
|
select NSH_LIBRARY
|
|
select SYSTEM_READLINE
|
|
---help---
|
|
Enable the NuttShell (NSH) example
|
|
|
|
if SYSTEM_NSH
|
|
|
|
config SYSTEM_NSH_PRIORITY
|
|
int "Nuttx shell thread priority"
|
|
default 100
|
|
|
|
config SYSTEM_NSH_STACKSIZE
|
|
int "Nuttx shell stack size"
|
|
default 2048
|
|
|
|
config SYSTEM_NSH_SYMTAB
|
|
bool "Register symbol table"
|
|
default n
|
|
depends on LIBC_EXECFUNCS && LIB_BOARDCTL && !EXECFUNCS_HAVE_SYMTAB
|
|
select BOARDCTL_APP_SYMTAB
|
|
---help---
|
|
Enable logic to automatically register an application symbol table
|
|
as part of NSH initialization. If enabled, then application logic
|
|
must provide the following:
|
|
|
|
const struct symtab_s g_exports[];
|
|
const int g_nexports;
|
|
|
|
Where g_exports is the name of the exported application symbol table
|
|
and g_nexports holds the number of entries in the application symbol
|
|
table.
|
|
|
|
This is done very early in the NSH initialization sequence.
|
|
|
|
Why might you want to do this? There is really only one reason: You
|
|
would like to have the symbol tables in place early so that programs
|
|
started by NSH, perhaps via an initialization script, will have all
|
|
of the necessary symbols in place. Otherwise, you probably do *not*
|
|
want this option!
|
|
|
|
if SYSTEM_NSH_SYMTAB
|
|
|
|
config SYSTEM_NSH_SYMTAB_ARRAYNAME
|
|
string "Symbol table used by exec[l|v]"
|
|
default "g_exports"
|
|
---help---
|
|
The exec[l|v] and posix_spawn() functions needs to have (1) a
|
|
symbol table that provides the list of symbols exported by the base
|
|
code, and (2) the number of symbols in that table. This selection
|
|
provides the name of that symbol table.
|
|
|
|
config SYSTEM_NSH_SYMTAB_COUNTNAME
|
|
string "Variable holding the number of symbols"
|
|
default "g_nexports"
|
|
---help---
|
|
The exec[l|v] and posix_spawn() functions needs to have (1) a
|
|
symbol table that provides the list of symbols exported by the base
|
|
code, and (2) the number of symbols in that table. This selection
|
|
provides the name of 'int' variable that holds the number of symbol
|
|
in the table.
|
|
|
|
endif # SYSTEM_NSH_SYMTAB
|
|
|
|
config SYSTEM_NSH_PROGNAME
|
|
string "Program name"
|
|
default "nsh"
|
|
depends on BUILD_LOADABLE
|
|
---help---
|
|
This is the name of the program that will be use when the NSH ELF
|
|
program is installed.
|
|
|
|
config SYSTEM_NSH_CXXINITIALIZE
|
|
bool "C++ Initialization"
|
|
default n
|
|
depends on HAVE_CXX && HAVE_CXXINITIALIZE
|
|
---help---
|
|
If HAVE_CXX and HAVE_CXXINITIALIZE are slected, then this NSH
|
|
example can be configured to initialize C++ constructors when it
|
|
is started. NSH does not use C++ and, by default, assumes that
|
|
constructors are initialized elsewhere. However, you can force
|
|
NSH to initialize constructors by setting this option.
|
|
|
|
endif
|