* Update dependencies of stm32g0 timer example
* Replace obsolete probe-run with probe-rs run
* Modify stm32 monotonic to work with timers that have only 2 compare modules
* Add changelog
* Fix typo
* 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>
* Rebase to master
* using interrupt_mod
* bug fixes
* fix other backends
* Add changelog
* forgot about rtic-macros
* backend-specific configuration
* core peripherals optional over macro argument
* pre_init_preprocessing binding
* CI for RISC-V (WIP)
* separation of concerns
* add targets for RISC-V examples
* remove qemu feature
* prepare examples folder
* move examples all together
* move ci out of examples
* minor changes
* add cortex-m
* new xtask: proof of concept
* fix build.yml
* feature typo
* clean rtic examples
* reproduce weird issue
* remove unsafe code in user app
* update dependencies
* allow builds on riscv32imc
* let's fix QEMU
* Update .github/workflows/build.yml
Co-authored-by: Henrik Tjäder <henrik@tjaders.com>
* New build.rs
* removing test features
* adapt ui test to new version of clippy
* add more examples to RISC-V backend
* proper configuration of heapless for riscv32imc
* opt-out examples for riscv32imc
* point to new version of riscv-slic
* adapt new macro bindings
* adapt examples and CI to stable
* fix cortex-m CI
* Review
---------
Co-authored-by: Henrik Tjäder <henrik@tjaders.com>
* Fix nrf::timer
* Bootstrap nrf52840-blinky example
* More work on nrf blinky example
* Fix README
* Add asserts for correct timer functionality
* Add correctness check to other monotonics as well
* Update Changelog
* Fix potential timing issues
* Fix race condition in nrf::rtc
* Add changelog
* Add rtc blinky example
* Change rtc example to RC lf clock source
* Add changelog to rtic-time
* Add changelog
* Attempt to fix CI
* Update teensy4-blinky Cargo.lock
* 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
Links are checked during compilation, and to not
make it overly complex remove the link
```
error: unresolved link to `systick`
--> rtic-monotonics/src/lib.rs:7:11
|
7 | //! The [`systick`] monotonic works on all cortex-M parts, and requires that the feature `cortex-m-systick` is enabled.
| ^^^^^^^ no item named `systick` in scope
|
= help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]`
= note: `-D rustdoc::broken-intra-doc-links` implied by `-D warnings`
= help: to override `-D warnings` add `#[allow(rustdoc::broken_intra_doc_links)]`
error: could not document `rtic-monotonics`
```
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.