blob: 0af3c960e22d87204b64e719b84194e791b47e7a [file] [log] [blame]
.. _building_zephyr:
Building and Running an Application
###################################
Congratulations! You have successfully set up your development environment
and created a Zephyr application. This section provides all the steps to
build a Zephyr kernel containing your application and run it. We use the
`Hello World` sample application as an example. However, the steps needed are
the same for your own application.
The processes to build and run a Zephyr application are the same across
operating systems. Nevertheless, the commands needed do differ from one OS to
the next. The following sections contain the commands used in a Linux
development environment. If you are using Mac OS please use the appropriate
commands for your OS.
Building a Sample Application
*****************************
To build an example application follow these steps:
#. Go to the root directory of the Zephyr Project.
#. Set the environment variables on each console, see
:ref:`environment_variables`
#. Build the example project, enter:
.. code-block:: console
$ cd $ZEPHYR_BASE/samples/microkernel/apps/hello_world
$ make
The above invocation of make will build the hello_world sample application
using the default settings defined in the application's Makefile. You can
build for a different platform by defining the variable BOARD with one of the
supported platforms, for example:
.. code-block:: console
$ make BOARD=minnowboard
For further information on the supported platforms go see
:ref:`here <board>`. Alternatively, run the following command on the code
root to obtain a list of the supported platforms of a particular
architecture:
.. code-block:: console
$ make help
The sample projects for the microkernel and the nanokernel are found
at :file:`$ZEPHYR_BASE/samples/microkernel/apps` and
:file:`$ZEPHYR_BASE/samples/nanokernel/apps` respectively.
After building an application successfully, the results can be found in the
:file:`outdir` sub-directory under the application root directory.
The ELF binaries generated by the build system are named by default
:file:`zephyr.elf`. This value can be overridden in the Makefile. The build
system generates different names for different use cases depending on the
hardware and platforms used.
Running a Sample Application
****************************
To perform rapid testing of an application in the development environment you
can use QEMU with some of the supported platforms and architecture. This can
be easily accomplished by calling a special target when building an
application that invokes QEMU once the build process is completed.
1. Run an application using the default board configuration, type:
.. code-block:: console
$ make qemu
To run an application using the x86 emulation board configuration (qemu_x86), type:
.. code-block:: console
$ make BOARD=qemu_x86 qemu
To run an application using the ARM qemu_cortex_m3 board configuration, type:
.. code-block:: console
$ make BOARD=qemu_cortex_m3 ARCH=arm qemu
QEMU is not supported on all boards and platforms. Some samples and test
cases might fail when running in the emulator. When developing for a specific
hardware target you should always test on the actual hardware and should not
rely on testing in the QEMU emulation environment only.