diff options
| author | Bob McWhirter <[email protected]> | 2021-07-12 14:53:19 -0400 |
|---|---|---|
| committer | Bob McWhirter <[email protected]> | 2021-07-13 10:09:35 -0400 |
| commit | 6534b63e01b1f7d16f62743f007a2e9c43f9ec56 (patch) | |
| tree | beef5e16abff42d74424e2a444c6bf4931290965 | |
| parent | 0befa103676693ebbb52a5d38a0b3bb5e4d42f71 (diff) | |
Simplify some macros around dmamux peripheral channels.
| -rw-r--r-- | embassy-stm32/src/dmamux/mod.rs | 51 |
1 files changed, 19 insertions, 32 deletions
diff --git a/embassy-stm32/src/dmamux/mod.rs b/embassy-stm32/src/dmamux/mod.rs index 0f3fb9a8f..f6625146e 100644 --- a/embassy-stm32/src/dmamux/mod.rs +++ b/embassy-stm32/src/dmamux/mod.rs | |||
| @@ -101,53 +101,40 @@ peripherals! { | |||
| 101 | } | 101 | } |
| 102 | 102 | ||
| 103 | #[allow(unused)] | 103 | #[allow(unused)] |
| 104 | macro_rules! impl_peripheral_channel { | ||
| 105 | ($channel_peri:ident, $direction:ident, $peri:ident, $request:expr) => { | ||
| 106 | impl sealed::PeripheralChannel<peripherals::$peri, $direction> | ||
| 107 | for peripherals::$channel_peri | ||
| 108 | { | ||
| 109 | fn request(&self) -> u8 { | ||
| 110 | $request | ||
| 111 | } | ||
| 112 | } | ||
| 113 | |||
| 114 | impl PeripheralChannel<peripherals::$peri, $direction> for peripherals::$channel_peri {} | ||
| 115 | }; | ||
| 116 | } | ||
| 117 | |||
| 118 | #[allow(unused)] | ||
| 104 | macro_rules! impl_usart_dma_requests { | 119 | macro_rules! impl_usart_dma_requests { |
| 105 | ($channel_peri:ident, $dma_peri:ident, $channel_num:expr) => { | 120 | ($channel_peri:ident, $dma_peri:ident, $channel_num:expr) => { |
| 106 | dma_requests! { | 121 | dma_requests! { |
| 107 | // TODO: DRY this up. | ||
| 108 | (usart, $peri:ident, RX, $request:expr) => { | 122 | (usart, $peri:ident, RX, $request:expr) => { |
| 109 | impl sealed::PeripheralChannel<peripherals::$peri, P2M> for peripherals::$channel_peri { | 123 | impl_peripheral_channel($channel_peri, P2M, $peri, $request); |
| 110 | fn request(&self) -> u8 { | ||
| 111 | $request | ||
| 112 | } | ||
| 113 | } | ||
| 114 | |||
| 115 | impl PeripheralChannel<peripherals::$peri, P2M> for peripherals::$channel_peri { } | ||
| 116 | |||
| 117 | }; | 124 | }; |
| 118 | 125 | ||
| 119 | (usart, $peri:ident, TX, $request:expr) => { | 126 | (usart, $peri:ident, TX, $request:expr) => { |
| 120 | impl sealed::PeripheralChannel<peripherals::$peri, M2P> for peripherals::$channel_peri { | 127 | impl_peripheral_channel($channel_peri, M2P, $peri, $request); |
| 121 | fn request(&self) -> u8 { | ||
| 122 | $request | ||
| 123 | } | ||
| 124 | } | ||
| 125 | |||
| 126 | impl PeripheralChannel<peripherals::$peri, M2P> for peripherals::$channel_peri { } | ||
| 127 | |||
| 128 | }; | 128 | }; |
| 129 | 129 | ||
| 130 | (uart, $peri:ident, TX, $request:expr) => { | 130 | (uart, $peri:ident, TX, $request:expr) => { |
| 131 | impl sealed::PeripheralChannel<peripherals::$peri, P2M> for peripherals::$channel_peri { | 131 | impl_peripheral_channel($channel_peri, P2M, $peri, $request); |
| 132 | fn request(&self) -> u8 { | ||
| 133 | $request | ||
| 134 | } | ||
| 135 | } | ||
| 136 | |||
| 137 | impl PeripheralChannel<peripherals::$peri, P2M> for peripherals::$channel_peri { } | ||
| 138 | }; | 132 | }; |
| 139 | 133 | ||
| 140 | (uart, $peri:ident, RX, $request:expr) => { | 134 | (uart, $peri:ident, RX, $request:expr) => { |
| 141 | impl sealed::PeripheralChannel<peripherals::$peri, M2P> for peripherals::$channel_peri { | 135 | impl_peripheral_channel($channel_peri, M2P, $peri, $request); |
| 142 | fn request(&self) -> u8 { | ||
| 143 | $request | ||
| 144 | } | ||
| 145 | } | ||
| 146 | |||
| 147 | impl PeripheralChannel<peripherals::$peri, M2P> for peripherals::$channel_peri { } | ||
| 148 | }; | 136 | }; |
| 149 | } | 137 | } |
| 150 | |||
| 151 | }; | 138 | }; |
| 152 | } | 139 | } |
| 153 | 140 | ||
