From f7962094780b1e2670e87ebe27d3870eca8349f2 Mon Sep 17 00:00:00 2001 From: Yifan Wu Date: Mon, 24 Jan 2022 15:43:57 -0800 Subject: [PATCH] Add boards/ && cargo clippy&fmt --- os/Cargo.toml | 1 + os/src/boards/k210.rs | 1 + os/src/boards/qemu.rs | 1 + os/src/config.rs | 3 +++ os/src/main.rs | 6 ++++++ os/src/task/mod.rs | 7 ++++--- 6 files changed, 16 insertions(+), 3 deletions(-) create mode 100644 os/src/boards/k210.rs create mode 100644 os/src/boards/qemu.rs diff --git a/os/Cargo.toml b/os/Cargo.toml index b53bb700..c98e71ef 100644 --- a/os/Cargo.toml +++ b/os/Cargo.toml @@ -9,6 +9,7 @@ edition = "2018" [dependencies] riscv = { git = "https://github.com/rcore-os/riscv", features = ["inline-asm"] } lazy_static = { version = "1.4.0", features = ["spin_no_std"] } +cfg-if = { version = "1.0.0" } [features] board_qemu = [] diff --git a/os/src/boards/k210.rs b/os/src/boards/k210.rs new file mode 100644 index 00000000..4fea2d11 --- /dev/null +++ b/os/src/boards/k210.rs @@ -0,0 +1 @@ +pub const CLOCK_FREQ: usize = 403000000 / 62; diff --git a/os/src/boards/qemu.rs b/os/src/boards/qemu.rs new file mode 100644 index 00000000..98874fbf --- /dev/null +++ b/os/src/boards/qemu.rs @@ -0,0 +1 @@ +pub const CLOCK_FREQ: usize = 12500000; diff --git a/os/src/config.rs b/os/src/config.rs index fe3fb104..4294ff6f 100644 --- a/os/src/config.rs +++ b/os/src/config.rs @@ -4,8 +4,11 @@ pub const MAX_APP_NUM: usize = 4; pub const APP_BASE_ADDRESS: usize = 0x80400000; pub const APP_SIZE_LIMIT: usize = 0x20000; +/* #[cfg(feature = "board_k210")] pub const CLOCK_FREQ: usize = 403000000 / 62; #[cfg(feature = "board_qemu")] pub const CLOCK_FREQ: usize = 12500000; +*/ +pub use crate::board::CLOCK_FREQ; diff --git a/os/src/main.rs b/os/src/main.rs index cd2cecaa..78c41810 100644 --- a/os/src/main.rs +++ b/os/src/main.rs @@ -4,6 +4,12 @@ use core::arch::global_asm; +#[cfg(feature = "board_k210")] +#[path = "boards/k210.rs"] +mod board; +#[cfg(not(any(feature = "board_k210")))] +#[path = "boards/qemu.rs"] +mod board; #[macro_use] mod console; mod config; diff --git a/os/src/task/mod.rs b/os/src/task/mod.rs index 7d0ccb5d..ca3ca2f6 100644 --- a/os/src/task/mod.rs +++ b/os/src/task/mod.rs @@ -1,5 +1,6 @@ mod context; mod switch; +#[allow(clippy::module_inception)] mod task; use crate::config::MAX_APP_NUM; @@ -28,9 +29,9 @@ lazy_static! { task_cx: TaskContext::zero_init(), task_status: TaskStatus::UnInit, }; MAX_APP_NUM]; - for i in 0..num_app { - tasks[i].task_cx = TaskContext::goto_restore(init_app_cx(i)); - tasks[i].task_status = TaskStatus::Ready; + for (i, task) in tasks.iter_mut().enumerate() { + task.task_cx = TaskContext::goto_restore(init_app_cx(i)); + task.task_status = TaskStatus::Ready; } TaskManager { num_app,