Examples using mod instead of const

This commit is contained in:
Henrik Tjäder 2020-04-22 10:58:14 +00:00
parent 4d61437bb4
commit 8df2ec11b0
37 changed files with 75 additions and 76 deletions

View file

@ -11,7 +11,7 @@ use panic_semihosting as _;
// NOTE: does NOT properly work on QEMU // NOTE: does NOT properly work on QEMU
#[rtic::app(device = lm3s6965, monotonic = rtic::cyccnt::CYCCNT)] #[rtic::app(device = lm3s6965, monotonic = rtic::cyccnt::CYCCNT)]
const APP: () = { mod APP {
#[init(spawn = [foo])] #[init(spawn = [foo])]
fn init(cx: init::Context) { fn init(cx: init::Context) {
// omitted: initialization of `CYCCNT` // omitted: initialization of `CYCCNT`
@ -51,4 +51,4 @@ const APP: () = {
extern "C" { extern "C" {
fn SSI0(); fn SSI0();
} }
}; }

View file

@ -11,7 +11,7 @@ use panic_semihosting as _;
// `examples/interrupt.rs` rewritten to use `binds` // `examples/interrupt.rs` rewritten to use `binds`
#[rtic::app(device = lm3s6965)] #[rtic::app(device = lm3s6965)]
const APP: () = { mod APP {
#[init] #[init]
fn init(_: init::Context) { fn init(_: init::Context) {
rtic::pend(Interrupt::UART0); rtic::pend(Interrupt::UART0);
@ -45,4 +45,4 @@ const APP: () = {
) )
.unwrap(); .unwrap();
} }
}; }

View file

@ -10,7 +10,7 @@ use lm3s6965::Interrupt;
use panic_semihosting as _; use panic_semihosting as _;
#[rtic::app(device = lm3s6965)] #[rtic::app(device = lm3s6965)]
const APP: () = { mod APP {
#[init] #[init]
fn init(_: init::Context) { fn init(_: init::Context) {
rtic::pend(Interrupt::UART0); rtic::pend(Interrupt::UART0);
@ -44,4 +44,4 @@ const APP: () = {
extern "C" { extern "C" {
fn SSI0(); fn SSI0();
} }
}; }

View file

@ -11,7 +11,7 @@ use cortex_m_semihosting::hprintln;
use panic_semihosting as _; use panic_semihosting as _;
#[rtic::app(device = lm3s6965)] #[rtic::app(device = lm3s6965)]
const APP: () = { mod APP {
struct Resources { struct Resources {
#[cfg(debug_assertions)] // <- `true` when using the `dev` profile #[cfg(debug_assertions)] // <- `true` when using the `dev` profile
#[init(0)] #[init(0)]
@ -66,4 +66,4 @@ const APP: () = {
fn SSI0(); fn SSI0();
fn QEI0(); fn QEI0();
} }
}; }

View file

@ -10,7 +10,7 @@ use lm3s6965::Interrupt;
use panic_semihosting as _; use panic_semihosting as _;
#[rtic::app(device = lm3s6965)] #[rtic::app(device = lm3s6965)]
const APP: () = { mod APP {
struct Resources { struct Resources {
// Some resources to work with // Some resources to work with
#[init(0)] #[init(0)]
@ -44,4 +44,4 @@ const APP: () = {
hprintln!("UART0: a = {}, b = {}, c = {}", a, b, c).unwrap(); hprintln!("UART0: a = {}, b = {}, c = {}", a, b, c).unwrap();
} }
}; }

View file

@ -11,7 +11,7 @@ use panic_semihosting as _;
use rtic::{Exclusive, Mutex}; use rtic::{Exclusive, Mutex};
#[rtic::app(device = lm3s6965)] #[rtic::app(device = lm3s6965)]
const APP: () = { mod APP {
struct Resources { struct Resources {
#[init(0)] #[init(0)]
shared: u32, shared: u32,
@ -49,7 +49,7 @@ const APP: () = {
// second argument has type `Exclusive<u32>` // second argument has type `Exclusive<u32>`
advance(STATE, Exclusive(c.resources.shared)); advance(STATE, Exclusive(c.resources.shared));
} }
}; }
// the second parameter is generic: it can be any type that implements the `Mutex` trait // the second parameter is generic: it can be any type that implements the `Mutex` trait
fn advance(state: &mut u32, mut shared: impl Mutex<T = u32>) { fn advance(state: &mut u32, mut shared: impl Mutex<T = u32>) {

View file

@ -10,7 +10,7 @@ use lm3s6965::Interrupt;
use panic_semihosting as _; use panic_semihosting as _;
#[rtic::app(device = lm3s6965)] #[rtic::app(device = lm3s6965)]
const APP: () = { mod APP {
#[init] #[init]
fn init(_: init::Context) { fn init(_: init::Context) {
// Pends the UART0 interrupt but its handler won't run until *after* // Pends the UART0 interrupt but its handler won't run until *after*
@ -49,4 +49,4 @@ const APP: () = {
) )
.unwrap(); .unwrap();
} }
}; }

View file

@ -9,7 +9,7 @@ use cortex_m_semihosting::{debug, hprintln};
use panic_semihosting as _; use panic_semihosting as _;
#[rtic::app(device = lm3s6965)] #[rtic::app(device = lm3s6965)]
const APP: () = { mod APP {
#[init] #[init]
fn init(_: init::Context) { fn init(_: init::Context) {
hprintln!("init").unwrap(); hprintln!("init").unwrap();
@ -30,4 +30,4 @@ const APP: () = {
cortex_m::asm::nop(); cortex_m::asm::nop();
} }
} }
}; }

View file

@ -9,7 +9,7 @@ use cortex_m_semihosting::{debug, hprintln};
use panic_semihosting as _; use panic_semihosting as _;
#[rtic::app(device = lm3s6965, peripherals = true)] #[rtic::app(device = lm3s6965, peripherals = true)]
const APP: () = { mod APP {
#[init] #[init]
fn init(cx: init::Context) { fn init(cx: init::Context) {
static mut X: u32 = 0; static mut X: u32 = 0;
@ -27,4 +27,4 @@ const APP: () = {
debug::exit(debug::EXIT_SUCCESS); debug::exit(debug::EXIT_SUCCESS);
} }
}; }

View file

@ -15,7 +15,7 @@ use lm3s6965::Interrupt;
use panic_semihosting as _; use panic_semihosting as _;
#[rtic::app(device = lm3s6965)] #[rtic::app(device = lm3s6965)]
const APP: () = { mod APP {
// Late resources // Late resources
struct Resources { struct Resources {
p: Producer<'static, u32, U4>, p: Producer<'static, u32, U4>,
@ -49,4 +49,4 @@ const APP: () = {
fn uart0(c: uart0::Context) { fn uart0(c: uart0::Context) {
c.resources.p.enqueue(42).unwrap(); c.resources.p.enqueue(42).unwrap();
} }
}; }

View file

@ -10,7 +10,7 @@ use lm3s6965::Interrupt;
use panic_semihosting as _; use panic_semihosting as _;
#[rtic::app(device = lm3s6965)] #[rtic::app(device = lm3s6965)]
const APP: () = { mod APP {
struct Resources { struct Resources {
#[init(0)] #[init(0)]
shared: u32, shared: u32,
@ -59,4 +59,4 @@ const APP: () = {
fn gpioc(_: gpioc::Context) { fn gpioc(_: gpioc::Context) {
hprintln!("C").unwrap(); hprintln!("C").unwrap();
} }
}; }

View file

@ -9,7 +9,7 @@ use cortex_m_semihosting::{debug, hprintln};
use panic_semihosting as _; use panic_semihosting as _;
#[rtic::app(device = lm3s6965)] #[rtic::app(device = lm3s6965)]
const APP: () = { mod APP {
#[init(spawn = [foo])] #[init(spawn = [foo])]
fn init(c: init::Context) { fn init(c: init::Context) {
c.spawn.foo(/* no message */).unwrap(); c.spawn.foo(/* no message */).unwrap();
@ -49,4 +49,4 @@ const APP: () = {
extern "C" { extern "C" {
fn SSI0(); fn SSI0();
} }
}; }

View file

@ -16,7 +16,7 @@ pub struct NotSend {
} }
#[app(device = lm3s6965)] #[app(device = lm3s6965)]
const APP: () = { mod APP {
struct Resources { struct Resources {
#[init(None)] #[init(None)]
shared: Option<NotSend>, shared: Option<NotSend>,
@ -60,4 +60,4 @@ const APP: () = {
fn SSI0(); fn SSI0();
fn QEI0(); fn QEI0();
} }
}; }

View file

@ -15,7 +15,7 @@ pub struct NotSync {
} }
#[rtic::app(device = lm3s6965)] #[rtic::app(device = lm3s6965)]
const APP: () = { mod APP {
struct Resources { struct Resources {
#[init(NotSync { _0: PhantomData })] #[init(NotSync { _0: PhantomData })]
shared: NotSync, shared: NotSync,
@ -42,4 +42,4 @@ const APP: () = {
extern "C" { extern "C" {
fn SSI0(); fn SSI0();
} }
}; }

View file

@ -10,7 +10,7 @@ use lm3s6965::Interrupt;
use panic_semihosting as _; use panic_semihosting as _;
#[rtic::app(device = lm3s6965)] #[rtic::app(device = lm3s6965)]
const APP: () = { mod APP {
struct Resources { struct Resources {
key: u32, key: u32,
} }
@ -35,4 +35,4 @@ const APP: () = {
fn uart1(cx: uart1::Context) { fn uart1(cx: uart1::Context) {
hprintln!("UART1(key = {:#x})", cx.resources.key).unwrap(); hprintln!("UART1(key = {:#x})", cx.resources.key).unwrap();
} }
}; }

View file

@ -13,7 +13,7 @@ const PERIOD: u32 = 8_000_000;
// NOTE: does NOT work on QEMU! // NOTE: does NOT work on QEMU!
#[rtic::app(device = lm3s6965, monotonic = rtic::cyccnt::CYCCNT)] #[rtic::app(device = lm3s6965, monotonic = rtic::cyccnt::CYCCNT)]
const APP: () = { mod APP {
#[init(schedule = [foo])] #[init(schedule = [foo])]
fn init(cx: init::Context) { fn init(cx: init::Context) {
// omitted: initialization of `CYCCNT` // omitted: initialization of `CYCCNT`
@ -35,4 +35,4 @@ const APP: () = {
extern "C" { extern "C" {
fn SSI0(); fn SSI0();
} }
}; }

View file

@ -7,10 +7,10 @@ use cortex_m_semihosting::debug;
use panic_semihosting as _; use panic_semihosting as _;
#[rtic::app(device = lm3s6965)] #[rtic::app(device = lm3s6965)]
const APP: () = { mod APP {
#[init] #[init]
fn main(_: main::Context) { fn main(_: main::Context) {
assert!(cortex_m::Peripherals::take().is_none()); assert!(cortex_m::Peripherals::take().is_none());
debug::exit(debug::EXIT_SUCCESS); debug::exit(debug::EXIT_SUCCESS);
} }
}; }

View file

@ -18,7 +18,7 @@ use rtic::app;
pool!(P: [u8; 128]); pool!(P: [u8; 128]);
#[app(device = lm3s6965)] #[app(device = lm3s6965)]
const APP: () = { mod APP {
#[init] #[init]
fn init(_: init::Context) { fn init(_: init::Context) {
static mut MEMORY: [u8; 512] = [0; 512]; static mut MEMORY: [u8; 512] = [0; 512];
@ -66,4 +66,4 @@ const APP: () = {
fn SSI0(); fn SSI0();
fn QEI0(); fn QEI0();
} }
}; }

View file

@ -9,7 +9,7 @@ use panic_semihosting as _;
use rtic::app; use rtic::app;
#[app(device = lm3s6965)] #[app(device = lm3s6965)]
const APP: () = { mod APP {
#[init] #[init]
fn init(_: init::Context) { fn init(_: init::Context) {
rtic::pend(Interrupt::GPIOA); rtic::pend(Interrupt::GPIOA);
@ -34,4 +34,4 @@ const APP: () = {
rtic::pend(Interrupt::GPIOB); rtic::pend(Interrupt::GPIOB);
hprintln!(" GPIOC - end").unwrap(); hprintln!(" GPIOC - end").unwrap();
} }
}; }

View file

@ -9,7 +9,7 @@ use cortex_m_semihosting::{debug, hprintln};
use panic_semihosting as _; use panic_semihosting as _;
#[rtic::app(device = lm3s6965)] #[rtic::app(device = lm3s6965)]
const APP: () = { mod APP {
#[init(spawn = [bar])] #[init(spawn = [bar])]
fn init(c: init::Context) { fn init(c: init::Context) {
c.spawn.bar().unwrap(); c.spawn.bar().unwrap();
@ -38,4 +38,4 @@ const APP: () = {
#[link_section = ".data.UART1"] #[link_section = ".data.UART1"]
fn UART1(); fn UART1();
} }
}; }

View file

@ -10,7 +10,7 @@ use lm3s6965::Interrupt;
use panic_semihosting as _; use panic_semihosting as _;
#[rtic::app(device = lm3s6965)] #[rtic::app(device = lm3s6965)]
const APP: () = { mod APP {
struct Resources { struct Resources {
// A resource // A resource
#[init(0)] #[init(0)]
@ -52,4 +52,4 @@ const APP: () = {
hprintln!("UART1: shared = {}", cx.resources.shared).unwrap(); hprintln!("UART1: shared = {}", cx.resources.shared).unwrap();
} }
}; }

View file

@ -12,7 +12,7 @@ use rtic::cyccnt::{Instant, U32Ext as _};
// NOTE: does NOT work on QEMU! // NOTE: does NOT work on QEMU!
#[rtic::app(device = lm3s6965, monotonic = rtic::cyccnt::CYCCNT)] #[rtic::app(device = lm3s6965, monotonic = rtic::cyccnt::CYCCNT)]
const APP: () = { mod APP {
#[init(schedule = [foo, bar])] #[init(schedule = [foo, bar])]
fn init(mut cx: init::Context) { fn init(mut cx: init::Context) {
// Initialize (enable) the monotonic timer (CYCCNT) // Initialize (enable) the monotonic timer (CYCCNT)
@ -50,4 +50,4 @@ const APP: () = {
extern "C" { extern "C" {
fn SSI0(); fn SSI0();
} }
}; }

View file

@ -13,7 +13,7 @@ use rtic::app;
pub struct MustBeSend; pub struct MustBeSend;
#[app(device = lm3s6965)] #[app(device = lm3s6965)]
const APP: () = { mod APP {
struct Resources { struct Resources {
#[init(None)] #[init(None)]
shared: Option<MustBeSend>, shared: Option<MustBeSend>,
@ -37,4 +37,4 @@ const APP: () = {
debug::exit(debug::EXIT_SUCCESS); debug::exit(debug::EXIT_SUCCESS);
} }
} }
}; }

View file

@ -7,4 +7,4 @@ use panic_semihosting as _; // panic handler
use rtic::app; use rtic::app;
#[app(device = lm3s6965)] #[app(device = lm3s6965)]
const APP: () = {}; mod APP {}

View file

@ -8,7 +8,7 @@
use panic_halt as _; use panic_halt as _;
#[rtic::app(device = lm3s6965)] #[rtic::app(device = lm3s6965)]
const APP: () = { mod APP {
#[init] #[init]
fn init(_: init::Context) {} fn init(_: init::Context) {}
@ -23,7 +23,7 @@ const APP: () = {
fn bar(c: bar::Context) { fn bar(c: bar::Context) {
bar_trampoline(c) bar_trampoline(c)
} }
}; }
#[allow(dead_code)] #[allow(dead_code)]
fn foo_trampoline(_: foo::Context) {} fn foo_trampoline(_: foo::Context) {}

View file

@ -6,7 +6,7 @@
use panic_halt as _; use panic_halt as _;
#[rtic::app(device = lm3s6965)] #[rtic::app(device = lm3s6965)]
const APP: () = { mod APP {
struct Resources { struct Resources {
// A resource // A resource
#[init(0)] #[init(0)]
@ -15,8 +15,7 @@ const APP: () = {
// A conditionally compiled resource behind feature_x // A conditionally compiled resource behind feature_x
#[cfg(feature = "feature_x")] #[cfg(feature = "feature_x")]
x: u32, x: u32,
dummy: (), // dummy such that we have at least one late resource
dummy: (),
} }
#[init] #[init]
@ -25,7 +24,7 @@ const APP: () = {
// The feature needs to be applied everywhere x is defined or used // The feature needs to be applied everywhere x is defined or used
#[cfg(feature = "feature_x")] #[cfg(feature = "feature_x")]
x: 0, x: 0,
dummy: (), // dummy such that we have at least one late resource dummy: () // dummy such that we have at least one late resource
} }
} }
@ -35,4 +34,4 @@ const APP: () = {
cortex_m::asm::nop(); cortex_m::asm::nop();
} }
} }
}; }

View file

@ -6,7 +6,7 @@
use panic_halt as _; use panic_halt as _;
#[rtic::app(device = lm3s6965, monotonic = rtic::cyccnt::CYCCNT)] #[rtic::app(device = lm3s6965, monotonic = rtic::cyccnt::CYCCNT)]
const APP: () = { mod APP {
struct Resources { struct Resources {
#[cfg(never)] #[cfg(never)]
#[init(0)] #[init(0)]
@ -52,4 +52,4 @@ const APP: () = {
fn SSI0(); fn SSI0();
fn QEI0(); fn QEI0();
} }
}; }

View file

@ -7,7 +7,7 @@ use cortex_m_semihosting::debug;
use panic_semihosting as _; use panic_semihosting as _;
#[rtic::app(device = lm3s6965)] #[rtic::app(device = lm3s6965)]
const APP: () = { mod APP {
#[init] #[init]
fn init(_: init::Context) { fn init(_: init::Context) {
rtic::pend(lm3s6965::Interrupt::UART0) rtic::pend(lm3s6965::Interrupt::UART0)
@ -17,4 +17,4 @@ const APP: () = {
fn main(_: main::Context) { fn main(_: main::Context) {
debug::exit(debug::EXIT_SUCCESS); debug::exit(debug::EXIT_SUCCESS);
} }
}; }

View file

@ -7,7 +7,7 @@ use cortex_m_semihosting::debug;
use panic_semihosting as _; use panic_semihosting as _;
#[rtic::app(device = lm3s6965)] #[rtic::app(device = lm3s6965)]
const APP: () = { mod APP {
#[init] #[init]
fn init(_: init::Context) {} fn init(_: init::Context) {}
@ -18,4 +18,4 @@ const APP: () = {
cortex_m::asm::nop(); cortex_m::asm::nop();
} }
} }
}; }

View file

@ -7,9 +7,9 @@ use cortex_m_semihosting::debug;
use panic_semihosting as _; use panic_semihosting as _;
#[rtic::app(device = lm3s6965)] #[rtic::app(device = lm3s6965)]
const APP: () = { mod APP {
#[init] #[init]
fn main(_: main::Context) { fn main(_: main::Context) {
debug::exit(debug::EXIT_SUCCESS); debug::exit(debug::EXIT_SUCCESS);
} }
}; }

View file

@ -12,7 +12,7 @@ pub struct NotSend {
} }
#[rtic::app(device = lm3s6965)] #[rtic::app(device = lm3s6965)]
const APP: () = { mod APP {
struct Resources { struct Resources {
x: NotSend, x: NotSend,
#[init(None)] #[init(None)]
@ -35,4 +35,4 @@ const APP: () = {
cortex_m::asm::nop(); cortex_m::asm::nop();
} }
} }
}; }

View file

@ -8,7 +8,7 @@
use panic_halt as _; use panic_halt as _;
#[rtic::app(device = lm3s6965)] #[rtic::app(device = lm3s6965)]
const APP: () = { mod APP {
struct Resources { struct Resources {
#[init(0)] #[init(0)]
o1: u32, // init o1: u32, // init
@ -86,4 +86,4 @@ const APP: () = {
// no `Mutex` proxy when co-owned by cooperative (same priority) tasks // no `Mutex` proxy when co-owned by cooperative (same priority) tasks
let _: &mut u32 = c.resources.s2; let _: &mut u32 = c.resources.s2;
} }
}; }

View file

@ -9,7 +9,7 @@ use panic_halt as _;
use rtic::cyccnt::{Instant, U32Ext as _}; use rtic::cyccnt::{Instant, U32Ext as _};
#[rtic::app(device = lm3s6965, monotonic = rtic::cyccnt::CYCCNT)] #[rtic::app(device = lm3s6965, monotonic = rtic::cyccnt::CYCCNT)]
const APP: () = { mod APP {
#[init(schedule = [foo, bar, baz])] #[init(schedule = [foo, bar, baz])]
fn init(c: init::Context) { fn init(c: init::Context) {
let _: Result<(), ()> = c.schedule.foo(c.start + 10.cycles()); let _: Result<(), ()> = c.schedule.foo(c.start + 10.cycles());
@ -61,4 +61,4 @@ const APP: () = {
extern "C" { extern "C" {
fn SSI0(); fn SSI0();
} }
}; }

View file

@ -8,7 +8,7 @@
use panic_halt as _; use panic_halt as _;
#[rtic::app(device = lm3s6965)] #[rtic::app(device = lm3s6965)]
const APP: () = { mod APP {
#[init(spawn = [foo, bar, baz])] #[init(spawn = [foo, bar, baz])]
fn init(c: init::Context) { fn init(c: init::Context) {
let _: Result<(), ()> = c.spawn.foo(); let _: Result<(), ()> = c.spawn.foo();
@ -60,4 +60,4 @@ const APP: () = {
extern "C" { extern "C" {
fn SSI0(); fn SSI0();
} }
}; }

View file

@ -7,7 +7,7 @@ use cortex_m_semihosting::debug;
use panic_semihosting as _; use panic_semihosting as _;
#[rtic::app(device = lm3s6965)] #[rtic::app(device = lm3s6965)]
const APP: () = { mod APP {
#[init(spawn = [main])] #[init(spawn = [main])]
fn init(cx: init::Context) { fn init(cx: init::Context) {
cx.spawn.main().ok(); cx.spawn.main().ok();
@ -24,4 +24,4 @@ const APP: () = {
extern "C" { extern "C" {
fn SSI0(); fn SSI0();
} }
}; }

View file

@ -9,7 +9,7 @@ use cortex_m_semihosting::{debug, hprintln};
use panic_semihosting as _; use panic_semihosting as _;
#[rtic::app(device = lm3s6965)] #[rtic::app(device = lm3s6965)]
const APP: () = { mod APP {
#[init(spawn = [foo])] #[init(spawn = [foo])]
fn init(c: init::Context) { fn init(c: init::Context) {
c.spawn.foo().unwrap(); c.spawn.foo().unwrap();
@ -52,4 +52,4 @@ const APP: () = {
fn SSI0(); fn SSI0();
fn QEI0(); fn QEI0();
} }
}; }

View file

@ -10,7 +10,7 @@ use panic_semihosting as _;
use rtic::cyccnt; use rtic::cyccnt;
#[rtic::app(device = lm3s6965, peripherals = true, monotonic = rtic::cyccnt::CYCCNT)] #[rtic::app(device = lm3s6965, peripherals = true, monotonic = rtic::cyccnt::CYCCNT)]
const APP: () = { mod APP {
struct Resources { struct Resources {
#[init(0)] #[init(0)]
shared: u32, shared: u32,
@ -60,4 +60,4 @@ const APP: () = {
extern "C" { extern "C" {
fn SSI0(); fn SSI0();
} }
}; }