21 Commits

Author SHA1 Message Date
Dario Nieuwenhuis
d41eeeae79 Remove Peripheral trait, rename PeripheralRef->Peri. 2025-03-27 15:18:06 +01:00
Corey Schuhen
424d20727e Reference count senders and receivers so that we don't close down early. 2025-03-09 17:03:28 +10:00
Tamme Dittrich
7ac2a4f674 Allow split CAN Rx to modify the filters 2025-01-07 10:11:53 +01:00
Emil Fresk
917f1d1f4d This fixes 2 issues where STM32 BXCAN would hang
1. If one received frames under an `interrupt_free` section, in my case
   `init` in RTIC, the RX IRQ will fire and clear it's enable bit after
   `interrupt_free` is complete. There is no frame to read so RX is now
   unconditionally disabled forever.
2. On clearing of RX IRQ, TX stops silently. This happens due to the use
   of `write` instead of `modify` when modifying IRQ enable bits.

Solution 1: Enable RX IRQs on every call to `try_read` that return no
data. This solution also solves the issue of very delayed handling of
the RX IRQ which would cause the same issue.

Solution 2: Use `modify` instead of `write`.
2024-10-27 10:10:46 +01:00
Emil Fresk
41e162541a stm32: Fix log storm when no CAN is connected
Running the bxcan driver without having it connected
to a CAN bus causes the `info` logs to bombard.
This removes the logging statements as they looked
like remnants from the development of the driver.
2024-08-25 07:14:19 +02:00
Jan Špaček
94007ce6e0 stm32/gpio: refactor AfType 2024-06-16 21:11:55 +02:00
Corey Schuhen
367a22cc0e Remove more BXCAN generics. 2024-06-02 20:11:56 +10:00
Jan Špaček
368893c9cb Emit cargo:rustc-check-cfg instructions from build.rs 2024-05-30 18:28:29 +02:00
Dario Nieuwenhuis
b378ec4558
Merge pull request #3020 from cschuhen/feature/bxcan_no_generics
Remove generics for BXCAN.
2024-05-30 12:16:17 +00:00
Corey Schuhen
b4a2f7fb70 Use phantom for lifetime holder instead of not used pointer to pointer. 2024-05-30 22:10:46 +10:00
Dario Nieuwenhuis
39c5a6c3f7
Merge pull request #3002 from honzasp/rcc-info
stm32/rcc: replace generated enable/disable code with runtime info
2024-05-30 11:50:40 +00:00
Corey Schuhen
245c895d09 Remove generics for BXCAN. 2024-05-30 21:39:11 +10:00
Maarten de Vries
807e573994 embassy_stm32: allow scheduling lower priority frames in bxcan driver 2024-05-27 16:10:08 +02:00
Maarten de Vries
854ae5da8f embassy_stm32: implement optional FIFO scheduling for outgoing frames 2024-05-27 16:10:08 +02:00
Jan Špaček
081afca3f0 stm32/rcc: replace generated enable/disable code with runtime info 2024-05-25 18:44:55 +02:00
Eric Yanush
5c56aff9c2 rustfmt fixes 2024-04-22 14:05:28 -06:00
Eric Yanush
e65503e255 Add sleep/wakeup handling for bxCAN peripherals 2024-04-22 14:04:39 -06:00
Eric Yanush
3e00c1ac52 rustfmt whitespace fixes 2024-04-22 14:01:48 -06:00
Eric Yanush
68a4fd8f4a Enable LEC interrupt as well 2024-04-22 01:52:10 -06:00
Eric Yanush
6e1290b3f1 Ensure bus errors are forwarded only once, enable bus off/passive/warning interrupts 2024-04-22 01:46:24 -06:00
Dario Nieuwenhuis
c8936edb6c stm32/can: simplify bxcan api, merging bx::* into the main structs.
The bx::* separate structs (Can, Rx, Tx) and separate `Instance` trait
are a relic from the `bxcan` crate. Remove them, move the functionality
into the main structs.
2024-04-02 11:08:03 +02:00