update examples and tests

This commit is contained in:
Jorge Aparicio 2019-02-12 15:08:46 +01:00
parent 88599780e0
commit 89c922079e
10 changed files with 23 additions and 17 deletions

View file

@ -22,7 +22,7 @@ const APP: () = {
static mut C: Consumer<'static, u32, U4> = (); static mut C: Consumer<'static, u32, U4> = ();
#[init] #[init]
fn init() { fn init() -> init::LateResources {
// NOTE: we use `Option` here to work around the lack of // NOTE: we use `Option` here to work around the lack of
// a stable `const` constructor // a stable `const` constructor
static mut Q: Option<Queue<u32, U4>> = None; static mut Q: Option<Queue<u32, U4>> = None;
@ -31,8 +31,7 @@ const APP: () = {
let (p, c) = Q.as_mut().unwrap().split(); let (p, c) = Q.as_mut().unwrap().split();
// Initialization of late resources // Initialization of late resources
P = p; init::LateResources { P: p, C: c }
C = c;
} }
#[idle(resources = [C])] #[idle(resources = [C])]

View file

@ -20,10 +20,12 @@ const APP: () = {
static mut P: Pool<M> = (); static mut P: Pool<M> = ();
#[init(resources = [M])] #[init(resources = [M])]
fn init() { fn init() -> init::LateResources {
rtfm::pend(Interrupt::I2C0); rtfm::pend(Interrupt::I2C0);
P = Pool::new(resources.M); init::LateResources {
P: Pool::new(resources.M),
}
} }
#[interrupt( #[interrupt(

View file

@ -16,11 +16,11 @@ const APP: () = {
static KEY: u32 = (); static KEY: u32 = ();
#[init] #[init]
fn init() { fn init() -> init::LateResources {
rtfm::pend(Interrupt::UART0); rtfm::pend(Interrupt::UART0);
rtfm::pend(Interrupt::UART1); rtfm::pend(Interrupt::UART1);
KEY = 0xdeadbeef; init::LateResources { KEY: 0xdeadbeef }
} }
#[interrupt(resources = [KEY])] #[interrupt(resources = [KEY])]

View file

@ -11,7 +11,7 @@ use rtfm::app;
const APP: () = { const APP: () = {
#[init] #[init]
fn init() -> ! { fn init() -> ! {
//~^ ERROR `init` must have type signature `[unsafe] fn()` //~^ ERROR `init` must have type signature `[unsafe] fn() [-> init::LateResources]`
loop {} loop {}
} }
}; };

View file

@ -11,6 +11,6 @@ use rtfm::app;
const APP: () = { const APP: () = {
#[init] #[init]
fn init(undef: u32) { fn init(undef: u32) {
//~^ ERROR `init` must have type signature `[unsafe] fn()` //~^ ERROR `init` must have type signature `[unsafe] fn() [-> init::LateResources]`
} }
}; };

View file

@ -11,7 +11,7 @@ use rtfm::app;
const APP: () = { const APP: () = {
#[init] #[init]
fn init() -> u32 { fn init() -> u32 {
//~^ ERROR `init` must have type signature `[unsafe] fn()` //~^ ERROR `init` must have type signature `[unsafe] fn() [-> init::LateResources]`
0 0
} }
}; };

View file

@ -22,8 +22,10 @@ const APP: () = {
static mut X: NotSend = (); static mut X: NotSend = ();
#[init] #[init]
fn init() { fn init() -> init::LateResources {
X = NotSend { _0: PhantomData }; init::LateResources {
X: NotSend { _0: PhantomData },
}
} }
#[interrupt(resources = [X])] #[interrupt(resources = [X])]

View file

@ -1,3 +1,5 @@
// TODO remove in v0.5.x
#![no_main] #![no_main]
#![no_std] #![no_std]

View file

@ -19,10 +19,12 @@ const APP: () = {
static mut Y: Option<NotSend> = None; static mut Y: Option<NotSend> = None;
#[init(resources = [Y])] #[init(resources = [Y])]
fn init() { fn init() -> init::LateResources {
*resources.Y = Some(NotSend { _0: PhantomData }); *resources.Y = Some(NotSend { _0: PhantomData });
X = NotSend { _0: PhantomData }; init::LateResources {
X: NotSend { _0: PhantomData },
}
} }
#[idle(resources = [X, Y])] #[idle(resources = [X, Y])]

View file

@ -14,8 +14,7 @@ const APP: () = {
static Y: u32 = (); static Y: u32 = ();
#[init] #[init]
fn init() { fn init() -> init::LateResources {
X = 0; init::LateResources { X: 0, Y: 1 }
Y = 1;
} }
}; };