Migrating from v1.0.x to v2.0.0
Migrating a project from RTIC v1.0.x to v2.0.0 involves the following steps:
v2.1.0works on Rust Stable from 1.75 (recommended), while older versions require anightlycompiler via the use of#![type_alias_impl_trait].- Migrating from the monotonics included in
v1.0.xtortic-timeandrtic-monotonics, replacingspawn_after,spawn_at. - Software tasks are now required to be
async, and using them correctly. - Understanding and using data types provided by
rtic-sync.
For a detailed description of the changes, refer to the subchapters.
If you wish to see a code example of changes required, you can check out the full example migration page.
TL;DR (Too Long; Didn't Read)
- Instead of
spawn_afterandspawn_at, you now use theasyncfunctionsdelay,delay_until(and related) with impls provided byrtic-monotonics. - Software tasks must be
async fns now. Not returning from a task is allowed so long as there is anawaitin the task. You can stilllockshared resources. - Use
rtic_sync::arbiter::Arbitertoawaitaccess to a shared resource, andrtic_sync::channel::Channelto communicate between tasks instead ofspawn-ing new ones.