Commit graph

144 commits

Author SHA1 Message Date
Peter Hartley
25683d610a Fix new cargo fmt issues 2024-04-15 12:10:46 +01:00
Peter Hartley
fd6d254d52 Add CHANGELOG entry and fix review comments 2024-04-15 12:10:12 +01:00
Peter Hartley
d34ef053fd Allow interrupt-driven MACRAW operation
This commit adds methods to RawDevice that enable interrupt-driven
operation. The enable_interrupt() method sets up SIMR so that
socket-level (internal) interrupts on Socket 0 cause chip-level
(external) interrupts (and as a convenience also sets S0_IR as
required). The disable_interrupt() method reverses those changes.
The clear_interrupt() method acknowledges all interrupts and is
intended to be called from the interrupt handler (or from thread mode
soon afterwards).

There is no change to existing functionality or operation if
enable_interrupt() is never called.

I did see PR#34 before filing this, but that change is focused on
TCP and UDP sockets, and my use case is MACRAW mode.

Tested on a W5500-Pico-EVB board with the RP2040 successfully receiving
and acting on active-low GPIO interrupts from W5500 via the INTn signal
on W5500 pin 36.
2024-04-15 10:47:53 +01:00
Lachezar Lechev
84757c552e
Merge branch 'master' into fix/udp 2023-07-27 12:11:21 +03:00
Ryan Summers
42791c27e5
Merge pull request #54 from LechevSpace/feat/retry-time-and-count
Feat: Retry time and count
2023-07-25 17:25:04 +02:00
Ryan Summers
3da66e6eb1
Merge pull request #55 from LechevSpace/chore/socket-and-other-docs
Chore: Improve API and add docs
2023-07-25 17:09:57 +02:00
Lachezar Lechev
02063d1c75
chore: PR review comments
Signed-off-by: Lachezar Lechev <elpiel93@gmail.com>
2023-07-25 16:16:33 +03:00
Lachezar Lechev
a606fb0980
chore: PR review comments
Signed-off-by: Lachezar Lechev <elpiel93@gmail.com>
2023-07-25 16:04:06 +03:00
Lachezar Lechev
eeeb0a24bb
chore: Update changelog
Signed-off-by: Lachezar Lechev <elpiel93@gmail.com>
2023-07-22 10:39:33 +03:00
Lachezar Lechev
98715d5247
fix: udp implementation and add more methods
Signed-off-by: Lachezar Lechev <elpiel93@gmail.com>
2023-07-22 10:31:01 +03:00
Lachezar Lechev
545debf0e3
chore: simplify
Signed-off-by: Lachezar Lechev <elpiel93@gmail.com>
2023-07-13 12:10:46 +03:00
Lachezar Lechev
29f531387d
chore: Bus move default impls to device & uninit device
Signed-off-by: Lachezar Lechev <elpiel93@gmail.com>
2023-07-13 11:40:09 +03:00
Lachezar Lechev
1788e43333
feat: define crate as no_std only when not doing tests
Signed-off-by: Lachezar Lechev <elpiel93@gmail.com>
2023-07-12 18:19:27 +03:00
Lachezar Lechev
ed49f20ead
chore: test FourWire with embedded-hal-mock:
- Add dev-dependencies for embedded-hal-mock
- add docs for FourWire
- add tests for SPI frames transactions

Signed-off-by: Lachezar Lechev <elpiel93@gmail.com>
2023-07-12 17:57:28 +03:00
Lachezar Lechev
f1c6a7a97b
docs: document registers socketn
Signed-off-by: Lachezar Lechev <elpiel93@gmail.com>
2023-07-12 17:51:49 +03:00
Lachezar Lechev
c6e5c58845
feat: get device state and more derives
Signed-off-by: Lachezar Lechev <elpiel93@gmail.com>
2023-07-12 17:50:34 +03:00
Lachezar Lechev
43fda7bab1
fix: device import & rustfmt
Signed-off-by: Lachezar Lechev <elpiel93@gmail.com>
2023-07-12 17:44:01 +03:00
Lachezar Lechev
dbb9189b7f
chore: uninit. device - call Bus version method
Signed-off-by: Lachezar Lechev <elpiel93@gmail.com>
2023-07-12 17:42:09 +03:00
Lachezar Lechev
6ff773d5ed
docs: document initialize_manual default gateway
Signed-off-by: Lachezar Lechev <elpiel93@gmail.com>
2023-07-12 17:40:47 +03:00
Lachezar Lechev
2735e6a6ee
chore: socket docs
Signed-off-by: Lachezar Lechev <elpiel93@gmail.com>
2023-07-12 17:36:05 +03:00
Lachezar Lechev
501efeafbc
Merge branch 'master' into feat/retry-time-and-count 2023-07-12 17:32:30 +03:00
Lachezar Lechev
a8214b83ec
feat: device - RetryCount & RetryTime
Signed-off-by: Lachezar Lechev <elpiel93@gmail.com>
2023-07-12 17:27:42 +03:00
Lachezar Lechev
1450ba0190
feat: uninit. device - RetryCount & RetryTime
Signed-off-by: Lachezar Lechev <elpiel93@gmail.com>
2023-07-12 17:26:48 +03:00
Lachezar Lechev
2166c39ac4
feat: Bus - add default impls for common registers
Signed-off-by: Lachezar Lechev <elpiel93@gmail.com>
2023-07-12 17:26:42 +03:00
Lachezar Lechev
a858bd815a
feat: Mode to register value and common mode impls
- make crate no_std when not running tests

