ChibiOS

Designed for context-switch performance, the real-time kernel of ChibiOS has a well-established history, with more than 10 years of active development and a community of enthusiastic contributors and maintainers. The concept behind the scheduler is a fixed-priority preemption, with priority inheritance mechanisms for priority inversion avoidance. The scheduler is the core component of the ChibiOS architecture, which also includes a complete hardware abstraction layer, containing a high-level abstraction of multiple devices, and peripherals that are common across different platforms.

The design is based on multiple levels of abstractions, each designed to be as independent as possible from the others. The core of the operating system interfaces with the HAL using a lightweight interface, the OS abstraction layer, which can be implemented by different kernels, making the architecture of the entire system independent by the choice of the real-time scheduler.

The HAL is accessed directly by the threads, which always run in flat mode, with no support for privilege separation through protected system calls. Each task is relegated to its assigned address space, and its boundaries are checked through the MPU, when available on the system, but the MPU is set using global flags in the task switch, not differentiating between privileged and user code to access system control registers or peripheral regions.

Core memory safety is one of ChibiOS's major points of strength, mostly due to the completely static design of the kernel. The kernel code does not rely on any single dynamic allocation, and uses specific data structures to assign memory for objects at compile time.

Even if the use of dynamic memory is discouraged, due to the implications on safety, a heap allocator is provided as a separate optional module, and can still be used by application code. The allocator supports pool separation, with a fallback to a default pool of shared system memory if none is provided.

No specific low-power modes are implemented in the HAL, even though the layered design may help to fine-tune single device drivers using API functions to implement platform-specific low-power modes in the application logic.

ChibiOS is free software, as its kernel implementation is distributed under the GNU general public license, even if the HAL and its interfaces are distributed with other more permissive open source licenses. A limited set of third-party libraries is distributed as plugins that interacts with the kernel through specific OSAL extensions. The choice of third-party libraries includes a FatFs open source implementation, lightweight IP (lwIP) for TCP/IP connectivity, and wolfSSL to provide transport layer security support for IoT projects.

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset
3.139.82.23