From 8c23e178f3838bcdd13662a2ffefd39ec144e869 Mon Sep 17 00:00:00 2001 From: Finomnis Date: Thu, 11 Apr 2024 00:00:38 +0200 Subject: Monotonic rewrite (#874) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * 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 --- examples/teensy4_blinky/Cargo.lock | 22 +++++++++++++++++----- examples/teensy4_blinky/Cargo.toml | 2 +- examples/teensy4_blinky/examples/with_logs.rs | 8 +++----- examples/teensy4_blinky/src/main.rs | 7 +++---- 4 files changed, 24 insertions(+), 15 deletions(-) (limited to 'examples/teensy4_blinky') diff --git a/examples/teensy4_blinky/Cargo.lock b/examples/teensy4_blinky/Cargo.lock index 314eae0..8ae5b95 100644 --- a/examples/teensy4_blinky/Cargo.lock +++ b/examples/teensy4_blinky/Cargo.lock @@ -133,9 +133,18 @@ dependencies = [ [[package]] name = "embedded-hal" -version = "1.0.0-rc.2" +version = "1.0.0-rc.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3e57ec6ad0bc8eb967cf9c9f144177f5e8f2f6f02dad0b8b683f9f05f6b22def" +checksum = "bc402f79e1fd22731ca945b4f97b5ff37e7b3f379312595c42bb2e8811c29920" + +[[package]] +name = "embedded-hal-async" +version = "1.0.0-rc.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fa1fba2ef2ffb35d614acc6fb323ddf7facc45c069f24544d49ea54e5043626d" +dependencies = [ + "embedded-hal 1.0.0-rc.3", +] [[package]] name = "equivalent" @@ -440,12 +449,12 @@ dependencies = [ [[package]] name = "rtic-monotonics" -version = "1.4.0" +version = "2.0.0" dependencies = [ "atomic-polyfill", "cfg-if", "cortex-m", - "embedded-hal 1.0.0-rc.2", + "embedded-hal 1.0.0-rc.3", "fugit", "imxrt-ral", "rtic-time", @@ -453,9 +462,12 @@ dependencies = [ [[package]] name = "rtic-time" -version = "1.1.0" +version = "2.0.0" dependencies = [ "critical-section", + "embedded-hal 1.0.0-rc.3", + "embedded-hal-async", + "fugit", "futures-util", "rtic-common", ] diff --git a/examples/teensy4_blinky/Cargo.toml b/examples/teensy4_blinky/Cargo.toml index a81a155..e050213 100644 --- a/examples/teensy4_blinky/Cargo.toml +++ b/examples/teensy4_blinky/Cargo.toml @@ -14,7 +14,7 @@ features = ["thumbv7-backend"] [dependencies.rtic-monotonics] path = "../../rtic-monotonics" -version = "1.2.1" +version = "2.0.0" features = ["imxrt_gpt1"] [dependencies] diff --git a/examples/teensy4_blinky/examples/with_logs.rs b/examples/teensy4_blinky/examples/with_logs.rs index 82c7154..111e21e 100644 --- a/examples/teensy4_blinky/examples/with_logs.rs +++ b/examples/teensy4_blinky/examples/with_logs.rs @@ -13,9 +13,8 @@ use bsp::logging; use embedded_hal::serial::Write; -use rtic_monotonics::imxrt::Gpt1 as Mono; -use rtic_monotonics::imxrt::*; -use rtic_monotonics::Monotonic; +use rtic_monotonics::imxrt::prelude::*; +imxrt_gpt1_monotonic!(Mono, board::PERCLK_FREQUENCY); #[rtic::app(device = teensy4_bsp, dispatchers = [LPSPI1])] mod app { @@ -61,8 +60,7 @@ mod app { // Initialize Monotonic gpt1.set_clock_source(hal::gpt::ClockSource::PeripheralClock); - let gpt1_mono_token = rtic_monotonics::create_imxrt_gpt1_token!(); - Mono::start(board::PERCLK_FREQUENCY, gpt1.release(), gpt1_mono_token); + Mono::start(gpt1.release()); // Setup LED let led = board::led(&mut gpio2, pins.p13); diff --git a/examples/teensy4_blinky/src/main.rs b/examples/teensy4_blinky/src/main.rs index 443e605..b3b1773 100644 --- a/examples/teensy4_blinky/src/main.rs +++ b/examples/teensy4_blinky/src/main.rs @@ -10,8 +10,8 @@ fn panic(_: &::core::panic::PanicInfo) -> ! { use teensy4_bsp::{board, hal}; -use rtic_monotonics::imxrt::Gpt1 as Mono; -use rtic_monotonics::imxrt::*; +use rtic_monotonics::imxrt::prelude::*; +imxrt_gpt1_monotonic!(Mono, board::PERCLK_FREQUENCY); #[rtic::app(device = teensy4_bsp, dispatchers = [LPSPI1])] mod app { @@ -36,8 +36,7 @@ mod app { // Initialize Monotonic gpt1.set_clock_source(hal::gpt::ClockSource::PeripheralClock); - let gpt1_mono_token = rtic_monotonics::create_imxrt_gpt1_token!(); - Mono::start(board::PERCLK_FREQUENCY, gpt1.release(), gpt1_mono_token); + Mono::start(gpt1.release()); // Setup LED let led = board::led(&mut gpio2, pins.p13); -- cgit v1.2.3