Commit Graph

5607 Commits

Author SHA1 Message Date
huntc
6f78527aeb Partial borrow for receiver to enforce compile-time mpssc 2021-07-15 12:31:53 +10:00
huntc
076198a3b9 Small tidy up 2021-07-15 12:31:53 +10:00
huntc
d711e8a82c Eliminates unsoundness by using an UnsafeCell for sharing the channel 2021-07-15 12:31:53 +10:00
huntc
babee7f32a Tighten sender/receiver bounds 2021-07-15 12:31:53 +10:00
huntc
d86892ca56 Removed the closing state as it was not required 2021-07-15 12:31:53 +10:00
huntc
a247fa4f2c Explicitly drop non consumed items 2021-07-15 12:31:53 +10:00
huntc
7c723d2bfd Removed UB code around the send future 2021-07-15 12:31:52 +10:00
huntc
baab52d40c Avoid a race condition by reducing the locks to one 2021-07-15 12:31:52 +10:00
huntc
5a5795ef2b NoopMutex does not require an UnsafeCell 2021-07-15 12:31:52 +10:00
huntc
9b5f2e465b Tidying 2021-07-15 12:31:52 +10:00
huntc
108cffcba0 Migrated to the waker registration functionality for Embassy specific optimisations 2021-07-15 12:31:52 +10:00
huntc
dcd0c38109 Return a new future each time recv is called 2021-07-15 12:31:52 +10:00
huntc
f159beec1c Use of a NoopMutex 2021-07-15 12:31:52 +10:00
huntc
5f87c7808c Remove the cell and trait
At the expense of exposing the channel types again. We do this as we want to avoid using dyn traits given their overhead for embedded environments.
2021-07-15 12:31:52 +10:00
huntc
56b3e927fe ChannelState should be private 2021-07-15 12:31:52 +10:00
huntc
3fdf61c819 Constraint the use of ChannelCell to just channels 2021-07-15 12:31:52 +10:00
huntc
ae62948d6c Replace UnsafeCell
Using a new ChannelCell so that there's no leaking of the abstraction
2021-07-15 12:31:52 +10:00
huntc
1b49acc2f7 Fixed some clippy warnings 2021-07-15 12:31:52 +10:00
huntc
a156f72bfb Improves the representation of side effects 2021-07-15 12:31:52 +10:00
huntc
816b78c0d9 Reduces the types on sender and receiver
In exchange for an UnsafeCell being passed into split
2021-07-15 12:31:52 +10:00
huntc
1b9d5e5071 Multi Producer Single Consumer channel
An MPSC inspired by Tokio and Crossbeam. The MPSC is designed to support both single and multi core processors, with only single core implemented at this time. The allocation of the channel’s buffer is inspired by the const generic parameters that Heapless provides.
2021-07-15 12:31:52 +10:00
Dario Nieuwenhuis
8a172ac123
Merge pull request #294 from embassy-rs/usart-merge
stm32/usart: merge v2 and v3 (they're identical)
2021-07-15 01:02:12 +02:00
Dario Nieuwenhuis
4361cb15f1 stm32/usart: merge v2 and v3 (they're identical) 2021-07-15 00:52:37 +02:00
Dario Nieuwenhuis
d71be45a91
Merge pull request #293 from embassy-rs/pac-reexport
all hals: reexport PAC if `unstable-pac` feature is set.
2021-07-15 00:42:59 +02:00
Dario Nieuwenhuis
71c8d7aa7d stm32l4/examples: remove old-pac uses. 2021-07-15 00:37:00 +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
6444066589 Add L4 examples to workspace example 2021-07-14 22:00:49 +02:00
Dario Nieuwenhuis
7dd7f391fc Fix OOTB workspace issues with embassy-net 2021-07-14 21:58:07 +02:00
Dario Nieuwenhuis
2d9e2908df
Merge pull request #292 from embassy-rs/update-nightly
Update nightly
2021-07-14 21:32:33 +02:00
Dario Nieuwenhuis
5061625068 Update nightly 2021-07-14 21:17:29 +02:00
Bob McWhirter
e4325cb8fe
Merge pull request #290 from bobmcwhirter/async-usart
First shot at async dma usart for stm32.
2021-07-14 15:07:36 -04:00
Bob McWhirter
21e94972dc Fix more warnings and examples. 2021-07-14 14:55:20 -04:00
Bob McWhirter
3fd9023fce Fix the h7 example. 2021-07-14 14:45:54 -04:00
Bob McWhirter
43cb8de434 Remove gratuitous NoDmaMarker. 2021-07-14 14:37:42 -04:00
Bob McWhirter
38b1359c40 Remove pub and cfg's, since they will be implied by the existance of TxDma<T> in theory. 2021-07-14 14:35:03 -04:00
Bob McWhirter
a88f0028ef First shot at async dma usart for stm32. 2021-07-14 14:14:14 -04:00
Thales
667b259d53
Merge pull request #289 from bobmcwhirter/data-fix
Update data.
2021-07-14 12:32:17 -03:00
Bob McWhirter
95b42f9523 Update data. 2021-07-14 11:25:46 -04:00
Bob McWhirter
b6eb5dcf2f
Merge pull request #282 from bobmcwhirter/dmamux_thales
BDMA + DMAMUX + H7 with major help from @thalesfragoso
2021-07-13 13:33:38 -04:00
Bob McWhirter
6e0e83cfd9 More conversions to associated consts. 2021-07-13 10:56:35 -04:00
Bob McWhirter
604a25ec5d Reduce number of traits and impls. 2021-07-13 10:46:31 -04:00
Bob McWhirter
8fbea38a5b Simplify some of the bdma macros.
Make more things associated consts.
2021-07-13 10:09:35 -04:00
Bob McWhirter
92247369e7 Remove some unused traits.
Move some fns to associated consts.
2021-07-13 10:09:35 -04:00
Bob McWhirter
c39ac201ff Update for stm32-data. 2021-07-13 10:09:35 -04:00
Bob McWhirter
2e10ab2e5c Let's count channels per DMA peripheral, shall we now? 2021-07-13 10:09:35 -04:00
Bob McWhirter
b0b61d99e6 Macros do indeed require a ! to invoke. 2021-07-13 10:09:35 -04:00
Bob McWhirter
6534b63e01 Simplify some macros around dmamux peripheral channels. 2021-07-13 10:09:35 -04:00
Bob McWhirter
0befa10367 Trivial to force CI to do it's thing. 2021-07-13 10:09:35 -04:00
Bob McWhirter
06e899b14c Adjust to DMA1EN in the rcc for l0. 2021-07-13 10:09:35 -04:00
Bob McWhirter
d31e30f382 Undo special-casing FOO1 -> FOO in RCC searching. 2021-07-13 10:09:35 -04:00