Commit Graph

702 Commits

Author SHA1 Message Date
7b6086d19e nrf: add unborrow! macro 2021-03-29 00:58:58 +02:00
a134fce122 nrf: nicer Peripherals api, add take() 2021-03-29 00:58:57 +02:00
d5ff1a0ae3 nrf: rename inner peripheral to peri for consistence 2021-03-29 00:58:57 +02:00
95218bf8d4 Rename GpioteInput -> PortInput 2021-03-29 00:58:57 +02:00
c0876187dd extras: move peripherals from nrf to extras 2021-03-29 00:58:57 +02:00
ec7309962a nrf/qspi: update to new api 2021-03-29 00:58:57 +02:00
16bb6fd6ac nrf: Specify connected bit in psel_bits 2021-03-29 00:58:57 +02:00
f36cbe5e0c nrf/spim: do not use PeripheralMutex 2021-03-29 00:58:57 +02:00
15eb46ec71 wip gpiote changels 2021-03-29 00:58:57 +02:00
ba7b3974bb nrf/gpiote: update to new gpio 2021-03-29 00:58:57 +02:00
3d3e770b8d nrf/gpio: add output drive config. 2021-03-29 00:58:57 +02:00
fcf6a63b5c nrf: add owned Peripherals struct, migrate gpio and spim 2021-03-29 00:58:57 +02:00
6ee9e012fc add embassy::main and implement for stm32f4 2021-03-27 17:27:39 -05:00
456e04c79f Simplify spim macros 2021-03-18 21:59:35 +01:00
b57489eb5d peripheralmutex: separate interrupt registration to own method. 2021-03-18 18:49:10 +01:00
0cd19a58c3 Remove free() from PeripheralMutex and all nrf drivers. 2021-03-18 18:49:10 +01:00
f248bb17ad Allow unused stuff in fmt.rs 2021-03-18 01:42:28 +01:00
3de2d5c5bd Implement FullDuplex for nrf spim 2021-03-18 01:27:30 +01:00
a9076636ac Do not export fmt macros.
This was introduced by accident by me struggling with the weird intra-crate macro importing system...
2021-03-17 22:50:27 +01:00
6ed1a87138 Update features for latest nightly. 2021-03-17 02:48:16 +01:00
15c3e78408 Move nRF's util into a separate crate 2021-03-07 20:15:40 -03:00
28b2365ef3 Update nrf-hal to v0.12.1
Use the `psel_bits()` method to reduce #[cfg] clutter
2021-03-05 09:25:46 +01:00
d4f2c6cf00 Remove cargo namespaced-features 2021-03-02 21:15:12 +01:00
9626aee7db Move traits to separate crate. 2021-03-02 00:32:23 +01:00
67a6c4f469 Merge pull request #59 from akiles/interrupt_ext
move most interrupt methods to InterruptExt extension trait. Fixes #35
2021-03-01 00:56:20 +01:00
45355f184a move most interrupt methods to InterruptExt extension trait. Fixes #35 2021-03-01 00:44:38 +01:00
a30c705fd7 nrf/spim: support all chips 2021-03-01 00:36:30 +01:00
255bf1aa6a nrf: add SPIM 2021-03-01 00:24:06 +01:00
8a641d1312 Fix warnings. 2021-03-01 00:23:54 +01:00
7433dc1039 Port qspi to PeripheralMutex 2021-02-28 22:05:37 +01:00
962fb95ff0 Optimize PeripheralMutex code size 2021-02-28 22:03:45 +01:00
da91779117 interrupt: Split set_handler context.
Since introducing the ctx pointer, the handler is now two words, so setting it can
race with the interrupt firing. On race it's possible for the new handler to be
alled with the old ctx pointer or viceversa.

Rather than documenting this, it's better to split the function in two to make it
obvious to the user that it's not atomic. The user can use a critical section, or
disable/enable the interrupt to avoid races if this is a concern.
2021-02-26 02:04:48 +01:00
11be9170ec Cleanup interrupt package naming. Fixes #40
The `interrupt` package previously tried to be drop-in compatible with the
`interrupt` package from PACs. THis meant that there was both a PAC-style enum
value `UARTE0` and an embassy-style owned `UARTE0Interrupt` type. This made
things VERY confusing.

This drops compatibility with the PAC, improving the names for embassy interrupts.
2021-02-26 01:55:27 +01:00
90476ef900 Fix some warnings. 2021-02-26 01:06:58 +01:00
f779ec4928 update defmt and defmt-rtt to 0.2.0 2021-02-24 08:44:23 +01:00
67c03e1a38 Merge pull request #47 from akiles/simpler-rtc
SImplify rtc overflow handling
2021-02-20 01:51:53 +01:00
91aaea761e Use Relaxed atomics with fence instead of SeqCst 2021-02-20 01:43:10 +01:00
03ddc949a0 PeripheralMutex should be Unpin 2021-02-20 00:27:24 +01:00
406f3b7cbf rtc: use SeqCst for periods. 2021-02-15 01:23:15 +01:00
9d5e2d3881 SImplify rtc overflow handling 2021-02-15 01:01:45 +01:00
7321ddb0b3 Update to cortex-m 0.7 2021-02-14 23:26:50 +01:00
b69f72e055 Get rid of some warnings 2021-02-13 21:41:36 -03:00
a7797a918d nrf/gpiote: new api: switch to owned structs, implement WaitForHigh/WaitForLow. 2021-02-04 23:56:17 +01:00
aeaa34d7a1 Executor API V2.
- It's no longer possible to call run() reentrantly from within a task (soundness issue)
- it's now possible to spawn Send tasks across threads (SendSpawner, #37)
2021-02-02 05:20:41 +01:00
6963b314a2 nrf/rtc: fix race when setting alarms too close to now. 2021-01-13 03:17:58 +01:00
5229a1991c nrf/rtc: use interrupt handler context for instance ptr 2021-01-13 03:17:42 +01:00
7b94e06306 nrf/buffered_uarte: fix stop not actually waiting for stop 2021-01-11 11:24:34 +01:00
41160c0d8d nrf/buffered_uarte: add set_baudrate 2021-01-11 10:40:37 +01:00
2616467377 nrf/buffered_uarte: stop on drop, add free() 2021-01-11 10:39:59 +01:00
e18d71dedc Fix build on nrf52832 2021-01-07 00:50:40 +01:00