rtic/tests/cpass/spawn.rs

60 lines
1.4 KiB
Rust
Raw Permalink Normal View History

2018-11-03 17:02:41 +01:00
//! Check code generation of `spawn`
#![no_main]
#![no_std]
extern crate lm3s6965;
extern crate panic_halt;
extern crate rtfm;
use rtfm::app;
#[app(device = lm3s6965)]
const APP: () = {
#[init(spawn = [foo, bar, baz])]
fn init() {
let _: Result<(), ()> = spawn.foo();
let _: Result<(), u32> = spawn.bar(0);
let _: Result<(), (u32, u32)> = spawn.baz(0, 1);
}
#[idle(spawn = [foo, bar, baz])]
fn idle() -> ! {
let _: Result<(), ()> = spawn.foo();
let _: Result<(), u32> = spawn.bar(0);
let _: Result<(), (u32, u32)> = spawn.baz(0, 1);
loop {}
}
#[exception(spawn = [foo, bar, baz])]
fn SVCall() {
let _: Result<(), ()> = spawn.foo();
let _: Result<(), u32> = spawn.bar(0);
let _: Result<(), (u32, u32)> = spawn.baz(0, 1);
}
#[interrupt(spawn = [foo, bar, baz])]
fn UART0() {
let _: Result<(), ()> = spawn.foo();
let _: Result<(), u32> = spawn.bar(0);
let _: Result<(), (u32, u32)> = spawn.baz(0, 1);
}
#[task(spawn = [foo, bar, baz])]
fn foo() {
let _: Result<(), ()> = spawn.foo();
let _: Result<(), u32> = spawn.bar(0);
let _: Result<(), (u32, u32)> = spawn.baz(0, 1);
}
#[task]
fn bar(_x: u32) {}
#[task]
fn baz(_x: u32, _y: u32) {}
extern "C" {
fn UART1();
}
};