aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGravatar bors[bot] <26634292+bors[bot]@users.noreply.github.com> 2020-10-01 18:45:04 +0000
committerGravatar GitHub <noreply@github.com> 2020-10-01 18:45:04 +0000
commitdecd9112d8267d9e886dcc4470e46a764139c8e3 (patch)
treeea85444bd80cde6fe21197b0a06523be515fdfa8
parent4d61437bb4debea5adc578ee072bff3619d8077b (diff)
parent86001c46bcae85c9448d63dde534bd218301f0e4 (diff)
downloadrtic-decd9112d8267d9e886dcc4470e46a764139c8e3.tar.gz
rtic-decd9112d8267d9e886dcc4470e46a764139c8e3.tar.zst
rtic-decd9112d8267d9e886dcc4470e46a764139c8e3.zip
Merge #373
373: Added `bare_metal::CriticalSection` to `init::Context` r=AfoHT a=korken89 Co-authored-by: Emil Fresk <emil.fresk@gmail.com>
-rw-r--r--Cargo.toml1
-rw-r--r--macros/src/codegen/module.rs8
-rw-r--r--src/export.rs1
-rw-r--r--ui/single/locals-cfg.stderr6
4 files changed, 13 insertions, 3 deletions
diff --git a/Cargo.toml b/Cargo.toml
index d4ad4ef0..6fe5fce3 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -60,6 +60,7 @@ cortex-m-rtic-macros = { path = "macros", version = "0.5.2" }
rtic-core = "0.3.0"
cortex-m-rt = "0.6.9"
heapless = "0.5.0"
+bare-metal = "1.0.0"
[build-dependencies]
version_check = "0.9"
diff --git a/macros/src/codegen/module.rs b/macros/src/codegen/module.rs
index 863f6c5b..359c1cce 100644
--- a/macros/src/codegen/module.rs
+++ b/macros/src/codegen/module.rs
@@ -47,6 +47,14 @@ pub fn codegen(ctxt: Context, resources_tick: bool, app: &App, extra: &Extra) ->
values.push(quote!(device: #device::Peripherals::steal()));
}
+ lt = Some(quote!('a));
+ fields.push(quote!(
+ /// Critical section token for init
+ pub cs: rtic::export::CriticalSection<#lt>
+ ));
+
+ values.push(quote!(cs: rtic::export::CriticalSection::new()));
+
values.push(quote!(core));
}
diff --git a/src/export.rs b/src/export.rs
index 8a5d4e3e..1e64941f 100644
--- a/src/export.rs
+++ b/src/export.rs
@@ -4,6 +4,7 @@ use core::{
};
pub use crate::tq::{NotReady, TimerQueue};
+pub use bare_metal::CriticalSection;
#[cfg(armv7m)]
pub use cortex_m::register::basepri;
pub use cortex_m::{
diff --git a/ui/single/locals-cfg.stderr b/ui/single/locals-cfg.stderr
index bb558fa6..49695cbf 100644
--- a/ui/single/locals-cfg.stderr
+++ b/ui/single/locals-cfg.stderr
@@ -28,10 +28,10 @@ error[E0425]: cannot find value `FOO` in this scope
44 | FOO;
| ^^^ not found in this scope
-error: duplicate lang item in crate `panic_halt`: `panic_impl`.
+error: duplicate lang item in crate `panic_semihosting`: `panic_impl`.
|
= note: first defined in crate `std`.
-error: duplicate lang item in crate `panic_semihosting`: `panic_impl`.
+error: duplicate lang item in crate `panic_halt`: `panic_impl`.
|
- = note: first defined in crate `panic_halt`.
+ = note: first defined in crate `panic_semihosting`.