Crate rtic

source ·
Expand description

Real-Time Interrupt-driven Concurrency (RTIC) framework for ARM Cortex-M microcontrollers

HEADS UP This is an beta pre-release; there may be breaking changes in the API and semantics before a proper release is made.

IMPORTANT: This crate is published as cortex-m-rtic on but the name of the library is rtic.

The user level documentation can be found here.

Don’t forget to check the documentation of the #[app] attribute (listed under the reexports section), which is the main component of the framework.

Minimum Supported Rust Version (MSRV)

This crate is guaranteed to compile on stable Rust 1.38 (2018 edition) and up. It might compile on older versions but that may change in any new patch release.

Semantic Versioning

Like the Rust project, this crate adheres to SemVer: breaking changes in the API and semantics require a semver bump (a new minor version release), with the exception of breaking changes that fix soundness issues – those are considered bug fixes and can be landed in a new patch release.

Cargo features

  • heterogeneous. This opt-in feature enables the experimental heterogeneous multi-core support. This feature depends on unstable feature and requires the use of the nightly channel.

  • homogeneous. This opt-in feature enables the experimental homogeneous multi-core support.

  • cortex-m-7. This opt-in feature changes the cortex-m version from the default 0.6 to the newer 0.7. This is to use the InterruptNumber trait instead of the Nr trait for interrupt numbers. Enabling this feature requires disabling the default features.



  • A monotonic clock / counter
  • A marker trait that indicates that it is correct to use this type in multi-core context
  • Memory safe access to shared resources


  • Sets the given interrupt as pending

Attribute Macros

  • Attribute used to declare a RTIC application