rtic/src/lib.rs

60 lines
1.9 KiB
Rust
Raw Normal View History

2020-06-11 19:18:29 +02:00
//! Real-Time Interrupt-driven Concurrency (RTIC) framework for ARM Cortex-M microcontrollers
//!
2019-08-21 12:19:38 +02:00
//! **HEADS UP** This is an **beta** pre-release; there may be breaking changes in the API and
//! semantics before a proper release is made.
//!
2020-06-11 19:18:29 +02:00
//! **IMPORTANT**: This crate is published as [`cortex-m-rtic`] on crates.io but the name of the
//! library is `rtic`.
//!
2020-06-11 19:18:29 +02:00
//! [`cortex-m-rtic`]: https://crates.io/crates/cortex-m-rtic
//!
2018-11-03 17:02:41 +01:00
//! The user level documentation can be found [here].
//!
2020-06-11 19:18:29 +02:00
//! [here]: https://rtic.rs
//!
2019-08-21 12:19:38 +02:00
//! Don't forget to check the documentation of the `#[app]` attribute (listed under the reexports
//! section), which is the main component of the framework.
//!
2019-02-12 11:08:39 +01:00
//! # Minimum Supported Rust Version (MSRV)
//!
//! This crate is guaranteed to compile on stable Rust 1.36 (2018 edition) and up. It *might*
2019-02-12 11:08:39 +01:00
//! 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.
//!
//! [SemVer]: https://semver.org/spec/v2.0.0.html
2018-11-03 17:02:41 +01:00
#![deny(missing_docs)]
#![deny(rust_2018_compatibility)]
#![deny(rust_2018_idioms)]
2020-12-03 21:04:06 +01:00
// #![deny(warnings)]
2017-03-05 06:26:14 +01:00
#![no_std]
2020-12-03 21:04:06 +01:00
use cortex_m::{interrupt::Nr, peripheral::NVIC};
2020-06-11 19:18:29 +02:00
pub use cortex_m_rtic_macros::app;
2020-12-10 20:33:13 +01:00
pub use rtic_core::{
2020-12-13 00:06:50 +01:00
monotonic::{self, embedded_time as time, Monotonic},
2020-12-10 20:33:13 +01:00
prelude as mutex_prelude, Exclusive, Mutex,
};
2018-11-03 17:02:41 +01:00
#[doc(hidden)]
pub mod export;
2017-09-22 13:45:28 +02:00
#[doc(hidden)]
2018-11-03 17:02:41 +01:00
mod tq;
2017-09-22 13:45:28 +02:00
2018-11-03 17:02:41 +01:00
/// Sets the given `interrupt` as pending
///
2018-11-03 17:02:41 +01:00
/// This is a convenience function around
/// [`NVIC::pend`](../cortex_m/peripheral/struct.NVIC.html#method.pend)
pub fn pend<I>(interrupt: I)
where
I: Nr,
{
2018-11-03 17:02:41 +01:00
NVIC::pend(interrupt)
}