ch32-rs/ch32-hal

Is the interrupt::typelevel::Handler wrong?

Closed this issue · 4 comments

Looks like the interrupt::typelevel::Handler<T> type actually has this unsafe fn on_interrupt interface which is directly linked into the interrupt vector table. But the function is not actually wrapped in qingke_rt::interrupt thus it use ret instead of mret.

Has anyone tried using anything beside EXTI that uses interrupt? It looks like it will just put the core into interrupt mode and never leave? (Including the Async UART Tx/Rx ?)

Would be good to know which parts of the code has been run on actual hardware so we can better help with the development here.

Just wasted 6 hours figuring out why the world was not going. Granted I lack any knowledge in risc-v.

Thanks. It should be marked as #[qingke_rt::interrupt]

Thanks.
This is a significant typo that needs to be corrected. 🥲

Looks like this got fixed by the above commit. Closing