embassy/embassy-nrf/src
bors[bot] 13247897b0
Merge #640
640: Skip EasyDMA slice location check for empty slices and copy data if necessary r=Dirbaio a=TilBlechschmidt

As discussed, this PR makes the following changes:
- Ignore pointer location of zero-length slices (fixes #631)
- Change default functions so they copy the tx buffer if it does not reside in RAM
- Introduce new variants for `write`, `transfer`, and their blocking versions which fails instead of copying
- Add documentation about the motivation behind all these variants
<img width="984" alt="image" src="https://user-images.githubusercontent.com/5037967/155415788-c2cd1055-9289-4004-959d-be3b1934a439.png">


Remaining TODOs:

- [x] Change copying behaviour for other peripherals
    - [x] TWI
    - [x] UART
- [x] Add module-level documentation regarding EasyDMA and `_from_ram` method variants

`@Dirbaio` it probably makes sense for you to review it now before I "copy" over the changes to the other two peripherals.

Co-authored-by: Til Blechschmidt <til@blechschmidt.de>
2022-03-09 01:47:52 +00:00
..
chips docs: prevent inline doc spam for reexports. 2022-03-04 18:03:41 +01:00
ppi nrf: add initial nrf5340 support 2021-10-28 03:36:25 +02:00
buffered_uarte.rs nrf: remove OptionalPin 2022-02-12 01:07:02 +01:00
fmt.rs fmt: Add dunmy use to avoid "unused variable" errors when no log is enabled. 2021-06-07 03:21:37 +02:00
gpio.rs nrf: remove OptionalPin 2022-02-12 01:07:02 +01:00
gpiote.rs embassy, embassy-nrf: add nightly Cargo feature to gate nightly-only features. 2022-02-12 01:16:31 +01:00
lib.rs Move EasyDMA documentation to module level 2022-03-08 17:49:15 +01:00
nvmc.rs Upgrade to embedded-storage 0.3.0 2022-02-07 12:35:58 +01:00
pwm.rs nrf: remove OptionalPin 2022-02-12 01:07:02 +01:00
qspi.rs nrf/qspi: expose all functionality as inherent methods. 2022-01-13 23:56:39 +01:00
rng.rs nrf/rng: expose all functionality as inherent methods. 2022-01-13 23:56:39 +01:00
saadc.rs Simplifies the API by taking in the TIMER and PPI channels 2022-03-07 14:51:17 +11:00
spim.rs Move EasyDMA documentation to module level 2022-03-08 17:49:15 +01:00
temp.rs Use async fn instead of impl Future 2021-10-19 20:48:46 +02:00
time_driver.rs time: better docs explaining overflow handling. 2022-02-23 05:16:30 +01:00
timer.rs - Interconnect is now PPI again 2021-10-26 14:47:31 +02:00
twim.rs Move EasyDMA documentation to module level 2022-03-08 17:49:15 +01:00
uarte.rs Move EasyDMA documentation to module level 2022-03-08 17:49:15 +01:00
usb.rs undo T:regs in impl UsbPeripheral 2021-12-15 11:00:55 -07:00
util.rs Fix inverted boolean condition 2022-03-08 16:29:42 +01:00
wdt.rs nrf91: support running in both S and NS mode. 2021-10-26 17:40:07 +02:00