Add definitions to stdlib.h; update README
git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@4071 42af7a65-404d-4744-a932-0658087f49c3
This commit is contained in:
parent
4d3d31d8df
commit
141d7f4f6b
128
README.txt
128
README.txt
@ -1,70 +1,124 @@
|
|||||||
Application Folder
|
Application Folder
|
||||||
==================
|
==================
|
||||||
|
|
||||||
This folder provides various applications found in sub-directories.
|
Contents
|
||||||
|
--------
|
||||||
|
|
||||||
Application entry points with their requirements are gathered together in
|
General
|
||||||
in two files:
|
Directory Location
|
||||||
|
Named Applications
|
||||||
|
Named Startup main() function
|
||||||
|
NuttShell (NSH) Built-In Commands
|
||||||
|
Application Configuration File
|
||||||
|
Example Named Application
|
||||||
|
|
||||||
- namedapp/namedapp_proto.h Entry points, prototype function
|
General
|
||||||
- namedapp/namedapp_list.h Application specific information and requirements
|
-------
|
||||||
|
This folder provides various applications found in sub-directories. These
|
||||||
|
applications are not inherently a part of NuttX but are provided you help
|
||||||
|
you develop your own applications. The apps/ directory is a "break away"
|
||||||
|
part of the configuration that you may chose to use or not.
|
||||||
|
|
||||||
|
Directory Location
|
||||||
|
------------------
|
||||||
|
The default application directory used by the NuttX build should be named
|
||||||
|
apps/ (or apps-x.y/ where x.y is the NuttX version number). This apps/
|
||||||
|
directoy should appear in the directory tree at the same level as the
|
||||||
|
NuttX directory. Like:
|
||||||
|
|
||||||
|
.
|
||||||
|
|- nuttx
|
||||||
|
|
|
||||||
|
`- apps
|
||||||
|
|
||||||
|
If all of the above conditions are TRUE, then NuttX will be able to
|
||||||
|
find the application directory. If your application directory has a
|
||||||
|
different name or is location at a different position, then you will
|
||||||
|
have to inform the NuttX build system of that location. There are several
|
||||||
|
ways to do that:
|
||||||
|
|
||||||
|
1) You can define CONFIG_APPS_DIR to be the full path to your application
|
||||||
|
directory in the NuttX configuration file.
|
||||||
|
2) You can provide the path to the application directory on the command line
|
||||||
|
like: make APPDIR=<path> or make CONFIG_APPS_DIR=<path>
|
||||||
|
3) When you configure NuttX using tools/configure.sh, you can provide that
|
||||||
|
path to the application directory on the configuration command line
|
||||||
|
like: ./configure.sh -a <app-dir> <board-name>/<config-name>
|
||||||
|
|
||||||
|
Named Applications
|
||||||
|
------------------
|
||||||
|
NuttX also supports applications that can be started using a name string.
|
||||||
|
In this case, zpplication entry points with their requirements are gathered
|
||||||
|
together in two files:
|
||||||
|
|
||||||
|
- namedapp/namedapp_proto.h Entry points, prototype function
|
||||||
|
- namedapp/namedapp_list.h Application specific information and requirements
|
||||||
|
|
||||||
The build occurs in several phases as different build targets are executed:
|
The build occurs in several phases as different build targets are executed:
|
||||||
(1) contex, (2) depend, and (3) default (all). Application information is
|
(1) context, (2) depend, and (3) default (all). Application information is
|
||||||
collected during the make context build phase.
|
collected during the make context build phase.
|
||||||
|
|
||||||
To execute an application function:
|
To execute an application function:
|
||||||
|
|
||||||
exec_namedapp() is defined in the nuttx/include/apps/apps.h
|
exec_namedapp() is defined in the nuttx/include/apps/apps.h
|
||||||
|
|
||||||
NuttShell provides transparent method of invoking the command, when the
|
|
||||||
following option is enabled:
|
|
||||||
|
|
||||||
CONFIG_NSH_BUILTIN_APPS=y
|
NuttShell (NSH) Built-In Commands
|
||||||
|
---------------------------------
|
||||||
|
One use of named applications is to provide a way of invoking your custom
|
||||||
|
application through the NuttShell (NSH) command line. NSH will support
|
||||||
|
a seamless method invoking the applications, when the following option is
|
||||||
|
enabled in the NuttX configuration file:
|
||||||
|
|
||||||
in the NuttX configuration.
|
CONFIG_NSH_BUILTIN_APPS=y
|
||||||
|
|
||||||
|
Application Configuration File
|
||||||
|
------------------------------
|
||||||
A special configuration file is used to configure which applications
|
A special configuration file is used to configure which applications
|
||||||
are to be included in the build. This file is configs/<board>/<configuration>/appconfig.
|
are to be included in the build. The source for this file is
|
||||||
The existence of the appconfig file in the board configuration directory
|
configs/<board>/<configuration>/appconfig. The existence of the appconfig
|
||||||
is sufficient to enable building of applications.
|
file in the board configuration directory is sufficient to enable building
|
||||||
|
of applications.
|
||||||
|
|
||||||
The appconfig file is copied into the apps/ directory as .config when
|
The appconfig file is copied into the apps/ directory as .config when
|
||||||
NuttX is configured. .config is included in the toplevel apps/Makefile.
|
NuttX is configured. .config is included in the toplevel apps/Makefile.
|
||||||
As a minimum, this configuration file must define files to add to the
|
As a minimum, this configuration file must define files to add to the
|
||||||
CONFIGURED_APPS list like:
|
CONFIGURED_APPS list like:
|
||||||
|
|
||||||
CONFIGURED_APPS += hello poweroff jvm
|
CONFIGURED_APPS += vsn/hello vsn/poweroff vsn/jvm
|
||||||
|
|
||||||
The form of each entry is <dir>=<dependency> when:
|
Named Start-Up main() function
|
||||||
|
------------------------------
|
||||||
|
A named application can even be used as the main, start-up entry point
|
||||||
|
into your embedded software. When the user defines this option in
|
||||||
|
the NuttX configuration file:
|
||||||
|
|
||||||
<dir> is the name of a subdirectory in the apps directory, and
|
CONFIG_BUILTIN_APP_START=<application name>
|
||||||
|
|
||||||
<dependency> is a make dependency. This will be "touch"-ed each time
|
that application shall be invoked immediately after system starts
|
||||||
that the sub-directory is rebuilt.
|
*instead* of the normal, default "user_start" entry point.
|
||||||
|
Note that <application name> must be provided as: "hello",
|
||||||
When the user defines an option:
|
|
||||||
CONFIG_BUILTIN_APP_START=<application name>
|
|
||||||
|
|
||||||
that application shall be invoked immediately after system starts.
|
|
||||||
Note that application name must be provided in ".." as: "hello",
|
|
||||||
will call:
|
will call:
|
||||||
int hello_main(int argc, char *argv[])
|
|
||||||
|
|
||||||
Application skeleton can be found under the hello sub-directory,
|
int hello_main(int argc, char *argv[])
|
||||||
which shows how an application can be added to the project. One must
|
|
||||||
define:
|
Example Named Application
|
||||||
|
-------------------------
|
||||||
|
An example application skeleton can be found under the vsn/hello
|
||||||
|
sub-directory. This example shows how a named application can be added
|
||||||
|
to the project. One must define:
|
||||||
|
|
||||||
1. create sub-directory as: appname
|
1. create sub-directory as: appname
|
||||||
2. provide entry point: appname_main()
|
2. provide entry point: appname_main()
|
||||||
3. set the requirements in the file: Makefile, specially the lines:
|
3. set the requirements in the file: Makefile, specially the lines:
|
||||||
APPNAME = appname
|
|
||||||
PRIORITY = SCHED_PRIORITY_DEFAULT
|
|
||||||
STACKSIZE = 768
|
|
||||||
ASRCS = asm source file list as a.asm b.asm ...
|
|
||||||
CSRCS = C source file list as foo1.c foo2.c ..
|
|
||||||
|
|
||||||
4. add application in the apps/Makefile
|
APPNAME = appname
|
||||||
|
PRIORITY = SCHED_PRIORITY_DEFAULT
|
||||||
|
STACKSIZE = 768
|
||||||
|
ASRCS = asm source file list as a.asm b.asm ...
|
||||||
|
CSRCS = C source file list as foo1.c foo2.c ..
|
||||||
|
|
||||||
|
4. add application in the apps/.config
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user