aboutsummaryrefslogtreecommitdiff
path: root/examples/late-resources.rs
diff options
context:
space:
mode:
Diffstat (limited to 'examples/late-resources.rs')
-rw-r--r--examples/late-resources.rs16
1 files changed, 15 insertions, 1 deletions
diff --git a/examples/late-resources.rs b/examples/late-resources.rs
index 933a252b..b5dba146 100644
--- a/examples/late-resources.rs
+++ b/examples/late-resources.rs
@@ -26,13 +26,24 @@ app! {
// the initializer. Doing that will require `init` to return the values of all "late"
// resources.
static IP_ADDRESS: u32;
+
+ // PORT is used by 2 tasks, making it a shared resource. This just tests another internal
+ // code path and is not important for the example.
+ static PORT: u16;
},
tasks: {
SYS_TICK: {
+ priority: 1,
path: sys_tick,
- resources: [IP_ADDRESS, ON],
+ resources: [IP_ADDRESS, PORT, ON],
},
+
+ EXTI0: {
+ priority: 2,
+ path: exti0,
+ resources: [PORT],
+ }
}
}
@@ -47,6 +58,7 @@ fn init(_p: init::Peripherals, _r: init::Resources) -> init::LateResourceValues
init::LateResourceValues {
// This struct will contain fields for all resources with omitted initializers.
IP_ADDRESS: ip_address,
+ PORT: 0,
}
}
@@ -57,6 +69,8 @@ fn sys_tick(_t: &mut Threshold, r: SYS_TICK::Resources) {
r.IP_ADDRESS;
}
+fn exti0(_t: &mut Threshold, _r: EXTI0::Resources) {}
+
fn idle() -> ! {
loop {
rtfm::wfi();