* Atomics: Replace polyfill with portable-atomic
* Update Cargo.lock for examples
* RTIC: portable-atomic: Update changelog
* rtic-monotonics: portable-atomic: Update changelog
* lm3s6965: enable critical-section when testing
* xtask: Enable portable-atomic/critical-section
When dealing with rtic-monotonics
* rtic-monotonics: portable-atomics: Do not disable the ability to fallback
---------
Co-authored-by: Emil Fresk <emil.fresk@gmail.com>
* Rework timer_queue and monotonic architecture
Goals:
* make Monotonic purely internal
* make Monotonic purely tick passed, no fugit involved
* create a wrapper struct in the user's code via a macro that then
converts the "now" from the tick based monotonic to a fugit based
timestamp
We need to proxy the delay functions of the timer queue anyway,
so we could simply perform the conversion in those proxy functions.
* Update cargo.lock
* Update readme of rtic-time
* CI: ESP32: Redact esp_image: Too volatile
* Fixup: Changelog double entry rebase mistake
---------
Co-authored-by: Henrik Tjäder <henrik@tjaders.com>
* Implement half_period_counter in rtic-time
* Rename compute_now to calculate_now, use it in stm32 and imxrt
* Add more tests
* Add some docs
* Fix clippy warning, add imxrt timer to monotonics tests
* Bump dependency version to make sure monotonics will build properly
* Add changelog to rtic-monotonics
* Add more docs
* Add more docs
* Finish documentation
* Fix typos
* Switch from atomic-polyfill to portable-atomic
* Some more doc fixes
* More doc fixes
* Minor doc fix
* Minor doc fix
* Fix Atomics not existing
* Fix example
* Minor example improvement
* Revert back to atomic-polyfill
* Fix cargo.toml formatting
* Remove atomic-polyfill
* Attempt to fix unused macro warning
* Remove atomics completely from half period counter
* Minor doc fix
* Doc fixes
* Doc fixes
* Remove obsolete comment
* Fix ordering in monotonic initialization sequence
Previously, the stm32 monotonics only compiled for some chip families. For
example, stm32g081kb worked, but not stm32f407*.
The stm32-metapac does not directly unify peripheral names between the
many stm32 families, but provides tools for build scripts to generate
code that uses the right names for the selected chip. Use that mechanism
instead of targeting a specific family.
Counting at 1 kHz, 32 bits for counting ticks is not enough to ensure
monotonicity for more than 50 days. Add a feature to change the backing
storage to 64 bits.
Some hals implement traits for embedded-hal version `=1.0.0.alpha.<not 9>`, which is
explicitly incompatible with the version `=1.0.0.alpha.9` which embedded-hal-async
depends on. Making the dependency optional allows downstream projects to include
rtic-monotonic without requiring that all of their other libraries also implement
that specific version of embedded-hal 1.0