summaryrefslogtreecommitdiff
path: root/apps/README
blob: 4ffee90c8aec52ead8c1be740acd5b79336073d1 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
Application Folder
==================

This folder provides various applications that can be enabled in the .config
file and further provides frame-work to include external user applications
from the ../apps directory.

Application entry points with their requirements are gathered together in 
this folder, in two files:
	- exec_nuttapp_proto.h	Entry points, prototype function
	- exec_nuttapp_list.h	Application specific information and requirements

Application information is collected during the make .depend process.

To execute an application function:
	exec_nuttapp() is defined in the include/nuttx/nuttapp.h 
	
Further, builtin applications may be accessed via pseudo file-system found
under the nuttx/drivers/sbin directory.

NuttShell provides transparent method of invoking the command, when the
following option is enabled (regardless of sbin pseudo file system):
	CONFIG_EXAMPLES_NSH_BUILTIN_APPS=y

To select which application to be included in the build process set your
preferences the .config file as:

To include applications under the nuttx apps directory:
	CONFIG_BUILTIN_APPS_NUTTX=y/n
	
where each application can be controlled as:
	CONFIG_BUILTIN_APPS_<NAME>=y/n
	
To include applications under the user ../apps directory:
	CONFIG_BUILTIN_APPS_USER=y/n

When the user defines an option: (NOT IMPLEMENTED YET)
	CONFIG_BUILTIN_APP_START=<application name>

then after initialization of the NuttX OS it starts this application
using the exec_nuttapp() method.

Application skeleton can be found under the hello sub-directory,
which shows how an application can be added to the project. One must
define:
 1. create sub-directory as: appname
 2. provide entry point: appname_main()
 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 enable/disable option in the top file in this directory as:
	ifeq CONFIG_BUILTIN_APPS_<NAME>
	...