diff options
| author | Dario Nieuwenhuis <[email protected]> | 2021-08-02 20:13:41 +0200 |
|---|---|---|
| committer | Dario Nieuwenhuis <[email protected]> | 2021-08-02 20:13:41 +0200 |
| commit | 3f28bb6c77de3d8ecbb6d401f107586f24e416a4 (patch) | |
| tree | da16008285a54746a07bdf7881a4fce4cbf8d23e /embassy-nrf/src | |
| parent | e238079d7d921cab589eb6106059d4fb0b12ce1c (diff) | |
common: Initialize PeripheralMutex state with closure to ensure it's done in-place.
Diffstat (limited to 'embassy-nrf/src')
| -rw-r--r-- | embassy-nrf/src/buffered_uarte.rs | 30 |
1 files changed, 14 insertions, 16 deletions
diff --git a/embassy-nrf/src/buffered_uarte.rs b/embassy-nrf/src/buffered_uarte.rs index 642c30185..048c36d39 100644 --- a/embassy-nrf/src/buffered_uarte.rs +++ b/embassy-nrf/src/buffered_uarte.rs | |||
| @@ -155,23 +155,21 @@ impl<'d, U: UarteInstance, T: TimerInstance> BufferedUarte<'d, U, T> { | |||
| 155 | ppi_ch2.set_task(Task::from_reg(&r.tasks_stoprx)); | 155 | ppi_ch2.set_task(Task::from_reg(&r.tasks_stoprx)); |
| 156 | ppi_ch2.enable(); | 156 | ppi_ch2.enable(); |
| 157 | 157 | ||
| 158 | let initial_state = StateInner { | ||
| 159 | phantom: PhantomData, | ||
| 160 | timer, | ||
| 161 | _ppi_ch1: ppi_ch1, | ||
| 162 | _ppi_ch2: ppi_ch2, | ||
| 163 | |||
| 164 | rx: RingBuffer::new(rx_buffer), | ||
| 165 | rx_state: RxState::Idle, | ||
| 166 | rx_waker: WakerRegistration::new(), | ||
| 167 | |||
| 168 | tx: RingBuffer::new(tx_buffer), | ||
| 169 | tx_state: TxState::Idle, | ||
| 170 | tx_waker: WakerRegistration::new(), | ||
| 171 | }; | ||
| 172 | |||
| 173 | Self { | 158 | Self { |
| 174 | inner: PeripheralMutex::new_unchecked(&mut state.0, initial_state, irq), | 159 | inner: PeripheralMutex::new_unchecked(irq, &mut state.0, move || StateInner { |
| 160 | phantom: PhantomData, | ||
| 161 | timer, | ||
| 162 | _ppi_ch1: ppi_ch1, | ||
| 163 | _ppi_ch2: ppi_ch2, | ||
| 164 | |||
| 165 | rx: RingBuffer::new(rx_buffer), | ||
| 166 | rx_state: RxState::Idle, | ||
| 167 | rx_waker: WakerRegistration::new(), | ||
| 168 | |||
| 169 | tx: RingBuffer::new(tx_buffer), | ||
| 170 | tx_state: TxState::Idle, | ||
| 171 | tx_waker: WakerRegistration::new(), | ||
| 172 | }), | ||
| 175 | } | 173 | } |
| 176 | } | 174 | } |
| 177 | 175 | ||
