diff --git a/Cargo.lock b/Cargo.lock index cea3274c..45f12028 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -450,6 +450,7 @@ name = "rcore-console" version = "0.0.0" dependencies = [ "log", + "riscv", "spin 0.9.8", ] diff --git a/console/Cargo.toml b/console/Cargo.toml index 18bac648..7610e36b 100644 --- a/console/Cargo.toml +++ b/console/Cargo.toml @@ -13,4 +13,5 @@ categories = ["no-std"] [dependencies] log = "0.4.17" +riscv = "0.10.1" spin = "0.9" diff --git a/console/src/lib.rs b/console/src/lib.rs index 2aaad280..3fb15ae8 100644 --- a/console/src/lib.rs +++ b/console/src/lib.rs @@ -6,6 +6,7 @@ use core::{ fmt::{self, Write}, str::FromStr, + time::Duration, }; use spin::Once; @@ -96,7 +97,7 @@ struct Logger; impl Write for Logger { #[inline] fn write_str(&mut self, s: &str) -> Result<(), fmt::Error> { - let _ = CONSOLE.get().unwrap().put_str(s); + CONSOLE.get().unwrap().put_str(s); Ok(()) } } @@ -118,8 +119,11 @@ impl log::Log for Logger { Debug => 32, Trace => 90, }; + let time = Duration::from_nanos(riscv::register::time::read64() * 100); println!( - "\x1b[{color_code}m[{:>5}] {}\x1b[0m", + "\x1b[{color_code}m[{:>3}.{:03}s] [{:>5}] {}\x1b[0m", + time.as_secs(), + time.subsec_millis(), record.level(), record.args(), );