zephyr/doc/api/nanokernel_api.rst

142 lines
3.3 KiB
ReStructuredText

.. nanokernel_api:
Nanokernel APIs
###############
.. contents::
:depth: 1
:local:
:backlinks: top
Fibers
******
A :dfn:`fiber` is a lightweight, non-preemptible thread of execution that
implements a portion of an application's processing. Fibers are often
used in device drivers and for performance-critical work.
For an overview and important information about Fibers, see :ref:`nanokernel_fibers`.
------
.. doxygengroup:: nanokernel_fiber
:project: Zephyr
:content-only:
Tasks
******
A :dfn:`task` is a preemptible thread of execution that implements a portion of
an application's processing. It is normally used to perform processing that is
too lengthy or too complex to be performed by a fiber or an ISR.
For an overview and important information about Tasks, see :ref:`nanokernel_tasks`.
------
.. doxygengroup:: nanokernel_task
:project: Zephyr
:content-only:
Semaphores
**********
The nanokernel's :dfn:`semaphore` object type is an implementation of a
traditional counting semaphore. It is mainly intended for use by fibers.
For an overview and important information about Semaphores, see :ref:`nanokernel_synchronization`.
------
.. doxygengroup:: nanokernel_semaphore
:project: Zephyr
:content-only:
LIFOs
*****
The nanokernel's LIFO object type is an implementation of a traditional
last in, first out queue. It is mainly intended for use by fibers.
For an overview and important information about LIFOs, see :ref:`nanokernel_lifos`.
------
.. doxygengroup:: nanokernel_lifo
:project: Zephyr
:content-only:
FIFOs
*****
The nanokernel's FIFO object type is an implementation of a traditional
first in, first out queue. It is mainly intended for use by fibers.
For an overview and important information about FIFOs, see :ref:`nanokernel_fifos`.
------
.. doxygengroup:: nanokernel_fifo
:project: Zephyr
:content-only:
Ring Buffers
************
The ring buffer is an array-based
circular buffer, stored in first-in-first-out order. Concurrency control of
ring buffers is not implemented at this level.
For an overview and important information about ring buffers, see :ref:`nanokernel_ring_buffers`.
------
.. doxygengroup:: nanokernel_ringbuffer
:project: Zephyr
:content-only:
Stacks
******
The nanokernel's stack object type is an implementation of a traditional
last in, first out queue for a limited number of 32-bit data values.
It is mainly intended for use by fibers.
For an overview and important information about stacks, see :ref:`nanokernel_stacks`.
------
.. doxygengroup:: nanokernel_stack
:project: Zephyr
:content-only:
Timers
******
The nanokernel's :dfn:`timer` object type uses the kernel's system clock to
monitor the passage of time, as measured in ticks. It is mainly intended for use
by fibers.
For an overview and important information about timers, see :ref:`nanokernel_timers`.
------
.. doxygengroup:: nanokernel_timer
:project: Zephyr
:content-only:
Kernel Event Logger
*******************
The kernel event logger is a standardized mechanism to record events within the
Kernel while providing a single interface for the user to collect the data.
For an overview and important information about the kernel event logger API,
see :ref:`nanokernel_event_logger`.
------
.. doxygengroup:: nanokernel_event_logger
:project: Zephyr
:content-only: