Caleb Jamison
7bdb3abad7
Swap debug! for trace! in rp gpio
...
When using gpio pin changes for things like peripheral interrupts these
debug! calls flood defmt, making it difficult to find what you're
actually looking for.
2023-03-02 13:59:52 -05:00
Lachezar Lechev
5cb0c8cc01
fix: rp - disable Pull-down/up resistors for ADC read
...
Signed-off-by: Lachezar Lechev <elpiel93@gmail.com>
2023-02-28 09:22:38 +02:00
Andres Hurtado Lopez
2331d58aa6
RP-PICO UART adding set_baudrate: missing to run rust-fmt
2023-02-26 21:23:51 -05:00
Andres Hurtado Lopez
482ba835c4
RP-PICO UART adding set_baudrate: Changing static call from specific type to a Self (requires adding lifetime specifier)
2023-02-26 19:20:08 -05:00
Andres Hurtado Lopez
7172dfd083
RP-PICO UART adding set_baudrate: refactoring of methods
2023-02-26 19:14:25 -05:00
Andres Hurtado Lopez
8fb380b180
RP-PICO UART adding set_baudrate
2023-02-26 18:40:23 -05:00
Grant Miller
7be4337de9
Add #[must_use]
to all futures
2023-02-24 13:01:41 -06:00
sekoia
e641db1f75
Fix a typo in "PioPeripheral"
2023-02-15 14:10:07 +01:00
Slushee
dfc58ad3a2
Add copy to Level enum in embassy-rp gpio module
2023-02-13 17:29:35 +00:00
Slushee
1626a4a74b
Add clone to embassy_rp::gpio::Level
2023-02-13 17:12:50 +00:00
Dario Nieuwenhuis
ca10fe7135
usb: docs
2023-01-31 22:27:19 +01:00
nitroxis
1e60c60afd
rp: allow isochronous USB endpoints to be up to 1023 in size
2023-01-27 07:24:49 +01:00
Matt Johnston
83af513424
rp gpio: make pin_bank() inline
...
This allows set_high() etc to be inlined, toggling pins
should be much faster.
2023-01-19 13:36:40 +08:00
bors[bot]
b6c8505697
Merge #1142
...
1142: More rp2040 BufferedUart fixes r=Dirbaio a=timokroeger
* Refactor init code
* Make it possible to drop RX without breaking TX (or vice versa)
* Correctly handle RX buffer full scenario
Co-authored-by: Timo Kröger <timokroeger93@gmail.com>
2023-01-14 00:07:02 +00:00
chemicstry
ce842fe28c
Refactor embassy-usb address handling to allow reordering of status resoponse
2023-01-11 17:47:12 +01:00
Timo Kröger
539f97da53
rp: Fix formatting string to please CI
2023-01-05 22:00:44 +01:00
Timo Kröger
1096a9746c
rp: Improve BufferedUart interrupt handling
...
* Only clear interrupt flags that have fired (so that we do not lose any error flags)
* Enable RX interrupt when a read is requested, disable it when the RX buffer is full
* Rework TX interrupt handling: its "edge" triggered by a FIFO threshold
2023-01-05 18:45:58 +01:00
Pedro Ferreira
6d4c6e0481
rp2040: add {tx,rx}-only constructors to UART
2023-01-04 21:11:19 +01:00
Timo Kröger
840a75674b
rp: Disable RX interrupts when ring buffer is full
...
When data is in the RX fifo the RX timeout interrupt goes high again even after clearing it.
The result is a deadlock because execution is stuck in the interrupt handler. No other code
can run to clear the receive buffer.
Enable and disable RX interrupts based on the buffer fill level.
Use the same approach for the TX code path.
2023-01-04 16:53:43 +01:00
Timo Kröger
a24037edf9
rp: Fix BufferedUart drop code
...
Only unregister the interrupt handler when both parts are inactive
2023-01-04 15:59:03 +01:00
Timo Kröger
68c186309f
rp: Common init function for BufferedUart
...
BufferedUart, BufferedUartRx and BufferedUartTX can all use the same init code.
2023-01-04 15:58:26 +01:00
Timo Kröger
e4f457646f
rp: Fill and empty FIFOs in buffered uart interrupt
...
Fixes an issue where only the first byte was transmitted.
Should improve throughput aswell.
2022-12-27 11:28:52 +01:00
Dario Nieuwenhuis
41d6316984
rp: switch to released 0.2.1 pio crate.
2022-12-26 22:30:22 +01:00
bors[bot]
c29657f95a
Merge #1128
...
1128: Add missing SPI pins r=Dirbaio a=pferreir
The SPI definitions lack the pins which are not accessible on the pico (but are so e.g. on the stamp).
Co-authored-by: Pedro Ferreira <pedro@dete.st>
2022-12-25 23:52:33 +00:00
Pedro Ferreira
f2fb9a2ca6
Add missing SPI pins
2022-12-25 23:49:04 +00:00
kalkyl
e090ab1915
Remove lifetime, use pac fields
2022-12-24 03:22:51 +01:00
kalkyl
eaad0cc1dc
embassy-rp: Add Watchdog
2022-12-24 02:51:06 +01:00
bors[bot]
67a6e5accf
Merge #1122
...
1122: embassy-rp: Add split() to BufferedUart r=kalkyl a=kalkyl
Co-authored-by: kalkyl <henrik.alser@me.com>
2022-12-23 22:16:58 +00:00
Dario Nieuwenhuis
10c9cc31b1
Remove unnecessary use of atomic-polyfill.
...
Only use it when CAS is actually needed.
2022-12-23 20:46:49 +01:00
kalkyl
aa92ce6dc7
embassy-rp: Add split() to BufferedUart
2022-12-22 23:03:05 +01:00
kalkyl
c4d8f3579e
Update usage in docs
2022-12-13 14:15:04 +01:00
kalkyl
731eb3c6e3
fmt
2022-12-13 13:55:23 +01:00
Henrik Alsér
3d68c0400b
Merge branch 'master' into multicore
2022-12-13 13:51:48 +01:00
kalkyl
13d9d8fde1
Refactor after review
2022-12-13 13:49:51 +01:00
kalkyl
aea28c8aa0
Add usage in to docs
2022-12-13 09:45:11 +01:00
kalkyl
eb1d2e1295
Pause CORE1 execution during flash operations
2022-12-13 04:02:28 +01:00
kalkyl
96d6c7243b
Cleanup
2022-12-10 13:43:29 +01:00
kalkyl
d8821cfd41
Feature gate critical-section-impl
2022-12-10 12:57:45 +01:00
kalkyl
1ee58492fb
embassy-rp: Add multicore support
2022-12-10 08:26:35 +01:00
Simon Berg
488e322478
Clear unused pulls in set_pull.
2022-12-09 20:30:17 +01:00
Simon Berg
cd59046e6c
Added RelocateProgram class for adjusting PIO-programs for different origins.
2022-12-09 20:18:41 +01:00
Simon Berg
35db6e639b
PIO support for RPi Pico
2022-12-09 20:18:41 +01:00
Dario Nieuwenhuis
7cbc3aefe6
rp: implement input for OutputOpenDrain
2022-12-06 19:54:39 +01:00
Ulf Lilleengen
bb89a2341c
feat: embassy-boot for rp2040
...
Add embassy-boot support for RP2040, with examples for the Raspberry Pi
Pico.
Co-authored-by: Mathias Koch <mk@blackbird.online>
2022-12-02 11:28:33 +01:00
Gabriel Smith
71df28e269
rp: Add an RngCore impl based on ROSC.RANDOMBIT
...
This has the potential to not be random, but it should not be an issue
if default clock settings are used.
2022-11-30 14:06:05 -05:00
Gabriel Smith
4d84b5469e
Drive-by documentation link fixes
2022-11-27 16:32:18 -05:00
Gabriel Smith
3ca14ba4e9
usb-driver: Remove unncessary lifetime
2022-11-27 16:28:24 -05:00
Dario Nieuwenhuis
7b838d0336
rp/uart: use lockfree ringbuffer.
...
This gets rid of another PeripheralMutex usage.
2022-11-25 22:30:47 +01:00
Dario Nieuwenhuis
1e2fb0459d
Switch to async-fn-in-trait
2022-11-25 21:02:06 +01:00
Henrik Alsér
908eef2775
Change interrupt modify into write
2022-11-22 02:03:34 +01:00
Henrik Alsér
9f870a5edf
Cleanup
2022-11-15 16:31:19 +01:00
Henrik Alsér
eb149a0bd4
embassy-rp: Add basic ADC module
2022-11-15 16:12:07 +01:00
Mathias
c871fe0848
Rebase on master
2022-10-27 07:12:34 +02:00
Mathias
3c6c382465
Remove random delay from example, and move flash functions to allow using without embedded-storage in scope
2022-10-27 07:10:35 +02:00
bors[bot]
e5097a8866
Merge #959
...
959: Generic, executor-agnostic queue implementation r=ivmarkov a=ivmarkov
Hopefully relatively well documented.
Implementation relies on a fixed-size `SortedLinkedList` from `heapless`. (By default, for up to 128 timer schedules, but we can lower this number to - say - 64.)
As discussed earlier, on queue overflow, the `WakerRegistration` approach is utilized, whereas the waker that is ordered first in the queue is awoken to make room for the incoming one (which might be the waker that would be awoken after all!). Wakers are compared with `Waker::will_wake`, so the queue should actually not fill up that easily, if at all.
I've left provisions for the user to manually instantiate the queue using a dedicated macro - `generic_queue!` so that users willing to adjust the queue size, or users (like me) who have to use the queue in a complex "on-top-of-RTOS-but-the-timer-driver-calling-back-from-ISR" scenario can customize the mutex that protects the queue.
The one thing I'm not completely happy with is the need to call `{ embassy_time::queue::initialize() }` early on before any futures using embassy-time are polled, which is currently on the shoulders of the user. I'm open to any ideas where we can get rid of this and do it on the first call to `_embassy_time_schedule_wake`, without introducing very complex combinations of critical sections, atomics and whatnot.
Co-authored-by: ivmarkov <ivan.markov@gmail.com>
Co-authored-by: Dario Nieuwenhuis <dirbaio@dirbaio.net>
2022-10-26 19:14:12 +00:00
Dario Nieuwenhuis
eeb072d9cb
Update Rust nightly.
2022-10-26 16:47:29 +02:00
Mathias
1669e39565
Buffer data to be written to flash in ram if it does not already reside in ram
2022-10-26 15:02:39 +02:00
Mathias
80e58426fc
Add flash example & flash HIL test
2022-10-26 12:24:04 +02:00
Mathias
ad0eb3f4bd
Implement flash padding to 256 under assumption that all QSPI NOR flashes are MultiwriteNorFlashes
2022-10-24 12:17:22 +02:00
Mathias
8d809c96ec
Merge branch 'master' of https://github.com/embassy-rs/embassy into embassy-rp/flash
2022-10-24 12:14:26 +02: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
bors[bot]
495ca6108c
Merge #1020
...
1020: Fix mistaken EP_IN_WAKERS r=Dirbaio a=mkj
I'm not totally certain, but this looks like a typo?
Co-authored-by: Matt Johnston <matt@ucc.asn.au>
2022-10-21 20:43:14 +00:00
Matt Johnston
866a42f3ae
rp usb: wait for accept() completion
...
This ensures that the current response has finished being sent
before the subsequent set_address() happens. Otherwise connecting
a device is intermittent, can fail depending on timing.
2022-10-21 22:02:13 +08:00
Matt Johnston
f45d34ce7c
Fix mistaken EP_IN_WAKERS
2022-10-20 23:46:02 +08:00
Jeremy Fitzhardinge
02a3cdb507
Associate state with the instance rather than having a separate array
2022-10-17 21:50:40 -07:00
Jeremy Fitzhardinge
e4c2b2aa9a
rp i2c: have separate wakers for each i2c unit
...
If they both share one waker, there's the possibility that some wakeups
could get lost.
2022-10-16 18:00:23 -07:00
bors[bot]
b7d0944265
Merge #984 #1006
...
984: rp pico async i2c implementation r=Dirbaio a=jsgf
This implements an interrupt-driven async i2c master. It is based on https://github.com/embassy-rs/embassy/pull/914 , a bit of https://github.com/embassy-rs/embassy/pull/978 and `@ithinuel's` https://github.com/ithinuel/rp2040-async-i2c.git
This is still work-in-progress, and is currently untested.
1006: Removes some of the code duplication for UarteWithIdle r=Dirbaio a=huntc
This PR removes some of the code duplications for `UarteWithIdle` at the slight expense of requiring a split when using idle processing. As the nRF example illustrates though given the LoC removed, this expense seems worth the benefit in terms of maintenance, and the avoidance of copying over methods. My main motivation for this PR was actually due to the `event_endtx` method not having been copied across to the idle-related code.
Tested the uart_idle example on my nRF52840-dk, and from within my app. Both appear to work fine.
Co-authored-by: Jeremy Fitzhardinge <jeremy@goop.org>
Co-authored-by: huntc <huntchr@gmail.com>
2022-10-12 19:41:52 +00:00
Mathias
5846b4ff7d
Correctly enable RTC_IRQ when scheduling an RTC alarm
2022-10-12 10:54:47 +02:00
Matt Johnston
aa8ba2115c
Expose Pin::pin() and Pin::bank() as public
2022-10-08 11:44:06 +08:00
chrysn
6718ca3a94
all Cargo.toml: Add license to all crate Cargo.toml files
...
Closes: https://github.com/embassy-rs/embassy/issues/1002
2022-10-07 12:41:56 +02:00
Jeremy Fitzhardinge
4fd831e4a8
rp async i2c: raise the tx_empty threshold
...
Assert "tx_empty" interrupt a little early so there's time to wake up
and start refilling the fifo before it drains. This avoids stalling the
i2c bus if the tx fifo completely drains.
2022-10-03 18:50:03 -07:00
Jeremy Fitzhardinge
cae8499179
rp i2c: clean up tx_abrt handling
...
Make sure we always wait for the stop bit if there's a reason to -
either because we sent one, or because there was a hardware tx abort.
2022-10-03 01:18:26 -07:00
Jeremy Fitzhardinge
e8bb8faa23
rp i2c: allow blocking ops on async contexts
2022-10-02 15:09:14 -07:00
Jeremy Fitzhardinge
09afece93d
make I2c::write_async take an iterator
...
There's no other iterator async API right now.
2022-10-01 19:28:27 -07:00
Jeremy Fitzhardinge
5e2c52ee5b
embassy-rp: async i2c implementation
...
This is an interrupt-driven async i2c master implementation. It makes as
best use of the RP2040's i2c block's fifos as possible to minimize
interrupts.
It implements embedded_hal_async::i2c for easy interop.
WIP async impl
2022-10-01 13:43:37 -07:00
Jeremy Fitzhardinge
72b645b0c9
rp i2c: make blocking only for Mode=Blocking
2022-10-01 13:26:13 -07:00
Jeremy Fitzhardinge
8d38eacae4
rp i2c: remove vestiges of DMA
2022-10-01 13:26:13 -07:00
Jeremy Fitzhardinge
90d392205f
embassy-rp: inline I2c::regs
...
It just returns a literal constant, so there's no reason not to always inline it.
2022-10-01 13:26:13 -07:00
Ulf Lilleengen
72c2e985bb
Update embedded-hal versions and explicitly pin
2022-09-29 11:27:46 +02:00
Mathias
7152031229
Add flash ram helpers
2022-09-29 10:03:49 +02:00
Mathias
7ee7109508
Rebase on master
2022-09-29 10:00:13 +02:00
Mathias
bf1da0497c
Allow unused fields temporarily in i2c
2022-09-27 22:08:49 +02:00
Mathias
44c46e3c93
Move async i2c implementation to new PR, to merge working blocking implementation faster
2022-09-27 22:08:49 +02:00
Mathias Koch
b0d91e9f31
Apply suggestions from code review
...
Co-authored-by: Jacob Gonzalez <jacobgonzalez5252@gmail.com>
2022-09-27 22:08:49 +02:00
Mathias
53c34ccc39
Add async API for I2C
2022-09-27 22:08:49 +02:00
Mathias
be68d8ebb7
Add further i2c error types
2022-09-27 22:08:49 +02:00
Mathias
603513e76e
Fix blocking I2C
2022-09-27 22:08:49 +02:00
Mathias
bcd3ab4ba1
Add blocking read & write for I2C
2022-09-27 22:08:49 +02:00
Mathias
820e6462b6
Add preliminary I2C implementation for RP2040
2022-09-27 22:08:49 +02:00
Dario Nieuwenhuis
17d8d11f73
usb: make HALs depend only on embassy-usb-driver.
2022-09-27 13:16:49 +02:00
Mathias
e129a97d48
Fix bufferedUart read and write tests
2022-09-27 07:45:10 +02:00
Mathias
65907204d6
Rename from {Rx,Tx}BufferedUart to BufferedUart{Rx,Tx} to be compliant with stm32 and nrf implementations
2022-09-27 05:51:31 +02:00
Mathias
f76444bdc4
Add HIL test for bufferedUart
2022-09-26 20:34:55 +02:00
Mathias
b3dfd06dd6
Remove code-duplication in async bufferedUart implementations
2022-09-26 20:34:55 +02:00
Mathias
1db9e464ff
Enable embedded-io on nightly
2022-09-26 20:34:55 +02:00
Mathias
d6af0f6286
Formatting
2022-09-26 20:34:55 +02:00
Mathias
f2239d34cc
Add bufferedUart, including a split version for only Rx or Tx
2022-09-26 20:34:55 +02:00
Mathias
ee76831f93
Add BufferedUart implementation, and feature-guard time-driver initialization, to free up TIMER peripheral if not used with embassy executor
2022-09-26 20:34:55 +02:00
Dario Nieuwenhuis
1e95c4fcff
rp: Disable intrinsics by default.
2022-09-26 19:53:22 +02:00
bors[bot]
49070c75b6
Merge #972
...
972: Restructure USB crates r=Dirbaio a=Dirbaio
- Split driver from `embassy-usb` to a separate crate. This allows making breaking changes to `embassy-usb` without having to bump all the crates with driver impls, such as HALs.
- Merge classes into `embassy-usb`. Now that breaking changes to `embassy-usb` aren't that bad, having everything in a single crate is much easier.
Co-authored-by: Dario Nieuwenhuis <dirbaio@dirbaio.net>
2022-09-26 11:32:41 +00:00
Dario Nieuwenhuis
7f7c14b7bc
usb: split driver trait to separate crate.
2022-09-26 12:29:27 +02:00
Dario Nieuwenhuis
fa7781c48d
Add credits to rp-hal
2022-09-26 11:57:26 +02:00
Mathias
18dc0dea63
Drop rp2040-flash as dependency, as they pull in rp2040-hal for rom-data functions, which are now part of this HAL as well
2022-09-23 08:12:32 +02:00
Mathias
9d674f0212
First iteration attempt on implementing generic flash mutation access for RP2040
2022-09-23 07:59:10 +02:00
Mathias
816778e3fa
Add RP2040 ROM functions and intrinsics aliases
2022-09-23 07:58:48 +02:00
Dario Nieuwenhuis
4f33cc5d1a
Replace futures::future::join -> embassy_futures::join::join.
2022-09-23 07:58:48 +02:00
Dario Nieuwenhuis
2fed9f949a
Replace futures::future::poll_fn -> core::future::poll_fn.
2022-09-23 07:58:48 +02:00
Dario Nieuwenhuis
7412a859fd
Update Rust nightly.
...
Removes feature(generic_associated_types)
2022-09-23 07:58:48 +02:00
Mathias
0db1332da8
Implement RealTimeClock for embassy-rp
2022-09-23 07:58:48 +02:00
Alex Martens
4322293f63
rp: let SPI RX overflow during async write
2022-09-23 07:58:48 +02:00
Alex Martens
c14527486d
rp: fix async SPI read and write
2022-09-23 07:58:48 +02:00
Alex Martens
81298394b5
rp: remove extraneous newlines in logs
2022-09-23 07:58:48 +02:00
Mathias
5d1576ea73
Add time-driver feature to docs
2022-09-23 07:58:48 +02:00
Mathias
f46b838746
Feature-gate time-driver in embassy-rp
2022-09-23 07:58:48 +02:00
Mathias
2e7916c5fe
Add RP2040 ROM functions and intrinsics aliases
2022-09-23 06:45:44 +02:00
Dario Nieuwenhuis
10d1ad2343
Replace futures::future::join -> embassy_futures::join::join.
2022-09-22 16:48:35 +02:00
Dario Nieuwenhuis
a0487380da
Replace futures::future::poll_fn -> core::future::poll_fn.
2022-09-22 16:42:49 +02:00
Dario Nieuwenhuis
897b72c872
Update Rust nightly.
...
Removes feature(generic_associated_types)
2022-09-22 16:38:14 +02:00
bors[bot]
3b58ac1bf8
Merge #949
...
949: (embassy-rp): Implement RealTimeClock r=lulf a=MathiasKoch
Basically a 1:1 port of the great implementation effort made by `rp-hal`
Co-authored-by: Mathias <mk@blackbird.online>
2022-09-21 07:19:23 +00:00
bors[bot]
6663390224
Merge #954
...
954: rp: fix async SPI read and write r=lulf a=newAM
Closes #953
Co-authored-by: Alex Martens <alex@thinglab.org>
2022-09-19 07:26:10 +00:00
Alex Martens
0c6933fefb
rp: remove extraneous newlines in logs
2022-09-18 14:54:24 -07:00
Alex Martens
295cc997ae
rp: let SPI RX overflow during async write
2022-09-18 12:23:17 -07:00
Alex Martens
ab1a6889a6
rp: fix async SPI read and write
2022-09-18 12:02:05 -07:00
Mathias
1c657d2d55
Add time-driver feature to docs
2022-09-16 16:45:59 +02:00
Mathias
feb840c503
First iteration attempt on implementing generic flash mutation access for RP2040
2022-09-16 13:20:22 +02:00
Mathias
feead3ae89
Implement RealTimeClock for embassy-rp
2022-09-16 13:18:23 +02:00
Mathias
f7267d493f
Feature-gate time-driver in embassy-rp
2022-09-16 12:54:26 +02:00
Dario Nieuwenhuis
5327b9c289
time: add more tick rates, use 1mhz as default.
2022-09-02 00:59:34 +02:00
Henrik Alsér
efe456ab14
Fix dma
2022-09-01 15:50:08 +02:00
Henrik Alsér
71c130488b
Reorder args
2022-09-01 15:12:44 +02:00
Henrik Alsér
e2181cb439
rustfmt
2022-09-01 15:12:44 +02:00
Henrik Alsér
b934f3f12e
Remove cfg_if
2022-09-01 15:12:44 +02:00
Henrik Alsér
3fce6ec649
Rearrange new:s
2022-09-01 15:12:44 +02:00
Henrik Alsér
27905f1be1
Change DMA write/read to use raw pointers
2022-09-01 15:12:44 +02:00
Henrik Alsér
99dd2a9386
Reorder args
2022-09-01 15:12:44 +02:00
Henrik Alsér
6d347af9fa
transfer_in_place
2022-09-01 15:12:43 +02:00
Henrik Alsér
44150c4830
impl embedded-hal-async
2022-09-01 15:12:43 +02:00
Henrik Alsér
07c64d902e
example
2022-09-01 15:12:43 +02:00
Henrik Alsér
e7d4bf258a
dma
2022-09-01 15:12:43 +02:00
Dario Nieuwenhuis
8ba421f324
Do not use cfg_if for embedded-hal-async feature gates.
...
Old code used `cfg_if!` because rustc still parses code inside disabled cfg's, and Rust stable at that time couldn't parse the new GAT where-clause location. This is not the case anymore.
2022-08-31 03:11:21 +02:00
Dario Nieuwenhuis
e4d4166da2
Merge pull request #927 from embassy-rs/rp-usb
...
rp: add usb device support.
2022-08-30 19:15:44 +02:00
Mathias
bd27b9080f
Add HIL tests of DMA & UART, and correctly set DREQ for uart DMA
2022-08-26 12:55:15 +02:00
Dario Nieuwenhuis
a730e2cd0f
rp: add usb device support.
2022-08-25 00:03:55 +02:00
Dario Nieuwenhuis
f11aa9720b
rp: update PAC
2022-08-24 23:43:28 +02:00
Mathias
b88ef03214
Only check for ahb error in DMA
2022-08-23 13:46:48 +02:00
Mathias
594a64b3bf
Change to using embassy-sync
2022-08-23 13:28:14 +02:00
Mathias
36cf719a18
Merge branch 'master' of https://github.com/embassy-rs/embassy into embassy-rp/dma
2022-08-23 13:24:52 +02:00
Mathias
7e3ce2c90b
Abort DMA operation when dropping a Transfer, and panic on DMA errors
2022-08-23 13:20:36 +02:00
Mathias
f6c2e26372
Address code review comments
2022-08-23 12:28:17 +02:00
Dario Nieuwenhuis
21072bee48
split embassy-util
into embassy-futures
, embassy-sync
.
2022-08-22 22:18:13 +02:00
Dario Nieuwenhuis
f48391a685
rp: fix nvic prio bits (it's 2, not 3)
2022-08-22 16:29:34 +02:00
Mathias
295af2a057
Fix bit checking in DMA irq
2022-08-19 14:16:19 +02:00
Mathias
331a64a4ea
Add back public dma::copy, and correct dma incr settings for read/write
2022-08-19 10:43:59 +02:00
Mathias
140ef4febf
Add DMA_IRQ0 handling to Transfer
2022-08-19 09:48:58 +02:00
Mathias
aa586fe1de
Simplify waker storage for DMA state
2022-08-18 21:27:37 +02:00
Mathias
debff0980d
Don't increment read address in DMA copy from peripherals
2022-08-18 21:20:47 +02:00
Mathias
1d49b3444f
Add DMA read + write functions
2022-08-18 21:09:50 +02:00
Mathias
a7d6bc7ba5
Merge branch 'master' of https://github.com/embassy-rs/embassy into embassy-rp/dma
2022-08-18 21:08:57 +02:00
bors[bot]
aefa5275a2
Merge #910
...
910: (embassy-rp): Implement remaining logic for blocking UART r=lulf a=MathiasKoch
async read/write is still `todo!()`, awaiting DMA implementation.
Co-authored-by: Mathias <mk@blackbird.online>
2022-08-18 18:36:27 +00:00
Mathias
9c9b7b1a66
Remove unneeded NoDma struct
2022-08-18 20:34:55 +02:00
Mathias
55a63a5417
Attempt to implement future for DMA transfer
2022-08-18 20:30:50 +02:00
Mathias
3bbfc11f45
Stop active DMA transfer on drop
2022-08-18 20:30:24 +02:00
Mathias
d35a1c9790
Preliminary DMA support for RP2040
2022-08-18 19:39:13 +02:00
Mathias
0f74f870b0
Fix rp uart example
2022-08-18 14:01:37 +02:00
Mathias
d52c7ded49
Implement remaining logic for blocking UART. async is still todo, awaiting DMA
2022-08-18 10:23:29 +02:00
Dario Nieuwenhuis
5daa173ce4
Split embassy-time from embassy-executor.
2022-08-18 01:22:30 +02:00
Dario Nieuwenhuis
fc6e1e06b3
Remove HAL initialization from #[embassy::main] macro.
2022-08-17 22:16:46 +02:00
Dario Nieuwenhuis
67edea4168
Update to critical-section 1.0, atomic-polyfill 1.0
2022-08-17 19:01:56 +02:00
Dario Nieuwenhuis
6c10fa44d0
rp/gpio: fix wait_for_* when multiple pins are in use.
2022-08-08 00:22:08 +02:00
Dario Nieuwenhuis
89e2e25d6f
rp/gpio: remove unused lifetimes.
2022-08-07 23:25:50 +02:00
Dario Nieuwenhuis
a0f1b0ee01
Split embassy crate into embassy-executor, embassy-util.
2022-07-29 23:40:36 +02:00
Dario Nieuwenhuis
f02ba35482
Remove PeripheralRef::into_inner()
2022-07-23 14:27:45 +02:00
Dario Nieuwenhuis
4901c34d9c
Rename Unborrowed -> PeripheralRef, Unborrow -> Peripheral
2022-07-23 14:00:19 +02:00
Dario Nieuwenhuis
8a9d2f59af
Update embassy-stm32
2022-07-23 02:40:13 +02:00
Dario Nieuwenhuis
be6408e202
Rename unsafe_impl_unborrow to impl_unborrow
2022-07-23 01:33:22 +02:00
Grant Miller
bff0ad9286
Update embassy-rp
2022-07-23 01:33:22 +02:00
Daniel Bevenius
e757b1882e
Add inline attribute to embassy-rp async functions
...
This commit adds the inline attribute to the recently added async gpio
functions. This is to enable cross-crate inlining and to be consistent
with the other functions implemented for Input and Flex.
2022-07-22 07:24:14 +02:00
Jan Niehusmann
aff840cf30
Fix build of embassy-rp on stable channel
2022-07-21 20:14:45 +00:00
Daniel Bevenius
8979959dd1
Add embedded_hal_async support for embassy-rp
...
This commit adds support for embedded-hal-async to the Embassy
Raspberry PI crate.
2022-07-14 13:52:22 +02:00
chemicstry
53e40860c1
Move all gpio logic to Flex
2022-07-13 02:45:37 +03:00
chemicstry
a335589f34
Change get_set_level to get_output_level
2022-07-13 02:25:09 +03:00
chemicstry
57002875d6
Add convenience GPIO functions to RP
2022-07-13 02:22:46 +03:00
bors[bot]
5f43c1d37e
Merge #850
...
850: Shared buses with SetConfig r=Dirbaio a=kalkyl
Addresses issue #830
Co-authored-by: Henrik Alsér <henrik@mindbite.se>
2022-07-10 00:03:44 +00:00
Henrik Alsér
baae64d911
Add embassy-embedded-hal nightly feature
2022-07-09 23:41:02 +02:00
Dario Nieuwenhuis
5cc5961c94
rp/gpio: add Flex.
2022-07-09 02:14:30 +02:00
Henrik Alsér
85e67d94ad
impl SetConfig for rp2040 SPI
2022-07-09 00:32:55 +02:00
Dario Nieuwenhuis
948bb93dc2
docs: Add $COMMIT to git srclinks.
2022-06-26 23:55:38 +02:00
Dario Nieuwenhuis
1f746e0939
Remove the authors field from Cargo.tomls
...
It currently contains whoever was first to write some code for the crate,
even if many more people have contributed to it later.
The field is "sort of" deprecated, it was made optional recently:
https://rust-lang.github.io/rfcs/3052-optional-authors-field.html
Due the the reasons listed there I believe removing it is better than
setting it to generic fluff like "The Embassy contributors".
2022-06-18 02:16:40 +02:00
Dario Nieuwenhuis
88e36a70bd
Update to 2021 edition. ( #820 )
2022-06-18 02:15:48 +02:00
Dario Nieuwenhuis
a8703b7598
Run rustfmt.
2022-06-12 22:22:31 +02:00
Dario Nieuwenhuis
5085100df2
Add embassy-cortex-m crate.
...
- Move Interrupt and InterruptExecutor from `embassy` to `embassy-cortex-m`.
- Move Unborrow from `embassy` to `embassy-hal-common` (nothing in `embassy` requires it anymore)
- Move PeripheralMutex from `embassy-hal-common` to `embassy-cortex-m`.
2022-06-12 21:45:38 +02:00
Dario Nieuwenhuis
6320e30adf
Update embedded-hal-async to 0.1.0-alpha.1
2022-05-29 22:34:08 +02:00
Daniel Bevenius
027ab3371e
Impl OutputPin/StatefulOutputPin/ToggleableOutputPin
...
This commit implements embedded_hal_02::digital::v2 OutputPin,
StatefulOutputPin, and ToggleableOutputPin for embassy-rp.
2022-05-21 10:11:12 +02:00
Daniel Bevenius
c8461709e3
Add open-drain support for embassy-rp
...
This commit adds open-drain support for embassy-rp by adding a new type
named embassy_rp::gpio::OutputOpenDrain.
2022-05-21 10:11:06 +02:00
Daniel Bevenius
4b0dca1802
Add new lines between SIO methods
...
The commit adds new lines between the SIO functions which at least for
me improves readability and is consistent with the other methods in the
trait.
2022-05-19 13:45:40 +02:00
Dario Nieuwenhuis
dd7a34fdc8
Merge pull request #773 from danbev/embassy-rp-ouput-drop
...
Impl drop for embassy-rp gpio Output
2022-05-19 07:13:13 +02:00
Daniel Bevenius
99c2defa76
squash! Impl ToggleableOutputPin for embassy-rp Output
...
Use value_xor as suggested in pull request feedback.
2022-05-19 06:07:14 +02:00
Daniel Bevenius
da97944322
Impl ToggleableOutputPin for embassy-rp Output
2022-05-19 05:33:42 +02:00
Daniel Bevenius
a3e0fcef0b
Impl drop for embassy-rp gpio Output
...
This commit implements drop for embassy-rp gpio Output which is
currently a todo.
2022-05-17 08:43:03 +02:00
Daniel Bevenius
0bb428dcc0
squash! Implement Output::is_set_low for embassy-rp
...
Add check for the bit of the current pin.
2022-05-11 18:33:13 +02:00
Daniel Bevenius
6d4a49bca8
Implement Output::is_set_low for embassy-rp
...
This commit implements a suggestion for the method is_set_low which is
currently a 'todo', by reading last value written to GPIO_OUT.
2022-05-11 16:23:31 +02:00
Daniel Bevenius
1b2a10007b
Update re-export comment in embassy-rp/Cargo.toml
2022-05-09 16:56:28 +02:00
Dario Nieuwenhuis
3251a21fb7
Switch to crates.io embedded-hal, embedded-hal-async.
...
This temporarily removes support for the async UART trait, since it's
not yet in embedded-hal-async.
2022-04-22 19:58:24 +02:00
Matous Hybl
eb6910fa86
Reexport unborrow macro in HALs
2022-04-07 12:57:02 +02:00
Dario Nieuwenhuis
aee19185b7
Add more docserver metadata.
2022-04-05 21:05:09 +02:00
Dario Nieuwenhuis
9bad9365dc
Update rust nightly, embedded-hal 1.0, embedded-hal-async.
2022-03-11 00:38:07 +01:00
Dario Nieuwenhuis
d9aec181a4
rp: impl eh1.0 blocking traits
2022-02-15 17:29:05 +01:00
bors[bot]
f2eb438905
Merge #615
...
615: rp: remove OptionalPin r=Dirbaio a=Dirbaio
Mirror of https://github.com/embassy-rs/embassy/pull/605 for rp2040
Co-authored-by: Dario Nieuwenhuis <dirbaio@dirbaio.net>
2022-02-12 00:46:40 +00:00
Dario Nieuwenhuis
0c9b1abb67
rp: remove OptionalPin
2022-02-12 01:34:41 +01:00
Dario Nieuwenhuis
20e14b8edb
embassy, embassy-nrf: add nightly
Cargo feature to gate nightly-only features.
2022-02-12 01:16:31 +01:00
Dario Nieuwenhuis
6c925b2342
blocking_mutex: refactor to work on stable. No GATs, and can be constructed in const.
2022-02-12 01:16:31 +01:00
Dario Nieuwenhuis
a8bd3ab952
Add missing + 'd
on unborrows.
2022-02-10 16:06:42 +01:00
Ulf Lilleengen
985c11fad5
Update rust-toolchain
2021-12-16 11:34:20 +01:00
Bob McWhirter
c2da498263
Update to defmt 3.0ish.
...
Lots of gitrevs deps.
2021-11-15 11:09:08 -05:00
Ulf Lilleengen
205a223af3
Update versions of critical-section and atomic-polyfill
2021-11-02 18:52:03 +01:00
Ulf Lilleengen
99a94f1d50
Update version of critical-section
2021-09-13 17:05:17 +02:00
Ulf Lilleengen
e24528051b
Add WASM support for executor
...
* Adds an executor for WASM runtimes based on wasm_bindgen.
* Add time driver based on JS time handling.
* Add example that can run in browser locally.
* Update to critical-section version that supports 'std' flag
2021-09-13 16:42:39 +02:00
Dario Nieuwenhuis
ead987245d
embassy: Refactor module structure to remove kitchen-sink util
.
2021-09-11 02:35:35 +02:00
Dario Nieuwenhuis
f2623e7e9b
Update lots of deps
2021-09-11 01:35:23 +02:00
Dario Nieuwenhuis
a76526add6
rp: remove use of never type
2021-09-03 17:17:02 +02:00
Dario Nieuwenhuis
de016e8456
Remove trait_alias, allow(incomplete_features).
...
trait_alias seems unused. no idea why it's there.
2021-09-03 17:00:58 +02:00
Dario Nieuwenhuis
7c0990ad1e
time: allow storing state inside the driver struct.
2021-08-25 21:06:27 +02:00
Dario Nieuwenhuis
d3aeb45fb3
Update cortex-m-rt to v0.7 for stm32, rp.
2021-08-19 00:56:11 +02:00
Dario Nieuwenhuis
0ea6a2d890
time: replace dyn clock/alarm with a global Driver trait
2021-08-05 19:14:09 +02:00
Dario Nieuwenhuis
7bfb763e09
Rename embassy-extras to embassy-hal-common
2021-07-29 13:44:51 +02:00
Dario Nieuwenhuis
da33b3a4d2
rp/spi: disable+enable when setting frequency
2021-07-20 09:43:06 +02:00
Dario Nieuwenhuis
dbff5cc232
rp/spi: properly drain the rx buffer while writing
2021-07-20 09:42:52 +02:00
Dario Nieuwenhuis
f916fe5476
all hals: reexport PAC if unstable-pac
feature is set.
2021-07-14 22:19:04 +02:00
Dario Nieuwenhuis
1a4c13cf26
rp/spi: add set_frequency
2021-07-12 03:45:57 +02:00
Dario Nieuwenhuis
7547c8d8d6
rp/timer: add
2021-07-12 03:45:57 +02:00
Dario Nieuwenhuis
35a76c364a
embassy/time: make optional via Cargo feature
2021-07-12 03:45:48 +02:00
Dario Nieuwenhuis
17e31eb903
rp/spi: sane prescaler calculation
2021-07-11 23:47:33 +02:00
Rukai
56d0c5ffe1
Fix warnings in std and rp
2021-07-04 12:46:04 +10:00
Dario Nieuwenhuis
5fae5d20c0
rp/clocks: don't disrupt PLLs if already running.
...
This makes it possible to run under https://github.com/majbthrd/pico-debug
2021-06-30 23:46:00 +02:00
Dario Nieuwenhuis
53c236fde8
rp/spi: add configurable pha/pol
2021-06-30 23:46:00 +02:00
Dario Nieuwenhuis
f073bdfe43
rp/spi: add Transfer
2021-06-30 23:46:00 +02:00
Dario Nieuwenhuis
749f4838d5
rp/gpio: add optional pins
2021-06-30 22:43:15 +02:00
Dario Nieuwenhuis
88bc2972f6
rp/spi: add write-only spi driver
2021-06-25 06:24:14 +02:00
Dario Nieuwenhuis
9cf1d5b29c
rp/clocks: fix wrong PLL setup
2021-06-25 06:24:14 +02:00
Dario Nieuwenhuis
c7c897bb72
rp/gpio: add infallible inherent methods
2021-06-25 06:24:14 +02:00
Dario Nieuwenhuis
5a6384d199
rp: clock setup
2021-06-25 03:38:21 +02:00
Dario Nieuwenhuis
3be49d3e79
fmt: Add dunmy use to avoid "unused variable" errors when no log is enabled.
2021-06-07 03:21:37 +02:00
Dario Nieuwenhuis
ef1ebefec0
fmt: use absolute paths
2021-06-07 03:15:05 +02:00
Dario Nieuwenhuis
e7dc5c0939
fmt: make all macros macro_rules
so scoping is consistent.
2021-06-07 00:16:39 +02:00
Dario Nieuwenhuis
b5cdd296dd
Merge pull request #195 from embassy-rs/unborrow-mk2
...
Unborrow fixes
2021-05-20 04:14:38 +02:00
Rukai
2363a019e2
Fix all warnings on embassy-rp and embassy-rp-examples and
...
embassy-std-examples
2021-05-20 08:32:26 +10:00
Dario Nieuwenhuis
105c8504b6
Mark Unborrow as unsafe to implement
2021-05-19 23:29:33 +02:00
Dario Nieuwenhuis
f7858631d8
stm32: fix build, add ci
2021-05-17 03:16:58 +02:00
Dario Nieuwenhuis
0310e4d458
Add init
fn. Initializes hw and returns Peripherals.
2021-05-17 00:57:37 +02:00
Ulf Lilleengen
3b86e85770
Bump version of critical-section to 0.2.1
2021-05-13 18:17:50 +02:00
Dario Nieuwenhuis
e0809ab0fb
Switch to use PrioritX enums.
2021-05-11 01:34:24 +02:00
Dario Nieuwenhuis
7fa0e57172
Use critical_section
crate
2021-05-11 01:15:30 +02:00
Dario Nieuwenhuis
97ca54fa66
Rename PeripheralBorrow to Unborrow
2021-04-14 19:59:52 +02:00
Dario Nieuwenhuis
d938b95430
rp: add precompiled boot2 to avoid depending on gcc
2021-03-29 22:28:36 +02:00
Dario Nieuwenhuis
403b308279
rp/gpio: implement Input
2021-03-29 21:35:25 +02:00
Dario Nieuwenhuis
2cd3bdc90c
rp: add initial version
2021-03-29 21:35:25 +02:00