diff options
Diffstat (limited to 'embassy-stm32/src/sdmmc/mod.rs')
| -rw-r--r-- | embassy-stm32/src/sdmmc/mod.rs | 13 |
1 files changed, 7 insertions, 6 deletions
diff --git a/embassy-stm32/src/sdmmc/mod.rs b/embassy-stm32/src/sdmmc/mod.rs index e716fc348..cfe18ef52 100644 --- a/embassy-stm32/src/sdmmc/mod.rs +++ b/embassy-stm32/src/sdmmc/mod.rs | |||
| @@ -142,34 +142,34 @@ impl Default for Signalling { | |||
| 142 | 142 | ||
| 143 | const fn aligned_mut(x: &mut [u32]) -> &mut Aligned<A4, [u8]> { | 143 | const fn aligned_mut(x: &mut [u32]) -> &mut Aligned<A4, [u8]> { |
| 144 | let len = x.len() * 4; | 144 | let len = x.len() * 4; |
| 145 | unsafe { core::mem::transmute(slice::from_raw_parts_mut(x.as_mut_ptr() as _, len)) } | 145 | unsafe { core::mem::transmute(slice::from_raw_parts_mut(x.as_mut_ptr() as *mut u8, len)) } |
| 146 | } | 146 | } |
| 147 | 147 | ||
| 148 | const fn slice8_mut(x: &mut [u32]) -> &mut [u8] { | 148 | const fn slice8_mut(x: &mut [u32]) -> &mut [u8] { |
| 149 | let len = x.len() * 4; | 149 | let len = x.len() * 4; |
| 150 | unsafe { slice::from_raw_parts_mut(x.as_mut_ptr() as _, len) } | 150 | unsafe { slice::from_raw_parts_mut(x.as_mut_ptr() as *mut u8, len) } |
| 151 | } | 151 | } |
| 152 | 152 | ||
| 153 | #[allow(unused)] | 153 | #[allow(unused)] |
| 154 | const fn slice32_mut(x: &mut Aligned<A4, [u8]>) -> &mut [u32] { | 154 | const fn slice32_mut(x: &mut Aligned<A4, [u8]>) -> &mut [u32] { |
| 155 | let len = (size_of_val(x) + 4 - 1) / 4; | 155 | let len = (size_of_val(x) + 4 - 1) / 4; |
| 156 | unsafe { slice::from_raw_parts_mut(x as *mut Aligned<A4, [u8]> as *mut _, len) } | 156 | unsafe { slice::from_raw_parts_mut(x as *mut Aligned<A4, [u8]> as *mut u32, len) } |
| 157 | } | 157 | } |
| 158 | 158 | ||
| 159 | const fn aligned_ref(x: &[u32]) -> &Aligned<A4, [u8]> { | 159 | const fn aligned_ref(x: &[u32]) -> &Aligned<A4, [u8]> { |
| 160 | let len = x.len() * 4; | 160 | let len = x.len() * 4; |
| 161 | unsafe { core::mem::transmute(slice::from_raw_parts(x.as_ptr() as _, len)) } | 161 | unsafe { core::mem::transmute(slice::from_raw_parts(x.as_ptr() as *const u8, len)) } |
| 162 | } | 162 | } |
| 163 | 163 | ||
| 164 | const fn slice8_ref(x: &[u32]) -> &[u8] { | 164 | const fn slice8_ref(x: &[u32]) -> &[u8] { |
| 165 | let len = x.len() * 4; | 165 | let len = x.len() * 4; |
| 166 | unsafe { slice::from_raw_parts(x.as_ptr() as _, len) } | 166 | unsafe { slice::from_raw_parts(x.as_ptr() as *const u8, len) } |
| 167 | } | 167 | } |
| 168 | 168 | ||
| 169 | #[allow(unused)] | 169 | #[allow(unused)] |
| 170 | const fn slice32_ref(x: &Aligned<A4, [u8]>) -> &[u32] { | 170 | const fn slice32_ref(x: &Aligned<A4, [u8]>) -> &[u32] { |
| 171 | let len = (size_of_val(x) + 4 - 1) / 4; | 171 | let len = (size_of_val(x) + 4 - 1) / 4; |
| 172 | unsafe { slice::from_raw_parts(x as *const Aligned<A4, [u8]> as *const _, len) } | 172 | unsafe { slice::from_raw_parts(x as *const Aligned<A4, [u8]> as *const u32, len) } |
| 173 | } | 173 | } |
| 174 | 174 | ||
| 175 | /// Errors | 175 | /// Errors |
| @@ -1179,6 +1179,7 @@ impl<'d> Drop for Sdmmc<'d> { | |||
| 1179 | fn drop(&mut self) { | 1179 | fn drop(&mut self) { |
| 1180 | // T::Interrupt::disable(); | 1180 | // T::Interrupt::disable(); |
| 1181 | self.on_drop(); | 1181 | self.on_drop(); |
| 1182 | self.info.rcc.disable_without_stop(); | ||
| 1182 | 1183 | ||
| 1183 | critical_section::with(|_| { | 1184 | critical_section::with(|_| { |
| 1184 | self.clk.set_as_disconnected(); | 1185 | self.clk.set_as_disconnected(); |
