diff --git a/bootloader/rustsbi-k210.bin b/bootloader/rustsbi-k210.bin index 58d1c1a7..27987d68 100755 Binary files a/bootloader/rustsbi-k210.bin and b/bootloader/rustsbi-k210.bin differ diff --git a/bootloader/rustsbi-qemu.bin b/bootloader/rustsbi-qemu.bin index f293ced7..ddbf336a 100755 Binary files a/bootloader/rustsbi-qemu.bin and b/bootloader/rustsbi-qemu.bin differ diff --git a/os/src/drivers/block/virtio_blk.rs b/os/src/drivers/block/virtio_blk.rs index ed344342..6b386190 100644 --- a/os/src/drivers/block/virtio_blk.rs +++ b/os/src/drivers/block/virtio_blk.rs @@ -22,7 +22,7 @@ const VIRTIO0: usize = 0x10001000; pub struct VirtIOBlock(UPSafeCell>); lazy_static! { - static ref QUEUE_FRAMES: UPSafeCell> = unsafe { + static ref QUEUE_FRAMES: UPSafeCell> = unsafe { UPSafeCell::new(Vec::new()) }; } diff --git a/os/src/trap/mod.rs b/os/src/trap/mod.rs index d04e1aa4..01606fbd 100644 --- a/os/src/trap/mod.rs +++ b/os/src/trap/mod.rs @@ -116,7 +116,9 @@ pub fn trap_return() -> ! { #[no_mangle] pub fn trap_from_kernel() -> ! { + use riscv::register::sepc; + println!("stval = {:#x}, sepc = {:#x}", stval::read(), sepc::read()); panic!("a trap {:?} from kernel!", scause::read().cause()); } -pub use context::{TrapContext}; +pub use context::TrapContext; diff --git a/user/src/bin/huge_write.rs b/user/src/bin/huge_write.rs index 25f92943..f9dafa17 100644 --- a/user/src/bin/huge_write.rs +++ b/user/src/bin/huge_write.rs @@ -24,13 +24,13 @@ pub fn main() -> i32 { } let f = f as usize; let start = get_time(); - let size_mb = 5usize; + let size_mb = 1usize; for _ in 0..1024*size_mb { write(f, &buffer); } close(f); let time_ms = (get_time() - start) as usize; let speed_kbs = size_mb * 1000000 / time_ms; - println!("time cost = {}ms, write speed = {}KiB/s", time_ms, speed_kbs); + println!("{}MiB written, time cost = {}ms, write speed = {}KiB/s", size_mb, time_ms, speed_kbs); 0 } \ No newline at end of file