aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorbors[bot] <26634292+bors[bot]@users.noreply.github.com>2020-09-04 07:50:13 +0000
committerGitHub <noreply@github.com>2020-09-04 07:50:13 +0000
commit7506bd8ae0ba335fc058c2138438fab5f20f6dab (patch)
treefe65b335b19171370bd6be0bd5cd6b776a1d6110 /src
parentc5e6d1fa49e3596227a8ee8fe89e2e4f66db3169 (diff)
parentad2b80907899cc335edcebfc77ae4b4b51272b87 (diff)
Merge #355
355: Multi-core removal r=korken89 a=AfoHT Dependent on https://github.com/rtic-rs/rtic-syntax/pull/27 With the same reasoning as ^^ For now the testing is done against my rtic-syntax/multiremove-branch, but before we merge it should corrected. Co-authored-by: Henrik Tjäder <henrik@tjaders.com>
Diffstat (limited to 'src')
-rw-r--r--src/cyccnt.rs4
-rw-r--r--src/export.rs15
-rw-r--r--src/lib.rs11
-rw-r--r--src/tq.rs6
4 files changed, 6 insertions, 30 deletions
diff --git a/src/cyccnt.rs b/src/cyccnt.rs
index 6bc2ef0..8e07b00 100644
--- a/src/cyccnt.rs
+++ b/src/cyccnt.rs
@@ -19,10 +19,6 @@ use crate::Fraction;
/// Adding or subtracting a `Duration` of more than `(1 << 31)` cycles to an `Instant` effectively
/// makes it "wrap around" and creates an incorrect value. This is also true if the operation is
/// done in steps, e.g. `(instant + dur) + dur` where `dur` is `(1 << 30)` ticks.
-///
-/// In multi-core contexts: this value is tied to the CYCCNT of *one* core so sending it a different
-/// core makes it lose its meaning -- each Cortex-M core has its own CYCCNT counter and these are
-/// usually unsynchronized and may even be running at different frequencies.
#[derive(Clone, Copy, Eq, PartialEq)]
pub struct Instant {
inner: i32,
diff --git a/src/export.rs b/src/export.rs
index e23b8f3..8a5d4e3 100644
--- a/src/export.rs
+++ b/src/export.rs
@@ -12,14 +12,12 @@ pub use cortex_m::{
peripheral::{scb::SystemHandler, syst::SystClkSource, DWT, NVIC},
Peripherals,
};
-use heapless::spsc::{MultiCore, SingleCore};
+use heapless::spsc::SingleCore;
pub use heapless::{consts, i::Queue as iQueue, spsc::Queue};
pub use heapless::{i::BinaryHeap as iBinaryHeap, BinaryHeap};
#[cfg(feature = "heterogeneous")]
pub use microamp::shared;
-pub type MCFQ<N> = Queue<u8, N, u8, MultiCore>;
-pub type MCRQ<T, N> = Queue<(T, u8), N, u8, MultiCore>;
pub type SCFQ<N> = Queue<u8, N, u8, SingleCore>;
pub type SCRQ<T, N> = Queue<(T, u8), N, u8, SingleCore>;
@@ -30,7 +28,7 @@ where
F: FnOnce(),
{
if priority == 1 {
- // if the priority of this interrupt is `1` then BASEPRI can only be `0`
+ // If the priority of this interrupt is `1` then BASEPRI can only be `0`
f();
unsafe { basepri::write(0) }
} else {
@@ -82,7 +80,7 @@ impl Priority {
}
}
- // these two methods are used by `lock` (see below) but can't be used from the RTIC application
+ // These two methods are used by `lock` (see below) but can't be used from the RTIC application
#[inline(always)]
fn set(&self, value: u8) {
self.inner.set(value)
@@ -108,13 +106,6 @@ where
{
}
-#[inline(always)]
-pub fn assert_multicore<T>()
-where
- T: super::MultiCore,
-{
-}
-
#[cfg(armv7m)]
#[inline(always)]
pub unsafe fn lock<T, R>(
diff --git a/src/lib.rs b/src/lib.rs
index 5003653..a7d399c 100644
--- a/src/lib.rs
+++ b/src/lib.rs
@@ -28,13 +28,6 @@
//! release.
//!
//! [SemVer]: https://semver.org/spec/v2.0.0.html
-//!
-//! # 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.
#![deny(missing_docs)]
#![deny(rust_2018_compatibility)]
@@ -48,7 +41,6 @@ use cortex_m::{
interrupt::Nr,
peripheral::{CBP, CPUID, DCB, DWT, FPB, FPU, ITM, MPU, NVIC, SCB, TPIU},
};
-#[cfg(all(not(feature = "heterogeneous"), not(feature = "homogeneous")))]
use cortex_m_rt as _; // vector table
pub use cortex_m_rtic_macros::app;
pub use rtic_core::{Exclusive, Mutex};
@@ -161,9 +153,6 @@ pub trait Monotonic {
fn zero() -> Self::Instant;
}
-/// A marker trait that indicates that it is correct to use this type in multi-core context
-pub trait MultiCore {}
-
/// Sets the given `interrupt` as pending
///
/// This is a convenience function around
diff --git a/src/tq.rs b/src/tq.rs
index 21beeb9..9300dbf 100644
--- a/src/tq.rs
+++ b/src/tq.rs
@@ -40,7 +40,7 @@ where
mem::transmute::<_, SYST>(()).enable_interrupt();
}
- // set SysTick pending
+ // Set SysTick pending
SCB::set_pendst();
}
@@ -79,13 +79,13 @@ where
};
mem::transmute::<_, SYST>(()).set_reload(dur);
- // start counting down from the new reload
+ // Start counting down from the new reload
mem::transmute::<_, SYST>(()).clear_current();
None
}
} else {
- // the queue is empty
+ // The queue is empty
mem::transmute::<_, SYST>(()).disable_interrupt();
None