aboutsummaryrefslogtreecommitdiff
path: root/rtic-monotonics/src
AgeCommit message (Collapse)Author
2025-06-30panic if STM32 clock prescaler value overflowsAnton Lazarev
2025-06-15Add all the timers to the list in lib.rs.Jonathan 'theJPster' Pallant
2025-06-15Add details for all the other monotonic implementations.Jonathan 'theJPster' Pallant
2025-06-15More details about the arguments for the systick API.Jonathan 'theJPster' Pallant
2025-06-15Improved example and comments for the systick! macro.Jonathan 'theJPster' Pallant
2025-04-07Use PLIC_MX instead of INTPRI to set interrupt prioritiesEli Hastings
This doesn't fix the GPIO interrupt triggering during a higher priority CPU task, but does fix rtic-monotonics. I am unsure how to fix the former as PLIC_MX doesn't have a function like `cpu_intr_from_cpu_x` to pend/unpend CPU interrupts, and if the CPU interrupts are enabled with PLIC_MX instead of INTPRI then the MCU just hangs when there is a CPU interrupt.
2025-04-07Port ESP32-C3 changes to ESP32-C6 branchEli Hastings
2025-04-03Placate clippydatdenkikniet
2025-03-23rtic: placate clippy for esp32c3datdenkikniet
2025-01-24ATSAMD RTC monotonic referral in documentation (#1014)Dan Whitman
* rtic-monotonics: Adds a section to the module documentation about ATSAMD chip monotonics provided in the `atsamd-hal` crate * rtic-monotonics: Adds a section to README listing the supported microcontroller platforms. * rtic-sync: Fix clippy complaints error: the following explicit lifetimes could be elided: 'a --> rtic-sync/src/signal.rs:113:6 | 113 | impl<'a, T: Copy> SignalReader<'a, T> { | ^^ ^^ | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes = note: `-D clippy::needless-lifetimes` implied by `-D warnings` = help: to override `-D warnings` add `#[allow(clippy::needless_lifetimes)]` help: elide the lifetimes | 113 - impl<'a, T: Copy> SignalReader<'a, T> { 113 + impl<T: Copy> SignalReader<'_, T> { * xtask: Clippy fix warning warning: elided lifetime has a name --> xtask/src/cargo_command.rs:427:14 | 420 | fn build_args<'i, T: Iterator<Item = &'i str>>( | -- lifetime `'i` declared here ... 427 | ) -> Vec<&str> { | ^ this elided lifetime gets resolved as `'i` | = note: `#[warn(elided_named_lifetimes)]` on by default --------- Co-authored-by: Dan Whitman <daniel.whitman.2@us.af.mil> Co-authored-by: Henrik Tjäder <henrik@tjaders.com>
2025-01-15rtic-monotonics: rp2040 extra parenthesis (#1010)Henrik Tjäder
2024-10-23[monotonics] Fix STM32 read-modify-write race condition (#984)Finomnis
* Fix stm32 read-modify-write problem The `SR` register for STM32 clears when writing a zero to a bit. Therefore, all registers that should not be cleared need to be `1`. `modify` here caused a read-modify-write error that could clear unrelated flags. * Add changelog * Make initialization more deterministic * Update changelog * Beautification in comments --------- Co-authored-by: Martin Stumpf <martin.stumpf@vected.de>
2024-10-23rtic-monotonics: Improve docs on interrupt priorityEmil Fresk
2024-10-16Update support/example for ESP32-C3 to use latest versions of dependencies ↵Jesse Braham
(#975) * Update `rtic` package to use latest version of `esp32c3` dependency * Update `rtic-macros` ESP32-C3 bindings to reflect changes in HAL * Update the ESP32-C3 examples to use latest versions of all dependencies * Update changelogs * adjust expected qemu output, add compile-time checks * remove runtime checks, this is checked at compile time * fix expected qemu output * Clean up interrupt enable code a bit * Update `rtic-monotonic` to use the latest PAC for ESP32-C3 * Update `CHANGELOG.md` for `rtic-monotonic` * ci: esp32c3: Format runner.sh * ci: esp32c3: Default to silent boot export DEBUGGING while running to get verbose boot env DEBUGGING=1 cargo xtask ... * ci: esp32c3: Update expected example output --------- Co-authored-by: onsdagens <pawdzi-7@student.ltu.se> Co-authored-by: Henrik Tjäder <henrik@tjaders.com>
2024-09-29Add SYSTIMER based ESP32-C3 monotonic (#972)onsdagens
* add esp32c3 monotonic * fix tests
2024-09-29Feature/rp235x (#970)Michael Zill
* Add support for RP235x (Raspberry Pico 2) The xtask build system has not been updated therefor the components need to be build through Cargo * Remove unnecessary thumbv8mainhf-backend definition * Remove unnecessary thumbv8m.main-none-eabihf target * Update CHANGELOG * Remove default feature rp235x from rtic-monotonics * Remove features from rp235x-pac dependency in rtic-monotonics for rp235x
2024-09-18Fix for system_monotonic macro with 1 argument (#978)Robin Mueller
2024-09-18update docs (#977)Robin Mueller
Add notice for systems without native CAS operations
2024-07-05Fix STM32 Monotonic for peripherals with only two Clock Compare modules (#960)Finomnis
* 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
2024-06-23Breaking change: portable-atomic (#922)Henrik Tjäder
* 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>
2024-06-02Make rtic-monotonic macros create a public typeEmil Fresk
2024-05-27add support for nrf52805 (#941)Foo
2024-04-21Bump rp2040-pac to 0.6 in rtic-monotonics (#905)Martins Polakovs
* Support rp2040-pac v0.6 in rtic-monotonics * Add changelog entry * Fix rp2040_local_i2c_init example
2024-04-10Monotonic rewrite (#874)Finomnis
* 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>
2023-12-06Fix race condition in `calculate_now` (#860)Finomnis
* Fix race condition in calculate_now * Add changelog * Update changelog * Refine comment * More comment fixes
2023-12-06Fix `nrf::rtc` errata workaround (#858)Finomnis
* Deprecate `should_dequeue_check` * Fix errata by delaying the wakeup point * Add changelog * Fix changelog typos
2023-12-06Fix nrf monotonics (#852)Finomnis
* 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
2023-12-04Refactor race condition free timer helper (#850)Finomnis
* 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
2023-12-01Fix mono delay (#843)Finomnis
* rtic-time: Compenstate for timer uncertainty * Update changelog and incorrect cargo.lock in an example * Fix Monotonic impls * Fix tests * Fix other monotonics, again * Update changelog * Fix example * Fix DelayUs and DelayMs impls * Minor coding style fix in u64 conversions * Fix all changelogs * Fix changelog * Fix blocking DelayUs * Minor monotonic rework * Add delay precision test * Add more tests * Add rust-version tags to Cargo.toml * Fix imxrt, rp2040 and systick timer * Fix more monotonics * Fix systick monotonic * Some reverts * Fix imxrt * Fix nrf * Fix rp2040 * Fix stm32 * Fix systick * Fix rtic-time tests * Bump to e-h.rc2 * Apply e-h.rc2 fixes to rtic-time * Apply fixes from arbiter * Fix clippy warning * Minor beautification * Revert previous changes * Fix variable name * Add blocking tests, but disable them by default
2023-11-10Update systick.rsFinomnis
2023-11-10Add documentation for imxrt; other doc fixesFinomnis
2023-11-08CI: rtic-monotonics: systick not always in scopeHenrik Tjäder
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` ```
2023-11-08Add Monotonic for i.MX RT chip familyFinomnis
2023-11-08Fix STM32 monotonic rollover race conditionFinomnis
2023-11-01Fix CI with async_fn_in_trait not being a featureEmil Fresk
2023-10-03rtic-monotonics: Fix stm32-metapac useNils Fitinghoff
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.
2023-09-19rtic-monotonics: Implement blocking DelayUs from embedded-hal 1Nils Fitinghoff
2023-09-06add embedded-hal-async impl to stm32Andres Vahter
2023-09-06expose all stm32-metapac chips as featuresAndres Vahter
add more supported timers
2023-09-06PoC Monotonic impl based on stm32-metapacAndres Vahter
2023-08-25rtic-monotonics: Add 64-bit SysTick monotonicNils Fitinghoff
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.
2023-08-08Support RP2040 PAC v0.5 in `rtic-monotonics`Emil Fresk
2023-07-25Fixed new TAIT requirement and release v2.0.1 of RTICEmil Fresk
2023-04-23Update embedded-hal-asyncdatdenkikniet
2023-04-16Merge #736bors[bot]
736: More `xtasks` and add examples to `rtic` repo r=korken89 a=datdenkikniet This was in #732 before, but decluttering that PR seemed sensible Co-authored-by: datdenkikniet <jcdra1@gmail.com>
2023-04-16Deny on warnings in xtasksdatdenkikniet
2023-04-15rtic-monotonics: Add some docsdatdenkikniet
2023-04-10rtic-monotonics: export fugit the same for all monotonicsEmil Fresk
2023-04-05Fix monotonics raceEmil Fresk
2023-04-04Add setting of priority to interruptsEmil Fresk