Commit graph

121 commits

Author SHA1 Message Date
Ian McIntyre
299382c86c Support external SYST clock source
Give users the option to configure SYST with an external clock source.
By default, the clock source is the core, which keeps us backwards
compatible.

`_start` has a new input, but since users don't call that function
directly, it doesn't seem like a problem to break that public API.
2025-11-11 07:57:47 +00:00
datdenkikniet
09cdb20f86 Use is_multiple_of 2025-10-20 05:50:42 +00:00
dependabot[bot]
4a72eddc8f chore(deps): update riscv requirement from 0.14.0 to 0.15.0
Updates the requirements on [riscv](https://github.com/rust-embedded/riscv) to permit the latest version.
- [Release notes](https://github.com/rust-embedded/riscv/releases)
- [Commits](https://github.com/rust-embedded/riscv/compare/v0.14.0...riscv-v0.15.0)

---
updated-dependencies:
- dependency-name: riscv
  dependency-version: 0.15.0
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-09-17 19:48:59 +00:00
Paul Bender
e8c260a745 Update esp32c{3,6} support to esp-hal-1.0.0-rc.0. 2025-09-17 18:57:09 +00:00
Anton Lazarev
b4a0c9057d panic if STM32 clock prescaler value overflows 2025-06-30 20:15:31 +00:00
Anton Lazarev
1104a12ca3 address clippy::uninlined_format_args 2025-06-30 19:09:23 +00:00
Emil Fresk
42ebfe57f1 Release all crates 2025-06-22 09:34:16 +00:00
dependabot[bot]
6a499eade0 chore(deps): update esp32c6 requirement from 0.19.0 to 0.20.0
---
updated-dependencies:
- dependency-name: esp32c6
  dependency-version: 0.20.0
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-06-18 20:29:27 +00:00
dependabot[bot]
dadce95929 chore(deps): update riscv requirement from 0.13.0 to 0.14.0
Updates the requirements on [riscv](https://github.com/rust-embedded/riscv) to permit the latest version.
- [Release notes](https://github.com/rust-embedded/riscv/releases)
- [Commits](https://github.com/rust-embedded/riscv/compare/v0.13.0...v0.14.0)

---
updated-dependencies:
- dependency-name: riscv
  dependency-version: 0.14.0
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-06-18 20:08:50 +00:00
dependabot[bot]
38af386d10 chore(deps): update esp32c3 requirement from 0.28.0 to 0.29.0
---
updated-dependencies:
- dependency-name: esp32c3
  dependency-version: 0.29.0
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-06-18 19:54:34 +00:00
dependabot[bot]
2c7dec32e4 Update imxrt-ral requirement from 0.5.3 to 0.6.1
Updates the requirements on [imxrt-ral](https://github.com/imxrt-rs/imxrt-ral) to permit the latest version.
- [Release notes](https://github.com/imxrt-rs/imxrt-ral/releases)
- [Changelog](https://github.com/imxrt-rs/imxrt-ral/blob/master/CHANGELOG.md)
- [Commits](https://github.com/imxrt-rs/imxrt-ral/compare/0.5.3...0.6.1)

---
updated-dependencies:
- dependency-name: imxrt-ral
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-06-15 20:27:25 +00:00
Jonathan 'theJPster' Pallant
f9d7b2c655 Add all the timers to the list in lib.rs. 2025-06-15 12:52:16 +00:00
Jonathan 'theJPster' Pallant
6a45bdefba Add details for all the other monotonic implementations. 2025-06-15 12:52:16 +00:00
Jonathan 'theJPster' Pallant
f4b0c20f82 More details about the arguments for the systick API. 2025-06-15 12:52:16 +00:00
Jonathan 'theJPster' Pallant
fa0d9be6f1 Improved example and comments for the systick! macro. 2025-06-15 10:43:43 +00:00
Henrik Tjäder
3f48ad7e87 docs: Monotonics: Highlight rtic-time is used 2025-06-15 09:58:44 +00:00
Henrik Tjäder
646ec91e0c docs: Monotonics crates: Fix old copy-paste 2025-06-15 09:58:44 +00:00
Eli Hastings
90f475316f Bump ESP versions 2025-04-07 21:11:21 +00:00
Eli Hastings
9305963752 Use PLIC_MX instead of INTPRI to set interrupt priorities
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-07 21:11:21 +00:00
Eli Hastings
ef09e4b65f Port ESP32-C3 changes to ESP32-C6 branch 2025-04-07 21:11:21 +00:00
Wouter Geraedts
35cb5570bd Added CHANGELOG entry 2025-04-07 21:11:21 +00:00
datdenkikniet
5a8ff70f85 Placate clippy 2025-04-03 20:43:04 +02:00
Ronald Weber
9a36db8026 Update esp32c3 to 0.28.0 2025-03-26 22:04:29 +00:00
datdenkikniet
11699b4391 rtic: placate clippy for esp32c3 2025-03-23 09:57:48 +00:00
Ronald Weber
587f183842
Update esp32-c3 and esp-hal crates (#1019)
* Bump esp32-c3 to 0.27.0

* Update esp-hal to 0.23.1

* Add Changelog entry
2025-02-09 20:51:19 +00:00
Dan Whitman
0935051d8b
ATSAMD RTC monotonic referral in documentation (#1014)
* 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-24 20:08:52 +00:00
Henrik Tjäder
26b1ab05eb
monotonics add readme (#1012)
* rtic-monotonics: Add README

* rtic-monotonics: Add links to changelog
2025-01-22 19:41:42 +00:00
Henrik Tjäder
1a8b5f27a0
rtic-monotonics: rp2040 extra parenthesis (#1010) 2025-01-15 20:02:56 +00:00
MikeGstefan
ed026cc4a3
bump esp32c3 (#997)
* bump esp32-c3

* update changelog and example

* rtic-monotonics: update esp32c3 to v0.26

---------

Co-authored-by: Henrik Tjäder <henrik@tjaders.com>
2024-11-27 18:59:55 +00:00
Emil Fresk
d251ba7173 Release rtic-monotonics 2.0.3 2024-10-24 07:46:30 +02:00
Finomnis
3dfef74a4c
[monotonics] Fix STM32 read-modify-write race condition (#984)
* 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-23 19:28:42 +00:00
Emil Fresk
0f532c6b48 rtic-monotonics: Improve docs on interrupt priority 2024-10-23 20:57:42 +02:00
dependabot[bot]
00baf53180
Update riscv requirement from 0.11.0 to 0.12.1 (#982)
---
updated-dependencies:
- dependency-name: riscv
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-10-23 18:15:06 +00:00
Jesse Braham
1f6b6a42e5
Update support/example for ESP32-C3 to use latest versions of dependencies (#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-10-16 19:29:51 +00:00
onsdagens
805ea267a8
Add SYSTIMER based ESP32-C3 monotonic (#972)
* add esp32c3 monotonic

* fix tests
2024-09-29 04:21:14 +00:00
Michael Zill
6e68a5e615
Feature/rp235x (#970)
* 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-29 04:19:37 +00:00
Robin Mueller
056616c772
Fix for system_monotonic macro with 1 argument (#978) 2024-09-18 13:15:17 +00:00
Robin Mueller
d81c3758d5
update docs (#977)
Add notice for systems without native CAS operations
2024-09-18 13:14:28 +00:00
Emil Fresk
3e65a83110 Fix CI with 1.80 2024-08-07 21:09:58 +02:00
Emil Fresk
f925cbe506 Release rtic-monotonics v2.0.2 2024-07-06 12:55:29 +02:00
Finomnis
5cafe9dd0b
Fix STM32 Monotonic for peripherals with only two Clock Compare modules (#960)
* 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-07-05 16:19:51 +00:00
Henrik Tjäder
918f9c3f13
Breaking change: portable-atomic (#922)
* 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-23 06:45:49 +00:00
Emil Fresk
689c4a068e Make rtic-monotonic macros create a public type 2024-06-02 12:34:43 +02:00
Emil Fresk
d06c6eeed7
Cleanup CHANGELOGs for monotonics/time v2 release (#945) 2024-05-29 19:07:43 +00:00
Foo
6865b69616
add support for nrf52805 (#941) 2024-05-27 11:26:09 +00:00
Martins Polakovs
5d05d607ee
Bump rp2040-pac to 0.6 in rtic-monotonics (#905)
* Support rp2040-pac v0.6 in rtic-monotonics

* Add changelog entry

* Fix rp2040_local_i2c_init example
2024-04-21 10:46:29 +00:00
Finomnis
8c23e178f3
Monotonic rewrite (#874)
* 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>
2024-04-10 22:00:38 +00:00
Román Cárdenas Rodríguez
4060c3def8
RISC-V support over CLINT (#815)
* 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>
2024-03-20 20:06:47 +00:00
Emil Fresk
2798500957 Make RTIC 2 work on stable by using main's stack as an allocator 2024-02-27 12:22:18 +01:00
Emil Fresk
8b2465ba37 Fix nightly compiler CI failure 2024-02-23 08:37:35 +01:00