Commit Graph

125 Commits

Author SHA1 Message Date
Rodrigo Caballero d7c32911c4 Doc: Create the Reference Guides part.
Placeholders were created for the missing content. The automatically
generated API docs were separated from the Doxygen collaboration guide.
The Kbuild User's Guide was moved unchanged.

Change-Id: I07dfed61bfbb3cad60372c57dc3cbdf627c872f0
Signed-off-by: Rodrigo Caballero <rodrigo.caballero.abraham@intel.com>
2016-02-05 20:15:20 -05:00
Rodrigo Caballero 4e472fa2fe Doc: Add the Platform Development Primer to the structure.
The content of the files was left unchanged except for labels for
cros-referncing, the main title of the part and the tabs on the tables
which were changed to spaces. That last change ensures the integrity of
the tables independently of editor. The structure of the content files
will be revised at a later time.

Change-Id: I90477966fb3f4727d61e859d77682b529c83337d
Signed-off-by: Rodrigo Caballero <rodrigo.caballero.abraham@intel.com>
2016-02-05 20:15:19 -05:00
Rodrigo Caballero d838f82aaa Doc: Creates the Application Dev. Primer with the existing content.
Moves the content found in the development part to the new Application
Development Primer. Creates a master file for the new part and a
placeholder for nanokernel-only applications. Labels that have already
been changed in prior changes of the topic were updated. The project's
master file was changed to include the new part.

Change-Id: I8e9df5b3e5d382997caf62b7503274e4821137e0
Signed-off-by: Rodrigo Caballero <rodrigo.caballero.abraham@intel.com>
2016-02-05 20:15:19 -05:00
Rodrigo Caballero 2eb7017640 Doc: Change the Network Stack information to the Kernel Primer.
Moves the Network Stack information to the Kernel Primer. Labels were
updated to reflect the new structure. 

Change-Id: Iaea3cf3506476dee3f165eeb9c4c1fd49af54c90
Signed-off-by: Rodrigo Caballero <rodrigo.caballero.abraham@intel.com>
2016-02-05 20:15:19 -05:00
Rodrigo Caballero c720db67d3 Doc: Change the Driver Model to its own section of the Kernel Primer.
Moves the placeholder to the proper location.

Change-Id: I952640912714073f1e0ac4a0bcb2d2b320faaee4
Signed-off-by: Rodrigo Caballero <rodrigo.caballero.abraham@intel.com>
2016-02-05 20:15:19 -05:00
Rodrigo Caballero f81ee6efdd Doc: Change the Nanokernel Objects to the Nanokernel Services section.
Moves the Nanokernel Object documentation to a new Nanokernel Services
section within the Kernel Primer. Labels, cross-references, figures,
headings and filenames were updated to reflect the new structure. 

Change-Id: I04f97e712d78cd211a8ed1315f86895a51affa01
Signed-off-by: Rodrigo Caballero <rodrigo.caballero.abraham@intel.com>
2016-02-05 20:15:19 -05:00
Rodrigo Caballero 4d8b60adca Doc: Change the Microkernel Objects to the Microkernel Services section.
Moves the Microkernel Object documentation to a new Microkernel Services
section within the Kernel Primer. Labels, cross-references, figures,
headings and filenames were updated to reflect the new structure. 

Change-Id: Ia2a91410a94caa8a97bb8211db5afc84b5dc0974
Signed-off-by: Rodrigo Caballero <rodrigo.caballero.abraham@intel.com>
2016-02-05 20:15:19 -05:00
Rodrigo Caballero d1e57e1569 Doc: Change the Architecture part to the Overview section.
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>
2016-02-05 20:15:19 -05:00
Rodrigo Caballero a952569f02 Doc: Create the Kernel Primer.
Creates the Kernel Primer, removes overview modules that are no longer
needed and updates the master file to include the new part.

