From e1f250e8f73e41226587562ab738049cc27ea2f0 Mon Sep 17 00:00:00 2001 From: Ulrich Mohr Date: Thu, 16 Nov 2023 16:12:33 +0100 Subject: [PATCH] tracing task problem --- mission_rust/src/lib.rs | 25 +++++++++++++++---------- 1 file changed, 15 insertions(+), 10 deletions(-) diff --git a/mission_rust/src/lib.rs b/mission_rust/src/lib.rs index 77261b6..bf55d45 100644 --- a/mission_rust/src/lib.rs +++ b/mission_rust/src/lib.rs @@ -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, } -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);