C Microkernel Realtime eXecutive
Realtime Operating System for Cortex-M based microcontrollers
 
Loading...
Searching...
No Matches
Kernel documentation

Documentation of kernel internals. More...

Modules

 Architecture support
 Layer containing bits that are specific to each supported architecture.
 
 Context switching
 Kernel internals in support context switching.
 
 Interrupt service routines
 Routines available from running interrupt service routine context.
 
 Kernel core
 Basic structures that contain the internal state of kernel.
 
 Memory protection
 Kernel internals in support for MPU configuration.
 
 Notifications
 Kernel internals supporting cross-process notifications.
 
 Remote Procedure Calls
 This kernel implementation of RPC mechanism.
 
 Signal handling
 Kernel implementation of signal propagation mechanism.
 
 System calls
 Portable parts of system call machinery.
 
 Thread scheduling
 Kernel primitives for manipulating threads.
 
 Timers
 Kernel internals providing services of delayed and periodic execution.
 
 Tracing Kernel Events
 Facilities to trace progress of kernel execution.
 
 Transcation subsystem
 CMRX kernel is mostly implemented as non-blocking.
 

Macros

#define os_start(core)   _os_start((core))
 

Functions

void _os_start (uint8_t start_core)
 Start up scheduler.
 

Detailed Description

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.

Macro Definition Documentation

◆ os_start

#define os_start (   core)    _os_start((core))

Function Documentation

◆ _os_start()

void _os_start ( uint8_t  start_core)
extern

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.

Parameters
[in]start_corenumber of core for which the kernel is started