Commit Graph

4833 Commits

Author SHA1 Message Date
aae0431d31 stm32: Clear possible set flags after disabling DMA 2021-07-17 16:59:35 -03:00
59953b5b5e Merge pull request #295 from embassy-rs/all_dma
stm32: impl dma for all chips
2021-07-17 08:32:31 +02:00
d7176da37c stm32/examples: update DMA channel names 2021-07-17 08:04:33 +02:00
36be877ba3 stm32/dma: only set TRBUFF in DMAv1 (H7) 2021-07-17 08:01:20 +02:00
3655048e0f stm32/dma: add MuxChannel trait to distinguish DMAMUX1 and DMAMUX2 channels. 2021-07-17 07:54:16 +02:00
54b5012c56 stm32/dma: update codegen+macrotables for new stm32-data 2021-07-17 07:35:59 +02:00
dff4b42a33 stm32/dma: Fix macrotable column count not matching in DMAMUX-less BDMAv1. 2021-07-17 04:54:34 +02:00
01cc733c61 Prep for new stm32-data with dmamux differentiation, but not yet using. 2021-07-16 15:44:22 -04:00
0119ea809d Get DMA on H7 working, add usart_dma example for H7. 2021-07-16 14:41:20 -04:00
1254e99be1 Be able to scrub out BDMA-centric IRQs.
Further refine distinction between DMA and BDMA interrupts in the table.
2021-07-16 14:41:20 -04:00
ae948415a7 stm32/dma: disable after finishing 2021-07-16 14:41:20 -04:00
d0f2dc3abd Fix rustfmt 2021-07-16 14:41:20 -04:00
63a0e188ea stm32/dma: fix h7 impls 2021-07-16 14:41:20 -04:00
2ee20f5dcb Update vscode settings. 2021-07-16 14:41:20 -04:00
3d1391ef2d stm32/dma: impl all variants 2021-07-16 14:41:20 -04:00
69fb1b5418 Merge pull request #297 from embassy-rs/h7-smps
stm32/pwr: add initial H7 SMPS support
2021-07-16 16:22:21 +02:00
1b42b30201 stm32/pwr: add initial H7 SMPS support 2021-07-16 01:17:45 +02:00
7ed43cd843 Merge pull request #296 from thalesfragoso/f0-dmarst
Allow for RccPeripheral without reset field and add F0 example
2021-07-15 21:23:14 +02:00
697f93ad42 stm32: Add F0 example 2021-07-15 13:50:39 -03:00
2f08c7ced5 stm32: Allow for RccPeripheral without reset field
This fix build on F0, since it doesn't have DMARST. This change makes
RccPeripheral::reset a no-op on peripherals where a reset field couldn't
be found
2021-07-15 13:25:51 -03:00
e06628cdfb Update stm32-data 2021-07-14 23:39:50 -03:00
aa8c7f990f i2c-v2: Implement write_vectored 2021-07-14 23:39:50 -03:00
f2e78e9c34 i2c-v2: Correct number of chunks calculation 2021-07-14 23:39:50 -03:00
8c7f8a61e3 i2c-v2: Support transfers with more than 255 bytes 2021-07-14 23:39:50 -03:00
72d6f79ec7 Feature no longer required given 1.55 2021-07-15 12:31:53 +10:00
3778f55d80 Provides a cleaner construction of the channel with the common "new" naming 2021-07-15 12:31:53 +10:00
6f78527aeb Partial borrow for receiver to enforce compile-time mpssc 2021-07-15 12:31:53 +10:00
076198a3b9 Small tidy up 2021-07-15 12:31:53 +10:00
d711e8a82c Eliminates unsoundness by using an UnsafeCell for sharing the channel 2021-07-15 12:31:53 +10:00
babee7f32a Tighten sender/receiver bounds 2021-07-15 12:31:53 +10:00
d86892ca56 Removed the closing state as it was not required 2021-07-15 12:31:53 +10:00
a247fa4f2c Explicitly drop non consumed items 2021-07-15 12:31:53 +10:00
7c723d2bfd Removed UB code around the send future 2021-07-15 12:31:52 +10:00
baab52d40c Avoid a race condition by reducing the locks to one 2021-07-15 12:31:52 +10:00
5a5795ef2b NoopMutex does not require an UnsafeCell 2021-07-15 12:31:52 +10:00
9b5f2e465b Tidying 2021-07-15 12:31:52 +10:00
108cffcba0 Migrated to the waker registration functionality for Embassy specific optimisations 2021-07-15 12:31:52 +10:00
dcd0c38109 Return a new future each time recv is called 2021-07-15 12:31:52 +10:00
f159beec1c Use of a NoopMutex 2021-07-15 12:31:52 +10:00
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
56b3e927fe ChannelState should be private 2021-07-15 12:31:52 +10:00
3fdf61c819 Constraint the use of ChannelCell to just channels 2021-07-15 12:31:52 +10:00
ae62948d6c Replace UnsafeCell
Using a new ChannelCell so that there's no leaking of the abstraction
2021-07-15 12:31:52 +10:00
1b49acc2f7 Fixed some clippy warnings 2021-07-15 12:31:52 +10:00
a156f72bfb Improves the representation of side effects 2021-07-15 12:31:52 +10:00
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
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
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
4361cb15f1 stm32/usart: merge v2 and v3 (they're identical) 2021-07-15 00:52:37 +02:00
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