From d543a15f187e196081d4901a9c07d0a45c2e2736 Mon Sep 17 00:00:00 2001 From: zhangxinyu <840317537@qq.com> Date: Thu, 1 Jun 2023 15:35:13 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E6=B3=A8=E9=87=8A=E8=AF=B4?= =?UTF-8?q?=E6=98=8E?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ch4/os/src/config.rs | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/ch4/os/src/config.rs b/ch4/os/src/config.rs index 87e5fc2..08d870f 100644 --- a/ch4/os/src/config.rs +++ b/ch4/os/src/config.rs @@ -1,5 +1,3 @@ -pub const APP_BASE_ADDRESS: usize = 0x80400000; // 载入的app的起始的地址 -pub const APP_SIZE_LIMIT: usize = 0x20000; // app的最大的二进制文件能够使用的大小 pub const MAX_APP_NUM: usize = 10; // 支持最大的用户应用数量 pub const KERNEL_HEAP_SIZE: usize = 0x30_0000; // 内核的堆大小 3M pub const PAGE_SIZE_BITS: usize = 0xc; // 页内偏移的位宽(也就是每页的大小) @@ -16,8 +14,8 @@ pub use crate::board::*; -/// 得到 "用户程序的内核栈" 的在 内核本身栈中的虚拟位置 -/// 这个在 次高页的下面的某个位置 +/// 得到 "用户程序的内核栈" 的在 内核本身地址空间 中的虚拟位置(当然由于恒等映射其实也是实际的物理地址) +/// 这个在 跳板的下面的某个位置 /// 每个用户除了分配 KERNEL_STACK_SIZE 大小外, 还额外 增加 一个PAGE_SIZE 放在比栈底要高的地址 用来隔离每个用户内核栈 pub fn kernel_stack_position(app_id: usize) -> (usize, usize) { let top = TRAMPOLINE - app_id * (KERNEL_STACK_SIZE + PAGE_SIZE);