Change-Id: I6d7f53f019089d502e763ecc1789fb152c90c465
Signed-off-by: Rodrigo Caballero <rodrigo.caballero.abraham@intel.com>
2016-02-05 20:15:19 -05:00
Rodrigo Caballero a8f3110905 Doc: Restructures the Quick Start Guide.
The Quick Start Guide is now comprised by Installing, Building and
Running the Zephyr Kernel Guides. The Installing Guide contains all the
procedures needed to install the required components and get access to
the code. The Building Guide contains the procedure to build the kernel
using a sample application. The Running Guide contains the procedures to
run an application using QEMU or the Galileo 2 board. Files and folders
were renamed. The toctree directives were updated to reflect the new
names.

Change-Id: I4398befd4a24b12a50970c21a5288afa5c533fc8
Signed-off-by: Rodrigo Caballero <rodrigo.caballero.abraham@intel.com>
2016-02-05 20:15:19 -05:00
Daniel Leung 0abe07a0cd microkernel: introduce support for private memory maps
This enable defining memory maps in source code in addition to
defining in MDEF files. This introduces the macro
DEFINE_MEM_MAP(mem_map_name, ...). The memory maps created this
way are the same, in functionality, as those defined in MDEF
files. They can be manipulated by the standard microkernel
memory map APIs.

Define the memory map using:

  DEFINE_MEM_MAP(mem_map1, blocks, block_size);

and "mem_map1" can be used, for example:

  task_mem_map_alloc(mem_map1, ...);

or,

  task_mem_map_free(mem_map1, ...);

etc.

To use the memory map defined in another source file, simply add:

extern const kmemory_map_t mem_map1;

to the desired C or header file.

Change-Id: I9c551b90f9d0a95f961fd8ec1c5278c2ea44312d
Signed-off-by: Daniel Leung <daniel.leung@intel.com>
2016-02-05 20:15:18 -05:00
Daniel Leung 8eec65c742 samples/microkernel: add test for private pipes
This adds unit test for microkernel private pipes.
The code piggybacks to the public pipe test (by
including the same source file), so any updates to
the test will be applied to both.

Note that the prj.mdef are different for both tests, since
the private pipes test move the pipes inside source
code. So, both mdef files will need to be updated at
the same time.

Change-Id: I6fdb5eab7c3a1d6f4b72c26a3620cee0188b07a5
Signed-off-by: Daniel Leung <daniel.leung@intel.com>
2016-02-05 20:15:18 -05:00
Daniel Leung b5517ab61c microkernel: introduce support for private pipes
This enable defining pipes in source code in addition to
defining in MDEF files. This introduces the macro
DEFINE_PIPE(pipe_name, ...). The pipes created this
way are the same, in functionality, as those defined in MDEF
files. They can be manipulated by the standard microkernel
pipe APIs.

Define the pipe using:

  DEFINE_PIPE(pipe1, size);

and "pipe1" can be used, for example:

  task_pipe_put(pipe1, ...);

or,

  task_pipe_get(pipe1, ...);

etc.

To use the pipe defined in another source file, simply add:

extern const kpipe_t pipe1;

to the desired C or header file.

Change-Id: Iae8e04706359bc18aae51acc75df3e3d26388882
Signed-off-by: Daniel Leung <daniel.leung@intel.com>
2016-02-05 20:15:18 -05:00
Daniel Leung 2bc5880d85 microkernel: introduce support for private tasks
This enable defining tasks in source code in addition to
defining in MDEF files. This introduces the macro
DEFINE_TASK(task_name). The tasks created this
way are the same, in functionality, as those defined in MDEF
files. They can be manipulated by the standard microkernel
task APIs.

Define the task using:

  DEFINE_TASK(task1, priority, entry_func, stack_size, groups);

and "task1" can be used, for example:

  task_start(task1);

or,

  task_abort(task1);

etc.

To use the task defined in another source file, simply add:

extern const ktask_t task1;

to the desired C or header file.

Change-Id: Ib2f3572950ca74b359b7fde1ccd6cfd04783eefb
Signed-off-by: Daniel Leung <daniel.leung@intel.com>
2016-02-05 20:15:18 -05:00
Daniel Leung 39887c4358 microkernel: introduce support for private mailboxes
This enable defining mailboxes in source code in addition to
defining in MDEF files. This introduces the macro
DEFINE_MAILBOX(mailbox_name). The mailboxes created this
way are the same, in functionality, as those defined in MDEF
files. They can be manipulated by the standard microkernel
mailbox APIs.

