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_=y/n To include applications under the user ../apps directory: CONFIG_BUILTIN_APPS_USER=y/n When the user defines an option: CONFIG_BUILTIN_APP_START= 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_ ... To include user (external) application create an application under ../apps directory and steps 1. - 3. The last 4. step is not needed, as, all applications under ../apps becomes a part of the build process.