Documentation of kernel internals.
Covers parts of CMRX running in the privileged mode. Most of this code is accessible via system calls, while some being triggered by timing provider API or occupying vital system handlers. Kernel is divided into two parts: platform-independent part and part that is ported to support individual platforms.
Documentation of kernel internals is usable if you want to understand how certain features are implemented or if you are porting CMRX to another platform.
Modules | |
Architecture support | |
Layer containing bits that are specific to each supported architecture. | |
Interrupt service routines | |
Routines available from running interrupt service routine context. | |
Kernel core | |
Kernel is built around minimalistic core, which consists of prioritized thread scheduler. | |
Memory protection | |
Kernel internals in support for MPU configuration. | |
Remote Procedure Calls | |
This kernel implementation of RPC mechanism. | |
Signals | |
Kernel implementation of signal propagation mechanism. | |
System calls | |
Kernel contains mechanism of using kernel services. | |
Threads | |
Timers | |
Functions | |
void | os_start () |
Start up scheduler. | |
void os_start | ( | ) |
Start up scheduler.
This function populates thread table based on thread autostart macro use. It also creates idle thread with priority 255 and starts scheduler. It never returns until you have very bad day.