* Alright, so this impl would be wrong? ```rust pub fn write_mem(ptr: *const u32, data: &mut [u8]) { connect_probe().unwrap(); let mut sess = PROBE_SESSION .get() .expect("Please call connect_probe before using cortex_m_proxy") .lock() .unwrap(); sess.core(0) .unwrap() .write_8(ptr as u32 as u64, data) .unwrap(); println!("Write {ptr:?}: {data:#04x?}"); sess.core(0).unwrap().read(ptr as u32 as u64, data).unwrap(); println!("Read after write {ptr:?}: {data:#04x?}"); } pub fn write_mem_as(ptr: *const u32, data: &mut T) { let data = data as *mut _ as *mut u8; let data_slice = unsafe { core::slice::from_raw_parts_mut(data, core::mem::size_of::()) }; write_mem(ptr, data_slice); } pub fn read_mem(ptr: *const u32, data: &mut [u8]) { connect_probe().unwrap(); let mut sess = PROBE_SESSION .get() .expect("Please call connect_probe before using cortex_m_proxy") .lock() .unwrap(); sess.core(0).unwrap().read(ptr as u32 as u64, data).unwrap(); println!("Read {ptr:?}: {data:#04x?}"); } pub unsafe fn read_mem_as(ptr: *const u32) -> T { let mut data: MaybeUninit = MaybeUninit::uninit(); let data_slice = unsafe { core::slice::from_raw_parts_mut(&mut data as *mut _ as *mut u8, core::mem::size_of::()) }; read_mem(ptr, data_slice); unsafe { std::mem::transmute_copy(&data) } } ```