Define the mailbox using:

  DEFINE_MAILBOX(mailbox1);

and "mailbox1" can be used, for example:

  task_mbox_put(mailbox1, &msg);

or,

  task_mbox_get(mailbox1, &msg);

etc.

To use the mailbox defined in another source file, simply add:

extern const kmox_t mailbox1;

to the desired C or header file.

Change-Id: I32d4194af740f96fc8df8c6cd3144a0c9accb4ec
Signed-off-by: Daniel Leung <daniel.leung@intel.com>
2016-02-05 20:15:18 -05:00
Daniel Leung e510742d43 microkernel: introduce support for private FIFOs
This enable defining FIFOs in source code in addition to
defining in MDEF files. This introduces the macro
DEFINE_FIFO(fifo_name). The FIFOs created this
way are the same, in functionality, as those defined in MDEF
files. They can be manipulated by the standard microkernel
FIFO APIs.

Define the FIFO using:

  DEFINE_FIFO(fifo1, depth, width);

and "fifo1" can be used, for example:

  task_fifo_put(fifo1);

or,

  task_fifo_get(fifo1);

etc.

To use the FIFO defined in another source file, simply add:

extern const kfifo_t fifo1;

to the desired C or header file.

Change-Id: I29667c4cfdcd0e6d189358478acf1a6149ecb826
Signed-off-by: Daniel Leung <daniel.leung@intel.com>
2016-02-05 20:15:18 -05:00
Daniel Leung a0224842bc microkernel: introduce support for private semaphores
This enable defining semaphores in source code in addition to
defining in MDEF files. This introduces the macro
DEFINE_SEMAPHORE(semaphore_name). The semaphores created this
way are the same, in functionality, as those defined in MDEF
files. They can be manipulated by the standard microkernel
semaphore APIs.

Define the semaphore using:

  DEFINE_SEMAPHORE(sem1);

and "sem1" can be used, for example:

  task_sem_give(sem1);

or,

  task_sem_take(sem1);

etc.

To use the semaphore defined in another source file, simply add:

extern const ksem_t sem11;

to the desired C or header file.

Change-Id: Ia9c128648f7a26fc776eeb8f6fcc4158b1712a97
Signed-off-by: Daniel Leung <daniel.leung@intel.com>
2016-02-05 20:15:18 -05:00
Daniel Leung 811c838ff1 microkernel: introduce support for private mutexes
This enable defining mutexes in source code in addition to
defining in MDEF files. This introduces the macro
DEFINE_MUTEX(mutex_name). The mutexes created this way are
the same, in functionality, as those defined in MDEF files.
They can be manipulated by the standard microkernel
mutex APIs.

Sample usage:

    DEFINE_MUTEX(mutex1);

    void one_function(void)
    {
        task_mutex_lock_wait(mutex1);
        ...
        task_mutex_unlock(mutex1);
    }

To use the mutex defined in another source file, simply add:

    extern const kmutex_t mutex1;

to the desired C or header file.

