156 lines
3.6 KiB
ReStructuredText
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:
|