forked from ROMEO/obsw
tracing task problem
This commit is contained in:
parent
63b0a25030
commit
e1f250e8f7
@ -88,11 +88,13 @@ extern "C" fn rust_main() {
|
|||||||
#[no_mangle]
|
#[no_mangle]
|
||||||
extern "C" fn task_entry(task_object: *mut cty::c_void) {
|
extern "C" fn task_entry(task_object: *mut cty::c_void) {
|
||||||
sifln!("Task Entry");
|
sifln!("Task Entry");
|
||||||
|
sifln!("getting pointer {:p}", task_object);
|
||||||
let task: &mut PeriodicTaskRunner;
|
let task: &mut PeriodicTaskRunner;
|
||||||
unsafe {
|
unsafe {
|
||||||
let pointer = task_object as *mut PeriodicTaskRunner;
|
let pointer = task_object as *mut PeriodicTaskRunner;
|
||||||
task = &mut *pointer;
|
task = &mut *pointer;
|
||||||
}
|
}
|
||||||
|
sifln!("casting pointer {:p}", task as *mut PeriodicTaskRunner);
|
||||||
task.execute();
|
task.execute();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -134,6 +136,7 @@ impl<'a, const STACKSIZE: usize> PeriodicTask<'a, STACKSIZE> {
|
|||||||
};
|
};
|
||||||
let runner_pointer: *mut cty::c_void = &mut instance.runner as *mut _ as *mut cty::c_void;
|
let runner_pointer: *mut cty::c_void = &mut instance.runner as *mut _ as *mut cty::c_void;
|
||||||
let stack_pointer: *mut cty::c_void = &mut instance.stack as *mut _ as *mut cty::c_void;
|
let stack_pointer: *mut cty::c_void = &mut instance.stack as *mut _ as *mut cty::c_void;
|
||||||
|
sifln!("giving pointer {:p} {:p}", runner_pointer, &mut instance.runner as *mut PeriodicTaskRunner);
|
||||||
unsafe {
|
unsafe {
|
||||||
instance.task = create_task(task_entry, runner_pointer, stack_pointer, STACKSIZE);
|
instance.task = create_task(task_entry, runner_pointer, stack_pointer, STACKSIZE);
|
||||||
}
|
}
|
||||||
@ -163,16 +166,16 @@ struct HandlerSender {
|
|||||||
other_handler: MessageQueueSender<Message>,
|
other_handler: MessageQueueSender<Message>,
|
||||||
}
|
}
|
||||||
|
|
||||||
impl Handler {
|
// impl Handler {
|
||||||
fn handle_message(&self, message: Message) {
|
// fn handle_message(&self, message: Message) {
|
||||||
match message {
|
// match message {
|
||||||
Message::OK=> {sifln!("OK");},
|
// Message::OK=> {sifln!("OK");},
|
||||||
Message::FAILED => {sifln!("FAILED");},
|
// Message::FAILED => {sifln!("FAILED");},
|
||||||
Message::DATA(data) => {sifln!("p1: {}, p2 {}", data.p1, data.p2);}
|
// Message::DATA(data) => {sifln!("p1: {}, p2 {}", data.p1, data.p2);}
|
||||||
}
|
// }
|
||||||
|
|
||||||
}
|
// }
|
||||||
}
|
// }
|
||||||
|
|
||||||
impl ExecutableObjectIF for Handler {
|
impl ExecutableObjectIF for Handler {
|
||||||
fn perform(&mut self) {
|
fn perform(&mut self) {
|
||||||
@ -318,7 +321,9 @@ fn mission() {
|
|||||||
|
|
||||||
// h2.other_handler = h1.command_queue.get_sender();
|
// h2.other_handler = h1.command_queue.get_sender();
|
||||||
|
|
||||||
let _t1: PeriodicTask<'_, 512> = PeriodicTask::new(&mut h1);
|
let mut _t1: PeriodicTask<'_, 512> = PeriodicTask::new(&mut h1);
|
||||||
|
|
||||||
|
sifln!("mission pointer {:p}", &mut _t1.runner as *mut PeriodicTaskRunner);
|
||||||
|
|
||||||
//let _t2: PeriodicTask<'_, 512> = PeriodicTask::new(&mut h2);
|
//let _t2: PeriodicTask<'_, 512> = PeriodicTask::new(&mut h2);
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user