aboutsummaryrefslogtreecommitdiff
path: root/embassy-nrf/src/buffered_uarte.rs
diff options
context:
space:
mode:
authorGrant Miller <[email protected]>2022-07-03 16:16:10 -0500
committerDario Nieuwenhuis <[email protected]>2022-07-23 01:33:22 +0200
commit65a82d02d17fc491246eae219f416e565719c0ac (patch)
tree1d4842d73031529f018d6b96a84c090e0fb3eb82 /embassy-nrf/src/buffered_uarte.rs
parentffbd9363f2a52fd27c81bbfbbe8e0e605a1ece86 (diff)
WIP: Make unborrow safe to use
Diffstat (limited to 'embassy-nrf/src/buffered_uarte.rs')
-rw-r--r--embassy-nrf/src/buffered_uarte.rs9
1 files changed, 6 insertions, 3 deletions
diff --git a/embassy-nrf/src/buffered_uarte.rs b/embassy-nrf/src/buffered_uarte.rs
index 4fc78b95d..d251ce347 100644
--- a/embassy-nrf/src/buffered_uarte.rs
+++ b/embassy-nrf/src/buffered_uarte.rs
@@ -147,7 +147,8 @@ impl<'d, U: UarteInstance, T: TimerInstance> BufferedUarte<'d, U, T> {
147 timer.cc(0).short_compare_stop(); 147 timer.cc(0).short_compare_stop();
148 148
149 let mut ppi_ch1 = Ppi::new_one_to_two( 149 let mut ppi_ch1 = Ppi::new_one_to_two(
150 ppi_ch1.degrade(), 150 //TODO: Avoid into_inner?
151 unsafe { ppi_ch1.into_inner() }.degrade(),
151 Event::from_reg(&r.events_rxdrdy), 152 Event::from_reg(&r.events_rxdrdy),
152 timer.task_clear(), 153 timer.task_clear(),
153 timer.task_start(), 154 timer.task_start(),
@@ -155,14 +156,16 @@ impl<'d, U: UarteInstance, T: TimerInstance> BufferedUarte<'d, U, T> {
155 ppi_ch1.enable(); 156 ppi_ch1.enable();
156 157
157 let mut ppi_ch2 = Ppi::new_one_to_one( 158 let mut ppi_ch2 = Ppi::new_one_to_one(
158 ppi_ch2.degrade(), 159 //TODO: Avoid into_inner?
160 unsafe { ppi_ch2.into_inner() }.degrade(),
159 timer.cc(0).event_compare(), 161 timer.cc(0).event_compare(),
160 Task::from_reg(&r.tasks_stoprx), 162 Task::from_reg(&r.tasks_stoprx),
161 ); 163 );
162 ppi_ch2.enable(); 164 ppi_ch2.enable();
163 165
164 Self { 166 Self {
165 inner: PeripheralMutex::new(irq, &mut state.0, move || StateInner { 167 //TODO: Avoid into_inner?
168 inner: PeripheralMutex::new(unsafe { irq.into_inner() }, &mut state.0, move || StateInner {
166 phantom: PhantomData, 169 phantom: PhantomData,
167 timer, 170 timer,
168 _ppi_ch1: ppi_ch1, 171 _ppi_ch1: ppi_ch1,