xoviat
6503f9dbf5
implement interruptfuture
...
converts an interrupt to a future
2021-01-21 10:22:30 -06:00
Dario Nieuwenhuis
27831124a7
Remove unused rtic dep
2021-01-21 01:07:04 +01:00
Dario Nieuwenhuis
5b897b6605
executor: Add 'raw' api to wake tasks through raw pointers.
2021-01-21 01:00:12 +01:00
Dario Nieuwenhuis
28b5d8e9f4
Merge pull request #26 from timokroeger/fix-irq-nr
...
Fix IRQ numbers
2021-01-17 18:52:43 +01:00
Timo Kröger
9f9d808948
Fix IRQ numbers
...
The raw enum values are not always equal to the interrupt number
fixes #23
2021-01-17 17:28:46 +01:00
Dario Nieuwenhuis
4e789c663c
Merge pull request #15 from akiles/gpio-wait
...
RFC: GPIO WaitForFoo traits
2021-01-15 23:06:07 +01:00
Dario Nieuwenhuis
28fe29fff3
Merge pull request #22 from xoviat/cleanup
...
minor cleanup to interface
2021-01-14 19:02:00 +01:00
xoviat
2b15a2674f
minor cleanup to interface
2021-01-14 11:42:23 -06:00
Dario Nieuwenhuis
24d6b9ed6c
Build stm32 and stm32-examples in test script.
...
Panic handler was missing, I had to add exaple_common.rs like in the nrf examples.
2021-01-14 00:53:05 +01:00
Dario Nieuwenhuis
0204d4e812
Merge pull request #17 from xoviat/implement-uart
...
implement uart on serial interface
2021-01-14 00:42:09 +01:00
xoviat
7adf99eff3
implement changes
2021-01-13 17:40:32 -06:00
Dario Nieuwenhuis
6963b314a2
nrf/rtc: fix race when setting alarms too close to now.
2021-01-13 03:17:58 +01:00
Dario Nieuwenhuis
5229a1991c
nrf/rtc: use interrupt handler context for instance ptr
2021-01-13 03:17:42 +01:00
xoviat
c07f7467a0
Merge branch 'implement-uart' of ssh://github.com/xoviat/embassy into implement-uart
2021-01-12 14:00:39 -06:00
xoviat
914abdeb15
Merge branch 'master' of https://github.com/akiles/embassy into implement-uart
2021-01-12 14:00:12 -06:00
Dario Nieuwenhuis
7b94e06306
nrf/buffered_uarte: fix stop not actually waiting for stop
2021-01-11 11:24:34 +01:00
Dario Nieuwenhuis
41160c0d8d
nrf/buffered_uarte: add set_baudrate
2021-01-11 10:40:37 +01:00
Dario Nieuwenhuis
2616467377
nrf/buffered_uarte: stop on drop, add free()
2021-01-11 10:39:59 +01:00
Dario Nieuwenhuis
c91882a72c
Add CriticalSectionMutex, ThreadModeMutex.
2021-01-11 10:38:43 +01:00
Dario Nieuwenhuis
877fc0321a
WakerRegistration: Wake previous task if any
2021-01-11 10:38:25 +01:00
Dario Nieuwenhuis
60df9e0d38
Add non_exhaustive attrs.
2021-01-09 00:51:07 +01:00
xoviat
a168b9ef51
restrict unsafe block
2021-01-06 21:02:02 -06:00
Dario Nieuwenhuis
e18d71dedc
Fix build on nrf52832
2021-01-07 00:50:40 +01:00
Dario Nieuwenhuis
5b10ac9cac
Add PPI+TIMER to buffered_uarte to prevent IRQ storm
2021-01-06 23:36:46 +01:00
Dario Nieuwenhuis
deb3c93892
Simpliify PeripheralMutex a bit.
2021-01-06 22:48:54 +01:00
xoviat
31ba052f14
mark new unsafe
2021-01-06 14:31:43 -06:00
xoviat
1c3b7541cb
use transmute for now
2021-01-06 14:12:33 -06:00
Dario Nieuwenhuis
77bdb5428e
buffered_uarte naming cleanup
2021-01-06 20:21:03 +01:00
xoviat
27cfcbacb8
try uart implementation
2021-01-06 12:12:29 -06:00
Dario Nieuwenhuis
896eb0ed52
Merge pull request #16 from xoviat/fix-interrupts
...
fix set_handler context
2021-01-06 18:06:23 +01:00
xoviat
66622de82a
fix set_handler context
2021-01-06 10:49:08 -06:00
Dario Nieuwenhuis
f6be0b8d12
Add gpio WaitForFoo traits
2021-01-06 01:10:48 +01:00
Dario Nieuwenhuis
61a7cf5c3d
Merge pull request #6 from xoviat/stm32f4
...
Add stm32f4xx series serial driver
2021-01-06 00:41:19 +01:00
xoviat
938919367a
add levels
2021-01-05 17:38:46 -06:00
xoviat
a9d9f3bf80
fix problems
2021-01-05 17:24:27 -06:00
xoviat
7bee584808
remove dead code in waker
2021-01-05 17:19:05 -06:00
xoviat
f62eb66bf2
add new levels
2021-01-05 17:18:24 -06:00
Dario Nieuwenhuis
9bb4c97dc2
Merge pull request #14 from timokroeger/uarte-power-optimization
...
UARTE power optimization and improvements
2021-01-05 22:10:52 +01:00
Dario Nieuwenhuis
607e67f51a
Cleanup BufferedUarte
2021-01-05 21:14:04 +01:00
Dario Nieuwenhuis
3a4dbfa52e
Massicely simplify peripheral abstraction
2021-01-05 01:57:05 +01:00
Timo Kröger
0631623b51
uarte: Low power wait for RX drop
2021-01-04 22:55:40 +01:00
Timo Kröger
93780fa31d
uarte: Wait for the peripheral to be disabled
...
Prevents a panic in the case of:
1. Abort a receive future
2. Free Uarte::free()
3. Uarte::new()
-> panicked at 'assertion failed: uarte.enable.read().enable().is_disabled()'
2021-01-04 22:55:40 +01:00
Timo Kröger
9b1f7b8a17
uarte: Enable peripheral with first poll
...
This fixes a lockup when a future is dropped before it was polled.
2021-01-04 22:55:40 +01:00
Timo Kröger
85ec9dd16f
uarte: Be on safe side with potentially racy code
...
The PS does not specify how many cycles it takes for a STARTXX task to
generate a XXSTARTED event. I think it is instantaneous but let’s be on
the safe side for the following sequence:
1. poll() starttx
2. drop() txstarted not yet set, but future gets dropped
3. txstarted set by hardware, peripheral enabled after it was dropped
2021-01-04 22:55:40 +01:00
Timo Kröger
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
Timo Kröger
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
Timo Kröger
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
Dario Nieuwenhuis
9e88718fbd
Add "context" pointer to owned interrupt handlers.
2021-01-04 22:25:39 +01:00
xoviat
d89462fc16
remove macros
2021-01-04 12:53:27 -06:00
xoviat
f3676e1eab
rename examples
2021-01-04 12:52:00 -06:00