safe &'static mut references via init.resources

This commit is contained in:
Jorge Aparicio 2017-12-09 17:14:51 +01:00
parent a6dd004113
commit d30bdcb096
6 changed files with 153 additions and 10 deletions

View file

@ -0,0 +1,31 @@
#![deny(warnings)]
#![feature(proc_macro)]
#![no_std]
extern crate cortex_m_rtfm as rtfm;
extern crate stm32f103xx;
use rtfm::app;
app! { //~ proc macro panicked
device: stm32f103xx,
resources: {
static BUFFER: [u8; 16] = [0; 16];
},
init: {
resources: [BUFFER],
},
idle: {
// ERROR resources assigned to `init` can't be shared with `idle`
resources: [BUFFER],
},
}
fn init(_p: init::Peripherals, _r: init::Resources) {}
fn idle(_r: init::Resources) -> ! {
loop {}
}

View file

@ -0,0 +1,36 @@
#![deny(warnings)]
#![feature(proc_macro)]
#![no_std]
extern crate cortex_m_rtfm as rtfm;
extern crate stm32f103xx;
use rtfm::app;
app! { //~ proc macro panicked
device: stm32f103xx,
resources: {
static BUFFER: [u8; 16] = [0; 16];
},
init: {
resources: [BUFFER],
},
tasks: {
SYS_TICK: {
path: sys_tick,
// ERROR resources assigned to `init` can't be shared with tasks
resources: [BUFFER],
},
},
}
fn init(_p: init::Peripherals) {}
fn idle() -> ! {
loop {}
}
fn sys_tick() {}