[ DL: This is a slightly modified version of similar patch
      by Allan Stephens available at
      https://oic-review.01.org/gerrit/3255 ]

Change-Id: Ib9cd8193eaf849a8aad1d217912759324ee8818e
Signed-off-by: Daniel Leung <daniel.leung@intel.com>
2016-02-05 20:14:46 -05:00
Carol Lee ec2a74619c Doc: Changes doxygen.config for index & auto-generated files.
Enables standard doxygen GUI that shows relationships
and allows code access.Navigate to forto-collab/docs/
html/index.html to view. Not linked to main docs in
this patch.Index changes to show a collapsed view as
default.

Change-Id: If496f221924d3504d8d9d120e3d80650e724af48
Signed-off-by: Carol Lee <carol.lee@windriver.com>
2016-02-05 20:14:45 -05:00
Allan Stephens 4a09639b64 doc: Enhancements for microkernel tasks
Enhances description for task definition. Adds examples of most
frequently used task operations. Enhances descriptions in task
API tables.

Change-Id: I5b29e2e2715f7d672f375861ae01b26ffa762fc8
Signed-off-by: Allan Stephens <allan.stephens@windriver.com>
2016-02-05 20:14:45 -05:00
Anas Nashif 486a2a1034 doc: fix docs target
The top make file has a documentation target that does not work.
Change it to work with our documentation and scripts.

Change-Id: Id32643900d122f54778e3179930f2e8e34387aa1
Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2016-02-05 20:14:45 -05:00
Juan Manuel Cruz 0425a9ebbe documentation: adds application qemu and debug reference
This commit adds a quick reference on how to debug an
application with qemu and gdb.

Change-Id: Ib75465b110a65285dc55888fbfb95e8271ad83f9
Signed-off-by: Juan Manuel Cruz <juan.m.cruz.alcaraz@linux.intel.com>
2016-02-05 20:14:45 -05:00
Juan Manuel Cruz eee3a9df95 documentation: updating kbuild project variables.
This commit updates information about Makefile variables
that define a project. It updates the definition for ARCH,
removes old BSP related definitions and adds definitions
for PLATFORM_CONFIG and O variables.

Change-Id: Id89251f576da0543b3349d75a87fa5b5e92326e7
Signed-off-by: Juan Manuel Cruz <juan.m.cruz.alcaraz@linux.intel.com>
2016-02-05 20:14:45 -05:00
Javier B Perez Hernandez 2ac4246077 doc: install guide: changed .bash to .sh
Change zephyr-env.bash to zephyr-env.sh on installation_building.rst
due to the filename with .bash doesn't exist on tree.

Change-Id: I813968e9f8bd12efce457baa632177b1254b3601
Signed-off-by: Javier B Perez Hernandez <javier.b.perez.hernandez@linux.intel.com>
2016-02-05 20:14:45 -05:00
Allan Stephens be59308978 doc: Enhancements for microkernel pipe objects
Enhances description for pipe definition. Adds examples of pipe
use. Enhances descriptions in pipe API table.

Change-Id: I14485a4c5ef964ab0000699a79d7632ee4130167
Signed-off-by: Allan Stephens <allan.stephens@windriver.com>
2016-02-05 20:14:42 -05:00
Allan Stephens ca3b1044a1 doc: More enhancements for microkernel mailbox objects
Adds examples of asynchronous mailbox operations. Adds missing
message priority support in synchronous mailbox operation examples.

Change-Id: I69a97d52b8bfbf98f31afed17c02a00d42e938e9
Signed-off-by: Allan Stephens <allan.stephens@windriver.com>
2016-02-05 20:14:42 -05:00
Andrew Boie 7c4056ec84 doc: add note about new ccache feature
Change-Id: I87be61744fec74441a2c89ae37d56034a343e4c7
Signed-off-by: Andrew Boie <andrew.p.boie@intel.com>
2016-02-05 20:14:42 -05:00
Allan Stephens a426390daa doc: Enhancements for microkernel mailbox objects
Enhances description for mailbox definition. Adds examples of basic
mailbox use. Enhances descriptions in mailbox API table.

Note: Enhancement of the initial part of this document is left
for future commits, as are examples of more complex mailbox operations
like asynchronous send and receive.

Change-Id: I9a0b46f7e71242a113fab2ded395e068fefede84
Signed-off-by: Allan Stephens <allan.stephens@windriver.com>
2016-02-05 20:14:42 -05:00
Rodrigo Caballero 79c4499fe1 Doc: Restructures the Kbuild documentation.
This change restructures the existing kbuild documentation. It adds the
labels to each module and does minor corrections in spelling, grammar
and ReST markup usage.

Change-Id: Id12705085a1f99e30204c7b82b4b95b28001cb00
Signed-off-by: Rodrigo Caballero <rodrigo.caballero.abraham@intel.com>
2016-02-05 20:14:41 -05:00
Allan Stephens 0a66ab3f2c doc: Add example of giving a microkernel sempahore from an ISR
Change-Id: I13ad61239659a17768831290535f02787776282c
Signed-off-by: Allan Stephens <allan.stephens@windriver.com>
2016-02-05 20:14:41 -05:00
Allan Stephens 5d4a3178a0 doc: Enhancements for microkernel FIFO objects
Enhances description of FIFO definition. Adds examples of FIFO use.
Enhances descriptions in FIFO API table.

Change-Id: I29eed159651eed8d078ddc23818812246e58514e
Signed-off-by: Allan Stephens <allan.stephens@windriver.com>
2016-02-05 20:14:41 -05:00
Allan Stephens 5118d2fa6a doc: Enhancements for microkernel event objects
Enhances description for event definition. Adds examples of event
use. Enhances descriptions in event API table.

Note: Enhancement of the initial part of this document is left
for future commits.

Change-Id: Ic754daacecbcb2b0ddc6b3a59d0a3b88d622662f
Signed-off-by: Allan Stephens <allan.stephens@windriver.com>
2016-02-05 20:14:41 -05:00
Allan Stephens 359fc6cdfa doc: Enhancements for microkernel semaphore objects
Enhances description for semaphore definition. Adds examples of
semaphore use. Fills in gaps in the semaphore API table.

Note: Enhancement of the initial part of this document is left
for future commits.

Change-Id: I45a1326e564f20db2beed0c761584804ad61b053
Signed-off-by: Allan Stephens <allan.stephens@windriver.com>
2016-02-05 20:14:41 -05:00
Rodrigo Caballero 8fd2fd8de4 DOC: Restructures the documentation in two parts.
The contents are split in two: Zephyr Kernel and Zephyr Project. Under
Zephyr Kernel is all the content directly about the code base. Under
Zephyr Project is all the content about the development of the kernel
and of applications. Only the Doxygen document needed to be split. The
output of the in-code comments was placed under the Zephyr Kernel while
all the Doxygen guidelines and the extraction process information were
placed under the Zephyr Project.

Change-Id: I4f7b674d19449968e976b63f40bcaa9737cc0ecb
Signed-off-by: Rodrigo Caballero <rodrigo.caballero.abraham@intel.com>
2016-02-05 20:14:39 -05:00
Anas Nashif 212146d5b4 doxygen: fix comments in printk.c
Change-Id: Ia76b2ef1798999057d8b3a8f1e100e930702d179
Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2016-02-05 20:14:39 -05:00
Carol Lee 20fdf29cb9 doc: Doc changes made to reflects new ISR code.
ISR documentation changed to incorporate new ISR functionality.

Change-Id: I35a95dab9f4fd407ff297f55faa1e3ebbefc8064
Signed-off-by: Carol Lee <carol.lee@windriver.com>
2016-02-05 20:14:38 -05:00
Allan Stephens 0bd2bafb57 doc: Eliminate unneeded preamble to mutex documentation
This text was originally used to illustrate the layout that would
be used for all microkernel object documentation, but it's no
longer needed since enough files have been converted to make
the approach self-evident.

Change-Id: I2646f7e7c0e541dd5930c13b2319aa85205a8111
Signed-off-by: Allan Stephens <allan.stephens@windriver.com>
2016-02-05 20:14:38 -05:00
Andrew Boie 84fed36539 Kbuild: Introduce QEMU_PIPE option
If set, 'make qemu' will direct its console output to a named pipe and
disable the interactive monitor. Intended for use with the new sanity
check system which will parallelize test execution.

Change-Id: I902f77c02ed3f210891ff13147afea890e64d9c1
Signed-off-by: Andrew Boie <andrew.p.boie@intel.com>
2016-02-05 20:14:38 -05:00
Rodrigo Caballero aec402b498 DOC: Fix broken tables of the microkernel object documentation.
Fixes the tables of the APIs so that they are displayed properly on the
HTML output.

Change-Id: I616def73e84d5b0ec51e5bc3fa0ce3673e9af344
Signed-off-by: Rodrigo Caballero <rodrigo.caballero.abraham@intel.com>
2016-02-05 20:14:38 -05:00
Peter Mitsis 42f8ae553f arch/x86: Remove unsupported platform configuration files
Removes the generic_pc and generic_pc_pentium4 platform configuration files
as Zephyr will not support them.

Change-Id: Iffa917d8e31702e6280eca3cbc9cdaf3f8ed9c98
Signed-off-by: Peter Mitsis <peter.mitsis@windriver.com>
2016-02-05 20:14:38 -05:00
Carol Lee 271838b21e doc: Update to objects list in architecture_microkernel.
Removed "most important microkernel objects" and changed to
"microkerel objects are" and listed all the microkernel objects.

Change-Id: I18c63952085cc91f6d86045a86a5ea3b59982ee2
Signed-off-by: Carol Lee <carol.lee@windriver.com>
2016-02-05 20:14:38 -05:00
Rodrigo Caballero ccea9d3581 DOC: Split the microkernel object document into a file per object type.
Split the contents of microkernel.rst into several files. Each file
contains only the information of a specific object type. Labels have
been added to accomodate cross-references to each object type. Changed
the tables that did not comply with a 100 character line length.

Change-Id: I983bc76a89b1cf01442de53737de4f76a5262264
Signed-off-by: Rodrigo Caballero <rodrigo.caballero.abraham@intel.com>
2016-02-05 20:14:37 -05:00
Rodrigo Caballero 3fddad2eda DOC: Updated the overview modules to reflect the renaming of files.
The overview modules need to be updated after changing the file names.
The main overview module was not renamed. Therefore, no changes are
needed outside of the object folder.

Change-Id: I34590db3a680b2182aa86544820572a657b8e1ae
Signed-off-by: Rodrigo Caballero <rodrigo.caballero.abraham@intel.com>
2016-02-05 20:14:37 -05:00
Rodrigo Caballero 19551729eb DOC: Renames the Object Documentation files prior to restructure.
The object documentation files need to be renamed before they can be
split and restructured.

Change-Id: Ia3262885b801ed02b231ab14c6d4c0f4e2424cae
Signed-off-by: Rodrigo Caballero <rodrigo.caballero.abraham@intel.com>
2016-02-05 20:14:37 -05:00
Carol Lee cb6f2eec67 doc: Memory Pool documentation
Adds new documentation for memory pools.

Change-Id: Icca2f24971891bb70bb866eba71c6f8271e31bff
Signed-off-by: Carol Lee <carol.lee@windriver.com>
2016-02-05 20:14:37 -05:00
Anas Nashif fdce514ceb doxygen: scan all of include/ for docs
Also scan for .S files, not .s. All .s files have been renamed to
.S.

Change-Id: I73f8fccc0a3be950d47020e86cc6d24ee1ad37c4
Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2016-02-05 20:14:37 -05:00
Andrew Boie 4f9a95ff1e kbuild: remove BSP_VARIANT Makefile variable
This wasn't being used anywhere and seems to be a legcy of old sanity tests.
By removing this x86 is no longer a special case.

Change-Id: I78c668a7d9e6bc7c7f60d91712c4c21c0121b7e2
Signed-off-by: Andrew Boie <andrew.p.boie@intel.com>
2016-02-05 20:14:37 -05:00
Rodrigo Caballero 7650bc0daa doc: Adds step by step procedure to develop microkernel apps.
Includes the procedure and updates all needed cross-references. The
procedure will include examples of MDEF, Makefiles and .conf files.

Change-Id: If5b3e88843a9257036265668765e3ad012818ae9
Signed-off-by: Rodrigo Caballero <rodrigo.caballero.abraham@intel.com>
2016-02-05 20:14:37 -05:00
Rodrigo Caballero e494bd71e6 Doc: Add information regarding application development.
General information regarding the development of microkernel
applications is included. A step by step process is included but 
still in development. Cross-references are added and updated as needed.

Change-Id: Ib7442883016c92c660d03d806009a0bd1932fce7
Signed-off-by: Rodrigo Caballero <rodrigo.caballero.abraham@intel.com>
2016-02-05 20:14:33 -05:00
Rodrigo Caballero cfb5bdc202 Doc: Add license guidelines with the acceptable code licenses.
The license guidelines list which code licenses are acceptable and what
licenses can be problematic. It also includes the IANAL disclaimer. The
collaboration.rst was changed to include the new content.

Change-Id: I92081a13575453c68b2492129126be4b4cee9766
Signed-off-by: Rodrigo Caballero <rodrigo.caballero.abraham@intel.com>
2016-02-05 20:14:33 -05:00