mirror of
https://github.com/rtic-rs/rtic.git
synced 2024-11-29 06:54:33 +01:00
add a queue
function
This commit is contained in:
parent
4c1b6c8293
commit
00ef129f87
1 changed files with 11 additions and 1 deletions
12
src/lib.rs
12
src/lib.rs
|
@ -11,7 +11,7 @@
|
|||
extern crate cortex_m;
|
||||
|
||||
use cortex_m::ctxt::Context;
|
||||
use cortex_m::interrupt::CriticalSection;
|
||||
use cortex_m::interrupt::{CriticalSection, Nr};
|
||||
use cortex_m::peripheral::{Peripheral, NVIC, SCB};
|
||||
use cortex_m::register::{basepri, basepri_max};
|
||||
|
||||
|
@ -362,6 +362,16 @@ pub fn logical(priority: u8) -> u8 {
|
|||
((1 << PRIORITY_BITS) - priority) << (8 - PRIORITY_BITS)
|
||||
}
|
||||
|
||||
/// Puts `interrupt` in the "to execute" queue
|
||||
///
|
||||
/// This function has no effect if the interrupt was already queued
|
||||
pub fn queue<I>(interrupt: I) where I: Nr {
|
||||
unsafe {
|
||||
// NOTE(safe) atomic write
|
||||
(*NVIC.get()).set_pending(interrupt)
|
||||
}
|
||||
}
|
||||
|
||||
/// Fake ceiling, indicates that the resource is shared by cooperative tasks
|
||||
pub struct C0 {
|
||||
_0: (),
|
||||
|
|
Loading…
Reference in a new issue