Skip to content
Snippets Groups Projects
Commit 06de9e12 authored by Benjamin Koch's avatar Benjamin Koch
Browse files

add workaround for hang in startup

parent 303ac27f
No related branches found
No related tags found
No related merge requests found
...@@ -419,8 +419,8 @@ impl<'a> ModbusRegisters for ModBusRegs<'a> { ...@@ -419,8 +419,8 @@ impl<'a> ModbusRegisters for ModBusRegs<'a> {
} }
} }
#[embassy_executor::main] //#[embassy_executor::main]
async fn main(spawner: Spawner) { async fn main2(spawner: Spawner) {
let p = embassy_rp::init(Default::default()); let p = embassy_rp::init(Default::default());
info!("starting"); info!("starting");
...@@ -499,3 +499,37 @@ async fn main(spawner: Spawner) { ...@@ -499,3 +499,37 @@ async fn main(spawner: Spawner) {
Timer::after(Duration::from_secs(1)).await; Timer::after(Duration::from_secs(1)).await;
} }
} }
/*
#[embassy_executor::main]
async fn main(spawner: Spawner) {
main2(spawner).await;
}
*/
#[::embassy_executor::task()]
async fn __embassy_main(spawner: Spawner) {
main2(spawner).await;
}
unsafe fn __make_static<T>(t: &mut T) -> &'static mut T {
::core::mem::transmute(t)
}
#[cortex_m_rt::entry]
fn main() -> ! {
init_early();
let mut executor = ::embassy_executor::Executor::new();
let executor = unsafe { __make_static(&mut executor) };
executor.run(|spawner| {
spawner.must_spawn(__embassy_main(spawner));
})
}
fn init_early() {
use embassy_rp::pac;
// release spinlock 31 because we sometimes block on this in the init code
unsafe { pac::SIO.spinlock(31).write_value(1); }
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment