doc: Fix labels markup and add figures to Application Primer.
Changes the labels to be consistent with the rest of the documentation. Fixed other minor markup and language issues. Adds the missing figures for apps_kernel_conf.rst Change-Id: I34a7650c04bb2d1f525eaad4efa7395f8272c88f Signed-off-by: Rodrigo Caballero <rodrigo.caballero.abraham@intel.com>
This commit is contained in:
parent
d81d8bcbfa
commit
06ba8f7b34
13 changed files with 101 additions and 124 deletions
|
@ -10,7 +10,7 @@ Audience
|
|||
--------
|
||||
|
||||
Although anybody may use this primer to learn how to build microkernel and
|
||||
nanokernel applications on |project|, the primary audience for this guide
|
||||
nanokernel applications on the |codename|, the primary audience for this guide
|
||||
is:
|
||||
|
||||
* Application developers coding an application.
|
||||
|
|
|
@ -54,8 +54,8 @@ following procedure:
|
|||
|
||||
#. Navigate to the application directory :file:`~/appDir`.
|
||||
|
||||
#. Run :command:`$ make clean`, or manually delete the generated files, including
|
||||
the :file:`.config` file.
|
||||
#. Run :command:`$ make clean`, or manually delete the generated files,
|
||||
including the :file:`.config` file.
|
||||
|
||||
#. Run :command:`$ make pristine`.
|
||||
|
||||
|
|
|
@ -3,55 +3,55 @@
|
|||
Application Code Development
|
||||
############################
|
||||
|
||||
* `Services`_
|
||||
* `Understanding Naming Conventions`_
|
||||
* `Understanding src Directory Makefile Requirements`_
|
||||
* `Adding Source Files and Makefiles to src Directories`_
|
||||
* `Enhancing the Zephyr Kernel`_
|
||||
.. contents::
|
||||
:local:
|
||||
:depth: 1
|
||||
|
||||
.. _develop_services:
|
||||
|
||||
Services
|
||||
********
|
||||
.. _Services:
|
||||
|
||||
The |codename| kernel services architecture has services that are
|
||||
The |codename| services architecture has services that are
|
||||
specific to the microkernel, services that are specific to the
|
||||
nanokernel, and services that are common, or shared, between the
|
||||
two.
|
||||
|
||||
**Microkernel Services**
|
||||
Microkernel Services
|
||||
====================
|
||||
|
||||
For a complete list of microkernel services, including a description
|
||||
of each with code examples, see :ref:`Microkernel Services`.
|
||||
of each with code examples, see :ref:`microkernel`.
|
||||
|
||||
.. _note::
|
||||
|
||||
There are more microkernel services than those defined in
|
||||
the MDEF.
|
||||
|
||||
**Nanokernel Services**
|
||||
Nanokernel Services
|
||||
===================
|
||||
|
||||
For a complete list of nanokernel services, including a description
|
||||
of each with code examples, see :ref:`Nanokernel Services`.
|
||||
of each with code examples, see :ref:`nanokernel`.
|
||||
|
||||
**Common Services**
|
||||
Common Services
|
||||
===============
|
||||
|
||||
For a complete list of services common to both the nanokernel and
|
||||
microkernel, including a description of each with code examples,
|
||||
see :ref:`Common Services`.
|
||||
see :ref:`common_kernel_services`.
|
||||
|
||||
|
||||
Procedures and Conventions
|
||||
**************************
|
||||
|
||||
. ._Understanding Naming Conventions:
|
||||
|
||||
Understanding Naming Conventions
|
||||
================================
|
||||
|
||||
|codename| limits the use of some prefixes to internal use only. For
|
||||
The kernel limits the use of some prefixes to internal use only. For
|
||||
more information, see :ref:`naming_conventions`.
|
||||
|
||||
.. _Understanding src Directory Makefile Requirements:
|
||||
.. _src_makefiles_reqs:
|
||||
|
||||
Understanding src Directory Makefile Requirements
|
||||
=================================================
|
||||
|
@ -75,8 +75,7 @@ directory:
|
|||
The src directory Makefiles discussed here are distinct from
|
||||
the top-level application Makefile.
|
||||
|
||||
|
||||
.. _Adding Source Files and Makefiles to src Directories:
|
||||
.. _src_files_directories:
|
||||
|
||||
Adding Source Files and Makefiles to src Directories
|
||||
====================================================
|
||||
|
@ -144,7 +143,7 @@ examine this file in context, navigate to:
|
|||
obj-y = phil_fiber.o phil_task.o
|
||||
|
||||
|
||||
.. _`Enhancing the Zephyr Kernel:
|
||||
.. _`enhancing_kernel`:
|
||||
|
||||
Enhancing the Zephyr Kernel
|
||||
===========================
|
||||
|
|
|
@ -9,13 +9,13 @@ and referred to from the procedures that require them.
|
|||
Procedures
|
||||
**********
|
||||
|
||||
* `Setting Environment Variables`_
|
||||
* `set_environment_variables`_
|
||||
|
||||
Setting Environment Variables
|
||||
=============================
|
||||
|
||||
Set environment variables every time you open a terminal console to work on
|
||||
|codename| applications.
|
||||
|codename|'s applications.
|
||||
|
||||
Steps
|
||||
-----
|
||||
|
@ -40,10 +40,9 @@ Steps
|
|||
$ export XTOOLS_TOOLCHAIN_PATH=/opt/otc_viper/x-tools/
|
||||
$ export QEMU_BIN_PATH=/usr/local/bin
|
||||
|
||||
2. Navigate to the |codename| installation directory and enter:
|
||||
2. To set the environment variable :envvar:`$(ZEPHYR_BASE)`, navigate to the
|
||||
kernel's installation directory and enter:
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
$ source zephyr-env.sh
|
||||
|
||||
To set the environment variable :envvar:`$(ZEPHYR_BASE)`.
|
|
@ -3,13 +3,13 @@
|
|||
Application Development Workflow
|
||||
################################
|
||||
|
||||
The application development workflow identifies procedures needed to create, build, and
|
||||
run a |codename| microkernel or nanokernel application.
|
||||
The application development workflow identifies the procedures needed to
|
||||
create, build, and run a |codename|'s microkernel or nanokernel application.
|
||||
|
||||
Before you build
|
||||
----------------
|
||||
|
||||
* Check that your Linux host meets the minimum requirements specified in the |codename|
|
||||
* Check that your Linux host meets the minimum requirements specified in the
|
||||
:ref:`quick_start`.
|
||||
|
||||
* Check that environment variables have been configured correctly as outlined
|
||||
|
@ -18,42 +18,41 @@ Before you build
|
|||
Workflow
|
||||
--------
|
||||
|
||||
1. Create a directory structure for your Zephyr application
|
||||
1. Create a directory structure for your Zephyr application.
|
||||
|
||||
a) :ref:`Creating an Application and Source Code Directory using the
|
||||
CLI`
|
||||
a) :ref:`create_directory_structure`
|
||||
|
||||
and add a Makefile
|
||||
2. Add a Makefile
|
||||
|
||||
b) :ref:`Creating an Application Makefile`
|
||||
b) :ref:`create_src_makefile`
|
||||
|
||||
2. Define the application's default kernel configuration using
|
||||
3. Define the application's default kernel configuration using
|
||||
:ref:`Defining the Application's Default Kernel Configuration`.
|
||||
|
||||
3. Define kernel configuration override options for the application
|
||||
4. Define kernel configuration override options for the application
|
||||
using :ref:`Overriding the Application's Default Kernel
|
||||
Configuration`.
|
||||
|
||||
4. For a microkernel application, define objects as you develop code
|
||||
5. For a microkernel application, define objects as you develop code
|
||||
using :ref:`Creating and Configuring an MDEF File for a Microkernel
|
||||
Application`.
|
||||
|
||||
5. For all applications, define nanokernel objects as you need them in
|
||||
6. For all applications, define nanokernel objects as you need them in
|
||||
code.
|
||||
|
||||
6. Develop source code and add source code files to the src directory.
|
||||
7. Develop source code and add source code files to the src directory.
|
||||
|
||||
* :ref:`Understanding Naming Conventions`
|
||||
* :ref:`Understanding src Directory Makefile Requirements`
|
||||
* :ref:`Adding Source Files and Makefiles to src Directories`
|
||||
|
||||
7. Build an application image.
|
||||
8. Build an application image.
|
||||
|
||||
* :ref:`Building an Application`
|
||||
* :ref:`Rebuilding an Application`
|
||||
|
||||
8. To test the application image's functionality on simulated hardware
|
||||
with QEMU, see :ref:`Running an Application`
|
||||
9. To test the application image's functionality on simulated hardware
|
||||
with QEMU, see :ref:`Running an Application`.
|
||||
|
||||
9. To load an application image on a target hardware, see using :ref:`Platform`
|
||||
documentation.
|
||||
10. To load an application image on a target hardware, see using
|
||||
:ref:`Platform` documentation.
|
||||
|
|
|
@ -23,18 +23,16 @@ it is specified:
|
|||
When the default platform configuration settings are sufficient
|
||||
for your application, a :file:`prj.conf` file is not needed.
|
||||
Skip ahead to
|
||||
:ref:`Overriding the Application's Default Kernel Configuration`.
|
||||
:ref:`override_kernel_conf`.
|
||||
|
||||
|
||||
Procedures
|
||||
**********
|
||||
|
||||
* `Defining the Application's Default Kernel Configuration`_
|
||||
* `define_default_kernel_conf`_
|
||||
|
||||
* `Overriding the Application's Default Kernel Configuration`_
|
||||
|
||||
.. _Defining the Application's Default Kernel Configuration:
|
||||
|
||||
The procedures that follow describe how to configure a :file:`prj.conf`
|
||||
file and how to configure kernel options for microkernel and nanokernel
|
||||
applications. For information on how to work with kernel option
|
||||
|
@ -46,6 +44,8 @@ inter-dependencies and platform configuration-default options, see the
|
|||
There are currently a number of experimental options not yet
|
||||
fully supported.
|
||||
|
||||
.. _define_default_kernel_conf:
|
||||
|
||||
Defining the Application's Default Kernel Configuration
|
||||
=======================================================
|
||||
|
||||
|
@ -97,7 +97,7 @@ Steps
|
|||
3. Save and close the file.
|
||||
|
||||
|
||||
.. _Overriding the Application's Default Kernel Configuration:
|
||||
.. _override_kernel_conf:
|
||||
|
||||
Overriding the Application's Default Kernel Configuration
|
||||
=========================================================
|
||||
|
@ -107,6 +107,7 @@ temporarily alter the application’s configuration, perhaps
|
|||
to test the effect of a change.
|
||||
|
||||
.. _note::
|
||||
|
||||
If you want to permanently alter the configuration you
|
||||
should revise the :file:`.conf` file.
|
||||
|
||||
|
|
|
@ -9,12 +9,12 @@ See :ref:`microkernel` for example MDEF entries.
|
|||
Procedure
|
||||
*********
|
||||
|
||||
.. _Creating and Configuring an MDEF File for a Microkernel Application:
|
||||
.. _create_mdef:
|
||||
|
||||
Creating and Configuring an MDEF File for a Microkernel Application
|
||||
===================================================================
|
||||
Creating and Configuring an MDEF for a Microkernel Application
|
||||
==============================================================
|
||||
|
||||
Create the MDEF file to define microkernel objects used in your
|
||||
Create the MDEF to define microkernel objects used in your
|
||||
application when they apply to the application as a whole.
|
||||
You do not need to define every object before writing code. In
|
||||
some cases, the necessary objects aren't obvious until you begin
|
||||
|
@ -23,7 +23,7 @@ before your application will compile successfully.
|
|||
|
||||
.. _note::
|
||||
|
||||
Nanokernel applications do not use an MDEF file because microkernel
|
||||
Nanokernel applications do not use an MDEF because microkernel
|
||||
objects cannot be used in applications of this type.
|
||||
|
||||
Before you begin
|
||||
|
@ -37,7 +37,7 @@ Before you begin
|
|||
Steps
|
||||
-----
|
||||
|
||||
1. Create an MDEF file in your application directory
|
||||
1. Create an MDEF in your application directory
|
||||
(:file:`~/appDir ~) using
|
||||
the name you specified in your application Makefile.
|
||||
(See :ref:`Creating an Application Makefile`).
|
||||
|
@ -46,7 +46,7 @@ Steps
|
|||
|
||||
$ touch prj.mdef
|
||||
|
||||
The default MDEF file name is :file:`prj.mdef`.
|
||||
The default MDEF name is :file:`prj.mdef`.
|
||||
|
||||
2. Open the file using a standard text editor.
|
||||
|
||||
|
@ -78,40 +78,19 @@ Steps
|
|||
Some microkernel objects, such as Task IRQs, are not
|
||||
defined in an :file:`.mdef` file.
|
||||
|
||||
The following example shows the content of the :file:`.mdef`
|
||||
file for the Philosophers' sample application. The sample
|
||||
The following example shows the content of the
|
||||
:file:`samples/microkernel/apps/philosophers/proj.mdef`
|
||||
for the Philosophers' sample application. The sample
|
||||
uses seven tasks and six mutexes.
|
||||
|
||||
Example MDEF File
|
||||
-----------------
|
||||
|
||||
.. code-block:: c
|
||||
|
||||
% Application : DiningPhilosophers
|
||||
% TASKGROUP NAME
|
||||
% ==============
|
||||
TASKGROUP PHI
|
||||
% TASK NAME PRIO ENTRY STACK GROUPS
|
||||
% ==================================================
|
||||
TASK philTask 5 philDemo 1024 [EXE]
|
||||
TASK phi1Task0 6 philEntry 1024 [PHI]
|
||||
TASK philTask1 6 philEntry 1024 [PHI]
|
||||
TASK philTask2 6 philEntry 1024 [PHI]
|
||||
TASK philTask3 6 philEntry 1024 [PHI]
|
||||
TASK philTask4 6 philEntry 1024 [PHI]
|
||||
TASK philTask5 6 philEntry 1024 [PHI]
|
||||
% MUTEX NAME
|
||||
% ================
|
||||
MUTEX forkMutex0
|
||||
MUTEX forkMutex1
|
||||
MUTEX forkMutex2
|
||||
MUTEX forkMutex3
|
||||
MUTEX forkMutex4
|
||||
MUTEX forkMutex5
|
||||
Example MDEF
|
||||
------------
|
||||
|
||||
.. literalinclude:: ../../samples/microkernel/apps/philosophers/proj.mdef
|
||||
:linenos:
|
||||
|
||||
Related Topics
|
||||
--------------
|
||||
|
||||
:ref:`Understanding src Directory Makefile Requirements`
|
||||
:ref:`Adding Source Files and Makefiles to src Directories`
|
||||
:ref:`src_makefiles_reqs`
|
||||
:ref:`src_files_directories`
|
||||
|
|
|
@ -10,7 +10,7 @@ in lieu of) loading and running it on actual target hardware.
|
|||
Procedures
|
||||
**********
|
||||
|
||||
.. _qemu:
|
||||
.. _run_app_qemu:
|
||||
|
||||
Running an Application using QEMU
|
||||
=================================
|
||||
|
|
BIN
doc/application/figures/app_kernel_conf_1.png
Normal file
BIN
doc/application/figures/app_kernel_conf_1.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 55 KiB |
BIN
doc/application/figures/app_kernel_conf_2.png
Normal file
BIN
doc/application/figures/app_kernel_conf_2.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 8.5 KiB |
BIN
doc/application/figures/app_kernel_conf_3.png
Normal file
BIN
doc/application/figures/app_kernel_conf_3.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 9.2 KiB |
BIN
doc/application/figures/app_kernel_conf_4.png
Normal file
BIN
doc/application/figures/app_kernel_conf_4.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 97 KiB |
BIN
doc/application/figures/app_kernel_conf_5.png
Normal file
BIN
doc/application/figures/app_kernel_conf_5.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 5.4 KiB |
Loading…
Add table
Add a link
Reference in a new issue