Moves the files from Architecture to the Overview section of the Kernel Primer. Cross-references and figures were updated to reflect the new structure. Headings and content were changed as little as possible. These changes are needed to implement the proposed new structure of the documentation. Content was changed as created as little as possible. Change-Id: Id1f91ff6c8f858bfd48ad034594ba38531c7e1c4 Signed-off-by: Rodrigo Caballero <rodrigo.caballero.abraham@intel.com>
71 lines
2.8 KiB
ReStructuredText
71 lines
2.8 KiB
ReStructuredText
.. _overview_apps:
|
|
|
|
The Application Model
|
|
#####################
|
|
|
|
The |codename| provides developers with a development environment to create
|
|
applications with a very small footprint without sacrificing functionality.
|
|
The hardware resources that you use determine many of the things you need to
|
|
consider while developing your applications. This section provides you the
|
|
information common to all supported platforms and explains the way that the
|
|
|codename| works with your application.
|
|
|
|
Large platforms allow your applications to use the microkernel. Smaller
|
|
platforms might only allow nanokernel applications. All applications are
|
|
built together with the kernel providing a single binary for each platform.
|
|
Applications can use any combination of the three execution contexts
|
|
available: ISRs, fibers and tasks. Nanokernel only applications can only use
|
|
a single task whereas microkernel applications can make use of multiple
|
|
tasks.
|
|
|
|
The application calls the different execution contexts it needs in order to
|
|
perform its processes. It is then within a execution context that the
|
|
appropriate kernel objects are called and used via their APIs. Keep in mind
|
|
that some objects can only be used within a certain context. For more
|
|
information regarding execution contexts, microkernel objects and nanokernel
|
|
objects please see the
|
|
|
|
|
|
Microkernel Applications
|
|
************************
|
|
|
|
Microkernel applications are C functions that can use the |codename|'s API
|
|
to accomplish their purpose. These functions are executed within one of
|
|
three contexts: tasks, fibers and ISRs. Some of the API is only available in
|
|
specific execution contexts but, typically, microkernel applications are
|
|
coded for execution within multiple tasks.
|
|
|
|
Microkernel applications require three components to work properly:
|
|
|
|
* C source code: The source contains all the instructions that the
|
|
application needs to fulfill its purpose.
|
|
|
|
* MDEF file: This file contains all the definitions of the microkernel
|
|
objects used in the source code.
|
|
|
|
* Makefiles and .conf files: These files add your application to the
|
|
|codename|'s build system. They allow the application to be compiled and
|
|
built as part of the kernel.
|
|
|
|
These are the general steps of the development of a microkernel application:
|
|
|
|
#. Create the MDEF file for the application with the microkernel objects
|
|
that the application will use.
|
|
|
|
#. Write the microkernel application including the proper header files.
|
|
|
|
#. Create the application's Makefiles.
|
|
|
|
#. Create the application's .conf files.
|
|
|
|
#. Build your application with the |codename|.
|
|
|
|
How to perform each of these steps can be found in
|
|
:ref:`application_primer`.
|
|
|
|
Keep in mind that the application will be built with the kernel. You can
|
|
expand the functionality of the kernel as needed. For information regarding
|
|
the creation of drivers refer to :ref:`driver_model`.
|
|
|
|
Nanokernel Only Applications
|
|
**************************** |