mirror of
https://github.com/zephyrproject-rtos/zephyr
synced 2025-09-03 08:01:56 +00:00
Provides high level background material for Zephyr, to help newcomers easily determine its suitability for their needs. Change-Id: I2f843ad627024f601f163eafc7d965ecf44da8f9 Signed-off-by: Allan Stephens <allan.stephens@windriver.com>
54 lines
2.0 KiB
ReStructuredText
54 lines
2.0 KiB
ReStructuredText
.. _about_zephyr::
|
|
|
|
About Zephyr
|
|
############
|
|
|
|
The Zephyr kernel is a small footprint kernel designed for use on
|
|
resource-constrained systems, such as embedded sensor hubs,
|
|
environmental sensors, simple LED wearables, and store inventory tags.
|
|
|
|
Key Features
|
|
************
|
|
|
|
A Zephyr application consists of kernel code, device driver code, and
|
|
application-specific code, which are compiled into a monolithic image
|
|
executing 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 signalling services, including binary sempahores,
|
|
counting semaphores, and mutex semaphores.
|
|
|
|
* Inter-thread data passing services, including basic message queues,
|
|
enhanced message queues, and byte streams.
|
|
|
|
* Memory management 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 suppported on multiple architectures,
|
|
including ARM Cortex-M, Intel x86, and ARC. The list of supported platforms
|
|
can be found :ref:`here <platform>`.
|