58 lines
2.2 KiB
ReStructuredText
58 lines
2.2 KiB
ReStructuredText
.. _about_zephyr::
|
|
|
|
About Zephyr
|
|
############
|
|
|
|
The Zephyr kernel is a small footprint kernel designed for use on
|
|
resource-constrained systems, from simple embedded environmental sensors and
|
|
LED wearables to sophisticated smart watches and IoT wireless gateways.
|
|
|
|
The open source project associated with the Zephyr kernel makes it available
|
|
to users and developers under a Revised BSD License.
|
|
|
|
Key Features
|
|
************
|
|
|
|
A Zephyr application combines application-specific code with a custom
|
|
configured kernel to create a monolithic image that is loaded and executed
|
|
on a system's hardware. Both the application code and kernel code execute
|
|
in a single shared address space.
|
|
|
|
The Zephyr kernel provides an extensive suite of services,
|
|
which are summarized below.
|
|
|
|
* Multi-threading services, including both priority-based, non-preemptive fibers
|
|
and priority-based, preemptive tasks (with optional round robin time-slicing).
|
|
|
|
* Interrupt services, including both compile-time and run-time registration
|
|
of interrupt handlers, which can be written in C or assembly language.
|
|
|
|
* Inter-thread synchronization services, including binary semaphores,
|
|
counting semaphores, and mutex semaphores.
|
|
|
|
* Inter-thread data passing services, including basic message queues,
|
|
enhanced message queues, and byte streams.
|
|
|
|
* Memory allocation services, including dynamic allocation and freeing of
|
|
fixed-size or variable-size memory blocks.
|
|
|
|
* Power management services, including tickless idle and an advanced idling
|
|
infrastructure.
|
|
|
|
There are several additional features that distinguish Zephyr from
|
|
other small footprint kernels.
|
|
|
|
* Zephyr is highly configurable, allowing an application to incorporate only
|
|
the capabilities it needs, and to specify their quantity and size.
|
|
|
|
* Zephyr requires all system resources to be defined at compile-time
|
|
to reduce code size and increase performance.
|
|
|
|
* Zephyr provides minimal run-time error checking to reduce code size and
|
|
increase performance. An optional error checking infrastructure is provided
|
|
that can assist in debugging during application development.
|
|
|
|
The Zephyr kernel is supported on multiple architectures,
|
|
including ARM Cortex-M, Intel x86, and ARC. The list of supported platforms
|
|
can be found :ref:`here <platform>`.
|