RichardWGNR
aae3f7fb70
Fix rustfmt #4075
2025-04-11 04:31:32 +05:00
RichardWGNR
4d903a713e
Capability to modify CAN frame data without copying. #4075
2025-04-11 04:27:03 +05:00
RichardWGNR
8fb0186f87
Fix #4062
2025-04-11 00:36:00 +05:00
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
Andrii
08ef834301
fix wrong negation of fdcan set_transmit_pause function parameter
2025-01-17 18:05:50 +02:00
Tamme Dittrich
7ac2a4f674
Allow split CAN Rx to modify the filters
2025-01-07 10:11:53 +01:00
elagil
eba8089601
chore: fix build
2025-01-03 18:18:00 +01:00
Dario Nieuwenhuis
f0a2616dd6
Merge pull request #3468 from korken89/fix-can-hang
...
This fixes 2 issues where STM32 BXCAN would hang
2024-10-27 18:19:56 +00: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
Tu Nguyen
8af52488e7
add RTR flag if it is remote frame
2024-10-16 17:45:40 +07:00
Hans Josephsen
e2d2b0f362
Currently the return value of write is broken, it never returns the
...
previous frame even when present.
This happens because a slice of length 64 is always passed to Frame::new
from within the `abort_pending_mailbox` function, causing `Frame::new`
to return None.
The fix is to take a subslice of length `data_length`.
2024-09-22 12:40:46 +02: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
David Flemström
2f750a82bf
Swat some other occurrences of .unwrap() that pull in panicing infra
2024-06-28 22:52:21 +02:00
Jan Špaček
94007ce6e0
stm32/gpio: refactor AfType
2024-06-16 21:11:55 +02:00
Corey Schuhen
900b104860
Remove generic argument from CanBuilder.
2024-06-02 21:47:14 +10: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
Dario Nieuwenhuis
c46172acac
stm32: remove pointer-to-pointer-to-registers.
...
in chiptool pacs the register block struct is already a pointer, so
using pointers to it is redundant.
2024-05-30 13:07:18 +02:00
Dario Nieuwenhuis
e9cb9badf7
Merge pull request #3012 from cschuhen/feature/fdcan_no_generics
...
Remove generic argument for STM32 FDCAN.
2024-05-30 10:42:53 +00:00
Corey Schuhen
35feb1bf23
Remove generic argument for STM32 FDCAN.
2024-05-29 20:07:17 +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
Dario Nieuwenhuis
fb67fe0a6c
stm32: add support for STM32H7[RS] "bootflash line", add HIL tests.
2024-05-01 02:24:45 +02:00
Dario Nieuwenhuis
1de44e7086
Merge pull request #2840 from MaxiluxSystems/feature/fdcan-runtime-cfg
...
stm32: can: fd: Properties for common runtime get/set operations
2024-04-23 13:46:09 +00:00
Torin Cooper-Bennun
e15fd5895f
stm32: can: fd: Properties: simplify reg accesses
2024-04-23 12:46:42 +01:00
Torin Cooper-Bennun
521c132e34
stm32: can: fd: introduce BusErrorMode with docs and Properties getter
2024-04-23 12:34:17 +01:00
Torin Cooper-Bennun
6ca7e0feab
stm32: can: fd: fix a couple doc comments
2024-04-23 12:34:02 +01: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
Torin Cooper-Bennun
263071d016
stm32: can: fd: Properties: rm &mut refs; make !Sync; rename getters
2024-04-22 13:14:32 +01:00
Torin Cooper-Bennun
7f55a28a50
stm32: can: fd: Properties for common runtime get/set operations
2024-04-22 13:14:32 +01: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
Torin Cooper-Bennun
80b3db4ea6
stm32: can: fd: implement bus-off recovery
...
as per RM0492 and other relevant RMs, bus-off recovery is not automatic.
CCCR.INIT is set by the device upon bus-off; the CPU must reset
CCCR.INIT to initiate the recovery.
2024-04-17 14:58:08 +01:00
Torin Cooper-Bennun
901bdfc7b8
stm32: can: fd: on_interrupt: simplify, rm redundant code
...
PED, PEA are never enabled in the interrupt enable code in
peripheral.rs; no need to process the flags here
2024-04-17 14:57:58 +01: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
Corey Schuhen
25618cd93d
RTR fix.
2024-03-28 09:53:30 +10:00
Corey Schuhen
a9f0c8c3a9
Fixes for no-time.
2024-03-28 09:32:13 +10:00
Corey Schuhen
2217b80278
CAN: Unify API's between BXCAN and FDCAN. Use Envelope for all read methods instead of a tuple sometimes.
2024-03-28 09:32:13 +10:00
Corey Schuhen
f5daa50a7b
BXCAN: Add struct that combines Buffered RX and Buffered TX.
2024-03-28 09:32:13 +10:00
Corey Schuhen
41b7e4a434
BXCAN: Create TxMode in order to support buffered TX.
2024-03-28 09:32:13 +10:00
Corey Schuhen
26c739c2f9
BXCAN: Create RxMode enum and move reader methods into it, laying foundations for different Rx buffering modes.
2024-03-28 09:32:13 +10:00
Corey Schuhen
3bdaad39e8
BXCAN: Register access into new Registers struct.
2024-03-28 09:32:13 +10:00