From 81275bfa4f41e2066770087f3a33cad4227eab41 Mon Sep 17 00:00:00 2001 From: Jorge Aparicio Date: Thu, 13 Jun 2019 23:56:59 +0200 Subject: rtfm-syntax refactor + heterogeneous multi-core support --- ui/single/resources-cfg.rs | 57 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 57 insertions(+) create mode 100644 ui/single/resources-cfg.rs (limited to 'ui/single/resources-cfg.rs') diff --git a/ui/single/resources-cfg.rs b/ui/single/resources-cfg.rs new file mode 100644 index 0000000..f8c3672 --- /dev/null +++ b/ui/single/resources-cfg.rs @@ -0,0 +1,57 @@ +#![no_main] + +#[rtfm::app(device = lm3s6965)] +const APP: () = { + #[cfg(never)] + static mut O1: u32 = 0; // init + #[cfg(never)] + static mut O2: u32 = 0; // idle + #[cfg(never)] + static mut O3: u32 = 0; // EXTI0 + #[cfg(never)] + static O4: u32 = 0; // idle + #[cfg(never)] + static O5: u32 = 0; // EXTI1 + #[cfg(never)] + static O6: u32 = 0; // init + + #[cfg(never)] + static mut S1: u32 = 0; // idle & EXTI0 + #[cfg(never)] + static mut S2: u32 = 0; // EXTI0 & EXTI1 + #[cfg(never)] + static S3: u32 = 0; + + #[init(resources = [O1, O4, O5, O6, S3])] + fn init(c: init::Context) { + c.resources.O1; + c.resources.O4; + c.resources.O5; + c.resources.O6; + c.resources.S3; + } + + #[idle(resources = [O2, O4, S1, S3])] + fn idle(c: idle::Context) -> ! { + c.resources.O2; + c.resources.O4; + c.resources.S1; + c.resources.S3; + + loop {} + } + + #[interrupt(resources = [O3, S1, S2, S3])] + fn UART0(c: UART0::Context) { + c.resources.O3; + c.resources.S1; + c.resources.S2; + c.resources.S3; + } + + #[interrupt(resources = [S2, O5])] + fn UART1(c: UART1::Context) { + c.resources.S2; + c.resources.O5; + } +}; -- cgit v1.2.3 From 4e51bb68b976c6bb6a9a989dc560d2a8123a84ca Mon Sep 17 00:00:00 2001 From: Jorge Aparicio Date: Thu, 20 Jun 2019 06:19:59 +0200 Subject: RFC #207 --- ui/single/resources-cfg.rs | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'ui/single/resources-cfg.rs') diff --git a/ui/single/resources-cfg.rs b/ui/single/resources-cfg.rs index f8c3672..6f608fa 100644 --- a/ui/single/resources-cfg.rs +++ b/ui/single/resources-cfg.rs @@ -41,16 +41,16 @@ const APP: () = { loop {} } - #[interrupt(resources = [O3, S1, S2, S3])] - fn UART0(c: UART0::Context) { + #[task(binds = UART0, resources = [O3, S1, S2, S3])] + fn uart0(c: uart0::Context) { c.resources.O3; c.resources.S1; c.resources.S2; c.resources.S3; } - #[interrupt(resources = [S2, O5])] - fn UART1(c: UART1::Context) { + #[task(binds = UART1, resources = [S2, O5])] + fn uart1(c: uart1::Context) { c.resources.S2; c.resources.O5; } -- cgit v1.2.3 From 9195038c87703fc94b6e99f6de593886d51c2b19 Mon Sep 17 00:00:00 2001 From: Jorge Aparicio Date: Wed, 10 Jul 2019 22:42:44 +0200 Subject: implement RFC #212 --- ui/single/resources-cfg.rs | 96 +++++++++++++++++++++++++++------------------- 1 file changed, 57 insertions(+), 39 deletions(-) (limited to 'ui/single/resources-cfg.rs') diff --git a/ui/single/resources-cfg.rs b/ui/single/resources-cfg.rs index 6f608fa..906b3e2 100644 --- a/ui/single/resources-cfg.rs +++ b/ui/single/resources-cfg.rs @@ -2,56 +2,74 @@ #[rtfm::app(device = lm3s6965)] const APP: () = { - #[cfg(never)] - static mut O1: u32 = 0; // init - #[cfg(never)] - static mut O2: u32 = 0; // idle - #[cfg(never)] - static mut O3: u32 = 0; // EXTI0 - #[cfg(never)] - static O4: u32 = 0; // idle - #[cfg(never)] - static O5: u32 = 0; // EXTI1 - #[cfg(never)] - static O6: u32 = 0; // init - - #[cfg(never)] - static mut S1: u32 = 0; // idle & EXTI0 - #[cfg(never)] - static mut S2: u32 = 0; // EXTI0 & EXTI1 - #[cfg(never)] - static S3: u32 = 0; - - #[init(resources = [O1, O4, O5, O6, S3])] + struct Resources { + #[cfg(never)] + #[init(0)] + o1: u32, // init + + #[cfg(never)] + #[init(0)] + o2: u32, // idle + + #[cfg(never)] + #[init(0)] + o3: u32, // EXTI0 + + #[cfg(never)] + #[init(0)] + o4: u32, // idle + + #[cfg(never)] + #[init(0)] + o5: u32, // EXTI1 + + #[cfg(never)] + #[init(0)] + o6: u32, // init + + #[cfg(never)] + #[init(0)] + s1: u32, // idle & EXTI0 + + #[cfg(never)] + #[init(0)] + s2: u32, // EXTI0 & EXTI1 + + #[cfg(never)] + #[init(0)] + s3: u32, + } + + #[init(resources = [o1, o4, o5, o6, s3])] fn init(c: init::Context) { - c.resources.O1; - c.resources.O4; - c.resources.O5; - c.resources.O6; - c.resources.S3; + c.resources.o1; + c.resources.o4; + c.resources.o5; + c.resources.o6; + c.resources.s3; } - #[idle(resources = [O2, O4, S1, S3])] + #[idle(resources = [o2, &o4, s1, &s3])] fn idle(c: idle::Context) -> ! { - c.resources.O2; - c.resources.O4; - c.resources.S1; - c.resources.S3; + c.resources.o2; + c.resources.o4; + c.resources.s1; + c.resources.s3; loop {} } - #[task(binds = UART0, resources = [O3, S1, S2, S3])] + #[task(binds = UART0, resources = [o3, s1, s2, &s3])] fn uart0(c: uart0::Context) { - c.resources.O3; - c.resources.S1; - c.resources.S2; - c.resources.S3; + c.resources.o3; + c.resources.s1; + c.resources.s2; + c.resources.s3; } - #[task(binds = UART1, resources = [S2, O5])] + #[task(binds = UART1, resources = [s2, &o5])] fn uart1(c: uart1::Context) { - c.resources.S2; - c.resources.O5; + c.resources.s2; + c.resources.o5; } }; -- cgit v1.2.3