Skip to content

Repository files navigation

itron

docs.rs

A Rust interface to interact with operating systems based on μITRON or its derivative.

This is not an officially supported project.

Examples

Cargo.toml:

[dependencies]
itron = { version = "0.1.0", features = ["asp3", "dcre"] }

Using the low-level binding:

use core::{mem, ptr};use itron::abi::{acre_tsk,TA_ACT,T_CTSK,EXINF,ID};fncreate_task(param:isize) -> ID{extern"C"fntask_body(exinf:EXINF){let _param = unsafe{ exinf.assume_init()};}let er = unsafe{acre_tsk(&T_CTSK{tskatr:TA_ACT,exinf: mem::MaybeUninit::new(param),task:Some(task_body),itskpri:4,stksz:2048,stk: ptr::null_mut(),})};assert!(er >= 0,"could not create a task (error {})", er);
er
}

Using the safe, high-level binding (experimental, requires unstable feature):

use itron::task;fncreate_task(param:isize) -> task::Task{let task_body = move || {let _param = param;};let new_task = task::Task::build().start(create_task).stack_size(2048).initial_priority(4).finish().expect("could not create a task");
new_task.as_ref().activate().unwrap();
new_task
}

About

μITRON × Rust

Topics

Resources

Stars

3 stars

Watchers

2 watching

Forks

Releases

Packages

Used by

Contributors

Languages