| .. _application_fundamentals: |
| |
| Application Fundamentals |
| ######################## |
| |
| A Zephyr application is defined by creating a directory containing the |
| following files. |
| |
| * **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. |
| |
| A microkernel application typically provides an additional :abbr:`Microkernel |
| Definitions File (MDEF)` under the extension :file:`.mdef`. This file defines |
| all of the system's public microkernel objects. 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`. |
| |
| For additional information see: |
| |
| * :ref:`application` |