blob: 48eeaeee785236a32f4b3f5440046554ed05904e [file] [log] [blame]
.. _apps_overview:
Application Overview
####################
A Zephyr application is a collection of user-supplied files that can be built
into an application image that executes on a board.
Each application resides in a distinct directory created by the developer.
The directory has the following structure.
* **Application source code files**: An application typically provides one
or more application-specific files, written in C or assembly language. These
files are usually located in a sub-directory called :file:`src`.
* **Kernel configuration files**: An application typically provides a configuration
file (:file:`.conf`) that specifies values for one or more kernel configuration
options. If omitted, the application's existing kernel configuration option values
are used; if no existing values are provided, the kernel's default configuration
values are used.
* **MDEF file**: A microkernel application typically provides a Microkernel
DEFinitions file (:file:`.mdef`) that defines the public kernel objects
used by the application and the kernel. If omitted, no public kernel objects
are defined. This file is not used with a nanokernel-only application.
* **Makefile**: This file typically contains a handful of lines that tell the build
system where to find the files mentioned above, as well as the desired target
board configuration and kernel type (either microkernel or nanokernel).
Once the application has been defined, it can be built with a single command.
The results of the build process, including the final application image,
are located in a sub-directory called :file:`outdir`.