Signed-off-by: Lachezar Lechev <elpiel93@gmail.com>
2023-07-12 17:20:27 +03:00
Lachezar Lechev
30b61de2eb
feat: common regs - Mode, RetryCount, RetryTime
Signed-off-by: Lachezar Lechev <elpiel93@gmail.com>
2023-07-12 17:20:00 +03:00
Felix Lelchuk
1eb9b25c7e Fix cursor: wrapping_add for ptr, immutable sock 2023-06-23 13:59:54 +02:00
Felix Lelchuk
1f6a8a290c Allow truncated RawDevice::read_frame()
- `RawDevice::read_frame()` succeeds with a receive buffer smaller than the frame.
- Introduce `RxCursor` and `TxCursor` to track/update RX/TX buffer pointers making
  it easier to reason about functions such as `read_frame` / `write_frame`.
2023-06-22 11:21:20 +02:00
Ryan Summers
f1504d284d Fixing format 2023-03-31 13:48:49 +02:00
Ryan Summers
f3b4fa12b3 Fixing crate docs 2023-03-31 13:46:30 +02:00
Ryan Summers
953ed3c7b1 Readding reference docs 2023-03-31 13:45:42 +02:00
Ryan Summers
20981a7963 Fixing clippy lint 2023-03-30 18:02:46 +02:00
Ryan Summers
0d47ea0982 Renaming trait function names, cleaning up docs 2023-03-30 12:54:08 +02:00
Lachezar Lechev
a0c8a42d64
fix: export only InitializeError from the module
Signed-off-by: Lachezar Lechev <elpiel93@gmail.com>
2023-03-06 14:53:48 +02:00
Lachezar Lechev
c3f79c96ed
feat: derive defmt::Format for more structs and errors
Signed-off-by: Lachezar Lechev <elpiel93@gmail.com>
2023-03-06 12:54:55 +02:00
Lachezar Lechev
1b2ba0bfab
feat: export uninitialized_device & add docs
Signed-off-by: Lachezar Lechev <elpiel93@gmail.com>
2023-02-17 17:51:20 +02:00
Lachezar Lechev
f2ac8521b1
feat: defmt + derive for some UDP types
Signed-off-by: Lachezar Lechev <elpiel93@gmail.com>
2023-02-10 14:51:55 +02:00
Lachezar Lechev
747fe0cca4
feat: export Host
Signed-off-by: Lachezar Lechev <elpiel93@gmail.com>
2023-02-10 14:50:08 +02:00
Ryan Summers
9196d005d5 Fixing comment 2022-04-28 11:47:07 +02:00
Ryan Summers
4afe9f6724 Updating docs 2022-04-28 11:47:07 +02:00
Ryan Summers
30293b65a5 Finalizing updates to MACRAW support after testing 2022-04-28 11:47:07 +02:00
Ryan Summers
c25cbe6fdb Adding macraw support 2022-04-28 11:47:07 +02:00
Wouter Geraedts
259550e3b6 Fix indexing for phy configuration register 2022-04-28 11:32:35 +02:00
Ryan Summers
9327809fe7
Add TCP-based NAL implementation (#24)
* Adding TCP-based NAL implementation

* Updating NAL dependency

* Updating connect to handle network errors

* Adding support for getting IP and MAC, allowing transparent access to the W5500 in the interface.

* Fixing TCP connect when not in INIT

* Adding wait after reset

* Reverting changes

* More delta reductions

* Fixing format

* Updating changelog

* Fixing docs

* Updating NAL version

* Adding debug derive

* fixing TCP write

* Updating RX receive size to allow less than 8 bytes

* Fixing clippy lints
2022-01-23 13:30:08 +01:00
Michael Watzko
2f4603d0bc Make clippy happy :) 2021-07-24 18:00:37 +02:00
Michael Watzko
96c6edfd81 Take ownership of Spi in activate_ref 2021-04-16 01:30:11 +02:00
Michael Watzko
3489574603 Recent only relevant socket interrupt flags to not loose in-flight data 2021-04-16 01:24:51 +02:00
Michael Watzko
d58ab215b1 Add DeviceRefMut that allows device operation without moving ownership 2021-04-08 01:20:18 +02:00
Michael Watzko
ee415c63f0 Ensure that every udp socket can connect at the same time 2021-04-08 00:24:10 +02:00
Michael Watzko
6c6681d579 Ensure that the chip-select pin is high at the end of a frame transaction 2021-04-06 19:27:17 +02:00