tracing task problem

This commit is contained in:
Ulrich Mohr 2023-11-16 16:12:33 +01:00
parent 63b0a25030
commit e1f250e8f7

View File

@ -88,11 +88,13 @@ extern "C" fn rust_main() {
#[no_mangle]
extern "C" fn task_entry(task_object: *mut cty::c_void) {
sifln!("Task Entry");
sifln!("getting pointer {:p}", task_object);
let task: &mut PeriodicTaskRunner;
unsafe {
let pointer = task_object as *mut PeriodicTaskRunner;
task = &mut *pointer;
}
sifln!("casting pointer {:p}", task as *mut PeriodicTaskRunner);
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 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 {
instance.task = create_task(task_entry, runner_pointer, stack_pointer, STACKSIZE);
}
@ -163,16 +166,16 @@ struct HandlerSender {
other_handler: MessageQueueSender<Message>,
}
impl Handler {
fn handle_message(&self, message: Message) {
match message {
Message::OK=> {sifln!("OK");},
Message::FAILED => {sifln!("FAILED");},
Message::DATA(data) => {sifln!("p1: {}, p2 {}", data.p1, data.p2);}
}
// impl Handler {
// fn handle_message(&self, message: Message) {
// match message {
// Message::OK=> {sifln!("OK");},
// Message::FAILED => {sifln!("FAILED");},
// Message::DATA(data) => {sifln!("p1: {}, p2 {}", data.p1, data.p2);}
// }
}
}
// }
// }
impl ExecutableObjectIF for Handler {
fn perform(&mut self) {
@ -318,7 +321,9 @@ fn mission() {
// 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);