zephyr/doc/api/microkernel_api.rst

156 lines
3.6 KiB
ReStructuredText

.. microkernel_api:
Microkernel APIs
################
.. contents::
:depth: 1
:local:
:backlinks: top
Events
******
The microkernel's :dfn:`event` objects are an implementation of traditional
binary semaphores.
For an overview and important information about Events, see :ref:`microkernel_events`.
------
.. doxygengroup:: microkernel_event
:project: Zephyr
:content-only:
FIFOs
*****
The microkernel's :dfn:`FIFO` object type is an implementation of a traditional
first in, first out queue.
A FIFO allows tasks to asynchronously send and receive fixed-size data items.
For an overview and important information about FIFOs, see :ref:`microkernel_fifos`.
------
.. doxygengroup:: microkernel_fifo
:project: Zephyr
:content-only:
Pipes
*****
The microkernel's :dfn:`pipe` object type is an implementation of a traditional
anonymous pipe. A pipe allows a task to send a byte stream to another task.
For an overview and important information about Pipes, see :ref:`microkernel_pipes`.
------
.. doxygengroup:: microkernel_pipe
:project: Zephyr
:content-only:
Mailboxes
*********
The microkernel's :dfn:`mailbox` object type is an implementation of a
traditional message queue that allows tasks to exchange messages.
For an overview and important information about Mailboxes, see :ref:`microkernel_mailboxes`.
------
.. doxygengroup:: microkernel_mailbox
:project: Zephyr
:content-only:
Memory Maps
***********
The microkernel's memory map objects provide dynamic allocation and
release of fixed-size memory blocks.
For an overview and important information about Memory Maps, see :ref:`microkernel_memory_maps`.
------
.. doxygengroup:: microkernel_memorymap
:project: Zephyr
:content-only:
Memory Pools
************
The microkernel's :dfn:`memory pool` objects provide dynamic allocation and
release of variable-size memory blocks.
For an overview and important information about Memory Pools, see :ref:`microkernel_memory_pools`.
------
.. doxygengroup:: microkernel_memorypool
:project: Zephyr
:content-only:
Mutexes
*******
The microkernel's :dfn:`mutex` objects provide reentrant mutex
capabilities with basic priority inheritance. A mutex allows
tasks to safely share a resource by ensuring mutual exclusivity
while the resource is being accessed by a task.
For an overview and important information about Mutexes, see :ref:`microkernel_mutexes`.
------
.. doxygengroup:: microkernel_mutex
:project: Zephyr
:content-only:
Semaphores
**********
The microkernel's :dfn:`semaphore` objects are an implementation of traditional
counting semaphores.
For an overview and important information about Semaphores, see :ref:`microkernel_semaphores`.
------
.. doxygengroup:: microkernel_semaphore
:project: Zephyr
:content-only:
Timers
******
A :dfn:`microkernel timer` allows a task to determine whether or not a
specified time limit has been reached while the task is busy performing
other work. The timer uses the kernel's system clock, measured in
ticks, to monitor the passage of time.
For an overview and important information about Timers, see :ref:`microkernel_timers`.
------
.. doxygengroup:: microkernel_timer
:project: Zephyr
:content-only:
Tasks
*****
A task is a preemptible thread of execution that implements a portion of
an application's processing. It is normally used for 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:`microkernel_tasks`.
------
.. doxygengroup:: microkernel_task
:project: Zephyr
:content-only: