diff --git a/os/src/main.rs b/os/src/main.rs index b43c79ad..936986f3 100644 --- a/os/src/main.rs +++ b/os/src/main.rs @@ -21,9 +21,12 @@ fn clear_bss() { fn sbss(); fn ebss(); } - (sbss as usize..ebss as usize).for_each(|a| { - unsafe { (a as *mut u8).write_volatile(0) } - }); + unsafe { + core::slice::from_raw_parts_mut( + sbss as usize as *mut u8, + ebss as usize - sbss as usize, + ).fill(0); + } } #[no_mangle]