Bern RTOS preemptive real-time kernel for microcontrollers written in Rust.
The API Documentation is not up to date, please prefer the Bern RTOS Kernel Book for now.
This project follows Semantic Versioning 2.0.0.
Currently the version is below 1.0.0 meaning that everything is very much unstable and the API could change completely.
time-slicing(default): A task runs at max for one system tick period if there are other tasks of equal priority
log-defmt: Activate system log messages using
defmt. The user must select a log transport in the application, e.g.
log-rtt: Activate system log messages with
coreformatting and RTT transport.
log-global: Activate system log messages using the
logfacade. The use must provide a global logger.
trace: Activate system tracing. The user must provide a global tracer, e.g.
|Core Name||Architecture||Rust Target|
|ARM Cortex-M3 w/MPU||Armv7-M|
|ARM Cortex-M4 w/MPU||Armv7E-M|
|ARM Cortex-M7 w/MPU||Armv7E-M|
cargo generate --git https://gitlab.com/bern-rtos/templates/cortex-m.git
pub use crate::syscall::*;
pub use bern_units as units;
pub use embedded_time;
pub use bern_arch;
pub use kernel::*;
Collection of everything that can be executed on the CPU.
Thread stack management.