Commit Graph

97 Commits

Author SHA1 Message Date
a3b3305b8e uarte: Only stop TX forcefully when a transmissions is running
This comes with insignificant power consumption improvements but makes
the code of the RX and TX case symmetric.
2021-01-04 22:55:40 +01:00
a7c03e4cb6 uarte: Only stop RX forcefully when a reception is running
The STOPRX task always triggers a timeout of ~55bit times until the
RXTO event is generated. Before we disabled the receiver only after
the timeout.
With this change the receiver is stopped right after reception has ended
because the DMA buffer is full.
For forced RX aborts like `stop()` or on drop still need to wait for the
RXTO event before disabling the receiver.
2021-01-04 22:55:40 +01:00
9f28c7ab8d uarte: Do not spin when stopping a receive future
Spinning on drop() is still required when the future has not been
stopped so that DMA finishes before the buffer is released.
2021-01-04 22:55:40 +01:00
39ca8b8ded Fix build on non-nrf52840 2021-01-03 22:30:47 +01:00
ace4f40f80 Introduce "peripheral" abstraction to share state between main and interrupt. 2021-01-03 01:40:40 +01:00
4ce51795f2 use hal::Pins for BufferedUarte 2021-01-02 20:31:50 +01:00
8fa3294f35 Update readme 2021-01-02 20:13:35 +01:00
0ab88ea279 Add Uart trait, implement it for nrf. 2021-01-02 19:59:37 +01:00
1d53985abe Remove now-stable slice_fill feature 2021-01-02 19:56:05 +01:00
3c7e7220b3 Don't use embedded_dma in nrf uarte. 2021-01-02 19:14:54 +01:00
396d7650ca Add some comments to uart example. 2021-01-01 23:04:18 +01:00
20d3dc87f9 Rename examples -> embassy-nrf-examples 2021-01-01 22:46:32 +01:00
4783222f67 Rename WakerStore -> WakerRegistration. 2021-01-01 22:30:11 +01:00
ffb92731cd Merge pull request #12 from timokroeger/task-macro-warning
Fix warnings for tasks that take mutable parameters
2020-12-31 16:32:44 +01:00
c17954ccba Fix warnings for tasks that take mutable parameters
#[task]
pub async fn run(mut param: Param) {}

warning: variable does not need to be mutable
2020-12-31 15:38:10 +01:00
cd56d2621a Merge pull request #3 from timokroeger/low-power-uarte
(low power) UARTE implementation
2020-12-30 19:57:36 +01:00
6695bf0f21 Low power UART driver 2020-12-30 19:24:12 +01:00
c97d5262f5 Blocking wait method for signals 2020-12-30 19:24:12 +01:00
6bc1a712ff Fix Forever 2020-12-30 04:17:45 +01:00
a02d0a378e Fix race in enqueuing expired tasks. 2020-12-30 04:12:48 +01:00
bb6f25d010 Remove use of deprecated compare_and_swap. 2020-12-30 01:07:22 +01:00
015b6bbce4 Ensure timers always yield at least once.
This prevents a task that's constantly running late from monopolizing the CPU.
Add executor_fairness_test example showcasing it.
2020-12-30 00:57:35 +01:00
2bf9b14ef0 Merge pull request #7 from akiles/irq
Owned IRQs
2020-12-29 15:32:23 +01:00
7dc81faa4e Declare irqs for each nrf chip 2020-12-29 15:20:42 +01:00
af5454fbfe Update drivers to owned irqs. 2020-12-29 01:53:17 +01:00
4b8d8ba87e Update RTC for owned irqs 2020-12-29 01:05:28 +01:00
0750234fbe WIP owned irqs 2020-12-29 00:05:52 +01:00
b01a88a839 Do not run timer queue if no alarm is set. 2020-12-29 00:04:58 +01:00
267ec334ac Rename Uarte -> BufferedUarte 2020-12-28 23:57:50 +01:00
4a7344cb6f Add embassy-std crate with glue to run embassy on std. 2020-12-28 03:41:40 +01:00
32c67381df Add missing ?Sized bound in read_line 2020-12-27 23:34:05 +01:00
692d8bb813 More efficient timer queue, integrated into Executor directly. 2020-12-26 23:44:53 +01:00
8b7a42a4f9 Split waker to separate file. 2020-12-26 17:22:36 +01:00
3df66c44e3 Split executor into multiple files, remove old timers implementation. 2020-12-26 16:42:44 +01:00
db8b4ca565 Better SpawnToken error messages 2020-12-26 15:15:50 +01:00
80c504cd95 Add std impl for rand 2020-12-14 00:36:29 +01:00
1aae27270e Better fmt macros. 2020-12-13 21:17:58 +01:00
3be7ace878 add time::Ticker 2020-12-13 19:54:18 +01:00
ca2ff632ba Fix possibly ambiguous macro 2020-12-01 20:00:55 +01:00
02af635e7b Fix CI 2020-12-01 17:52:06 +01:00
6f76c0ebcc Add support for log+defmt again, but better. 2020-12-01 17:46:56 +01:00
78135a81d9 Remove anyfmt 2020-11-27 18:42:59 +01:00
49d5121094 Fix unsoundness in Forever 2020-11-16 01:04:56 +01:00
2e062f5627 gpiote: change port api to directly return futures. 2020-11-09 01:04:34 +01:00
61b1d4e188 Fix build for nrfs with 32 gpios 2020-11-08 19:05:34 +01:00
e539cd32ca Fix logging with anyfmt/log 2020-11-08 19:00:23 +01:00
36517fd1c5 Add gpiote port example. 2020-11-08 19:00:08 +01:00
fc0fe842ee Add support for GPIOTE Port event. 2020-11-08 18:59:31 +01:00
a2735a716c Add signal reset() 2020-11-08 18:41:22 +01:00
def225b982 gpiote: better naming 2020-11-08 17:38:45 +01:00