67 Commits

Author SHA1 Message Date
elagil
eba8089601 chore: fix build 2025-01-03 18:18:00 +01:00
Dániel Buga
ab8ca3f126
Rename ETQD, bump date 2024-12-22 21:00:23 +01:00
Dario Nieuwenhuis
b268b1795f
Merge time-driver and time-queue-driver traits, make HALs own and handle the queue. 2024-12-13 21:20:59 +01:00
Dániel Buga
5a5495aac4
Refactor integrated-timers 2024-12-10 21:31:42 +01:00
Dániel Buga
efee03744e
Only recompute allocated alarms 2024-11-30 14:40:12 +01:00
Dániel Buga
fdb8ee2e8a
RTC: Trigger expired alarms 2024-11-30 14:40:12 +01:00
eZio Pan
f3e674a79c stm32: remove redundant time-driver macro 2024-11-28 15:48:27 +08:00
Dario Nieuwenhuis
aaad8450e9
Use inline const for initializing arrays. (#3567) 2024-11-24 20:58:48 +01:00
Jan Špaček
081afca3f0 stm32/rcc: replace generated enable/disable code with runtime info 2024-05-25 18:44:55 +02:00
Dario Nieuwenhuis
3d7d3e0286 stm32/time-driver: always use CC interrupt.
This avoids cfg's, because it works both for timers that have a a dedicated CC interrupt
line, and timers where all interrupts go to a single interrupt line.
2024-04-05 00:56:21 +02:00
eZio Pan
5dc3738bc2 add missing interrupt for timer 2024-04-05 00:51:20 +02:00
eZio Pan
78b9cb98d4 "separate CC interrupt" is for AdvCh4 only 2024-04-05 00:51:20 +02:00
Dario Nieuwenhuis
2bca875b5f stm32: use private_bounds for sealed traits. 2024-03-23 01:38:51 +01:00
Dario Nieuwenhuis
389cbc0a77 stm32/timer: simplify traits, convert from trait methods to struct. 2024-03-23 01:37:28 +01:00
René van Dorst
92fa49f502 Also fix time_driver.rs 2024-03-20 20:42:03 +01:00
Dario Nieuwenhuis
eca9aac194 Fix warnings in recent nightly. 2024-03-20 16:39:09 +01:00
Torin Cooper-Bennun
5c45723777 stm32: timers: use TIMx_CC interrupt source for advanced timers
fixes (hopefully) time driver when using TIM1/8/20
2024-02-26 10:03:51 +00:00
Torin Cooper-Bennun
86ccf0bc3e stm32: remove TIM11 as time driver candidate (only 1 CC channel) 2024-02-23 14:35:12 +00:00
Torin Cooper-Bennun
a11e3146f8 stm32: time_driver: allow use of TIM1 for driver 2024-02-23 14:35:12 +00:00
eZio Pan
bbe1eebc53 Add missing TIM for time-driver; reorder time-driver selection when use "time-drvier-any". 2024-02-14 17:43:46 +08:00
eZio Pan
dc4898ca89 update timer mod after stm32-metapac timer_v2 2024-02-09 23:58:13 +01:00
shufps
e969b88e5a fixed trailing white spaces 2024-01-15 11:23:41 +01:00
shufps
4e2361c024 adds timer-driver for tim21 and tim22 (on L0) 2024-01-15 08:11:22 +01:00
Dario Nieuwenhuis
15f94fb0fc time: split driver into a separate embassy-time-driver crate. 2024-01-11 16:56:08 +01:00
RobertTDowling
b857334f92 STM32: Fix race in alarm setting, which impacted scheduling.
Detect potential race condition (should be rare) and return false back
to caller, allowing them to handle the possibility that either the
alarm was never set because it was in the past (old meaning of false),
or that in fact the alarm was set and may have fired within the race
window (new meaning of false). In either case, the caller needs to
make sure the callback got called.
2023-12-17 15:35:35 -08:00
Carlos Barrales Ruiz
78f709a362 * Add GP TIM9 and TIM11 to be used as time_driver 2023-12-09 14:14:34 +01:00
James Munns
18e89d7410
Add implementation note for embassy-stm32's time-driver
This is a detail I didn't originally understand when hoping to use TIM16/17 as alternative embassy-time driver providers.

Adding my note here to hopefully save the next person a little time.
2023-12-04 15:57:46 +01:00
Ben Gamari
aa97fe7cbd stm32: Add some documentation to low_power
This begins to explain the operation of the low-power executor.
2023-10-30 14:36:08 -04:00
Dario Nieuwenhuis
97ca0e77bf stm32: avoid creating many tiny critical sections in init.
Saves 292 bytes on stm32f0 bilnky with max optimizations (from 3132 to 2840).
2023-10-12 16:20:34 +02:00
pbert
ecdd7c0e2f enable clock first 2023-10-12 11:04:44 +02:00
pbert
f65a96c541 STM32: combine RccPeripherals reset() and enable() to reset_and_enable() 2023-10-12 11:04:19 +02:00
Dario Nieuwenhuis
70a91945fc stm32: remove atomic-polyfill. 2023-10-12 02:07:26 +02:00
xoviat
e042b3056d stm32: fix stop 2023-10-02 18:11:03 -05:00
xoviat
7cf327130e stm32/low-power: create one critical-section for all time ops 2023-09-21 19:32:48 -05:00
xoviat
6da75ea285 stm32: rtc/low-power cleanup 2023-09-15 18:41:33 -05:00
xoviat
1e430f7413 stm32: complete stop impl. 2023-08-26 20:31:12 -05:00
xoviat
2897670f24 stm32: get the basic lp working 2023-08-26 19:23:25 -05:00
xoviat
cda4047310 stm32: flesh out lp executor 2023-08-24 19:29:11 -05:00
Dario Nieuwenhuis
558918651e stm32: update stm32-metapac. 2023-06-19 03:22:12 +02:00
Dario Nieuwenhuis
8c93805ab5 Add rt feature to HALs, cfg out interrupt handling when not set. 2023-06-08 18:57:03 +02:00
Dario Nieuwenhuis
921780e6bf Make interrupt module more standard.
- Move typelevel interrupts to a special-purpose mod: `embassy_xx::interrupt::typelevel`.
- Reexport the PAC interrupt enum in `embassy_xx::interrupt`.

This has a few advantages:
- The `embassy_xx::interrupt` module is now more "standard".
  - It works with `cortex-m` functions for manipulating interrupts, for example.
  - It works with RTIC.
- the interrupt enum allows holding value that can be "any interrupt at runtime", this can't be done with typelevel irqs.
- When "const-generics on enums" is stable, we can remove the typelevel interrupts without disruptive changes to `embassy_xx::interrupt`.
2023-06-08 18:00:48 +02:00
Dario Nieuwenhuis
404aa29289 cortex-m: remove owned interrupts. 2023-06-01 03:25:19 +02:00
xoviat
316be179af stm32: move to bind_interrupts
disable lora functionality for now
2023-05-24 17:29:56 -05:00
Dirk Stolle
0584312ef0 Fix some typos 2023-05-08 23:25:01 +02:00
ivmarkov
e3cf4255c6 Help compiler with type inference 2022-10-24 11:31:54 +03:00
ivmarkov
f78c706b89 Address review feedback 2022-10-24 11:10:59 +03:00
ivmarkov
4d5550070f Change time Driver contract to never fire the alarm synchronously 2022-10-24 09:17:43 +03:00
Dario Nieuwenhuis
5327b9c289 time: add more tick rates, use 1mhz as default. 2022-09-02 00:59:34 +02:00
Dario Nieuwenhuis
21072bee48 split embassy-util into embassy-futures, embassy-sync. 2022-08-22 22:18:13 +02:00
Dario Nieuwenhuis
5daa173ce4 Split embassy-time from embassy-executor. 2022-08-18 01:22:30 +02:00