2021-03-08 00:15:40 +01:00
|
|
|
#![no_std]
|
2021-10-18 00:55:43 +02:00
|
|
|
#![allow(clippy::new_without_default)]
|
2021-03-08 00:15:40 +01:00
|
|
|
|
|
|
|
// This mod MUST go first, so that the others see its macros.
|
|
|
|
pub(crate) mod fmt;
|
|
|
|
|
2021-09-11 01:53:53 +02:00
|
|
|
pub mod drop;
|
2021-05-11 00:43:48 +02:00
|
|
|
pub mod interrupt;
|
2021-03-21 20:57:49 +01:00
|
|
|
mod macros;
|
2021-01-03 01:40:40 +01:00
|
|
|
pub mod peripheral;
|
2021-09-02 10:46:49 +02:00
|
|
|
pub mod ratio;
|
2021-01-03 01:40:40 +01:00
|
|
|
pub mod ring_buffer;
|
2021-03-19 01:30:35 +01:00
|
|
|
pub mod usb;
|
2021-01-03 17:05:04 +01:00
|
|
|
|
|
|
|
/// Low power blocking wait loop using WFE/SEV.
|
|
|
|
pub fn low_power_wait_until(mut condition: impl FnMut() -> bool) {
|
|
|
|
while !condition() {
|
|
|
|
// WFE might "eat" an event that would have otherwise woken the executor.
|
|
|
|
cortex_m::asm::wfe();
|
|
|
|
}
|
|
|
|
// Retrigger an event to be transparent to the executor.
|
|
|
|
cortex_m::asm::sev();
|
|
|
|
}
|