Now core contains the same Peripherals type based on monotonic

This commit is contained in:
Emil Fresk 2020-10-07 15:17:00 +02:00
parent 36781cdd89
commit 6d003e20a8
2 changed files with 30 additions and 2 deletions

View file

@ -0,0 +1,28 @@
//! [compile-pass] Check `schedule` code generation
#![deny(unsafe_code)]
#![deny(warnings)]
#![no_main]
#![no_std]
use panic_halt as _;
#[rtic::app(device = lm3s6965, monotonic = rtic::cyccnt::CYCCNT)]
mod app {
#[init]
fn init(c: init::Context) -> init::LateResources {
let _c: rtic::Peripherals = c.core;
init::LateResources {}
}
#[task]
fn some_task(_: some_task::Context) {}
// RTIC requires that unused interrupts are declared in an extern block when
// using software tasks; these free interrupts will be used to dispatch the
// software tasks.
extern "C" {
fn SSI0();
}
}

View file

@ -15,7 +15,7 @@ pub fn codegen(ctxt: Context, resources_tick: bool, app: &App, extra: &Extra) ->
let mut lt = None; let mut lt = None;
match ctxt { match ctxt {
Context::Init => { Context::Init => {
if app.uses_schedule() { if extra.monotonic.is_some() {
let m = extra.monotonic(); let m = extra.monotonic();
fields.push(quote!( fields.push(quote!(
@ -277,7 +277,7 @@ pub fn codegen(ctxt: Context, resources_tick: bool, app: &App, extra: &Extra) ->
}; };
let core = if ctxt.is_init() { let core = if ctxt.is_init() {
if app.uses_schedule() { if extra.monotonic.is_some() {
Some(quote!(core: rtic::Peripherals,)) Some(quote!(core: rtic::Peripherals,))
} else { } else {
Some(quote!(core: rtic::export::Peripherals,)) Some(quote!(core: rtic::export::Peripherals,))