ch4 ok on qemu/k210 && Remove some comments.
This commit is contained in:
parent
485db04a2b
commit
9e861c2819
8 changed files with 0 additions and 48 deletions
|
@ -31,7 +31,6 @@ lazy_static! {
|
|||
println!("num_app = {}", num_app);
|
||||
let mut tasks: Vec<TaskControlBlock> = Vec::new();
|
||||
for i in 0..num_app {
|
||||
println!("creating TCB #{}", i);
|
||||
tasks.push(TaskControlBlock::new(
|
||||
get_app_data(i),
|
||||
i,
|
||||
|
@ -49,10 +48,8 @@ lazy_static! {
|
|||
|
||||
impl TaskManager {
|
||||
fn run_first_task(&self) {
|
||||
println!("into TaskManager::run_first_task");
|
||||
self.inner.borrow_mut().tasks[0].task_status = TaskStatus::Running;
|
||||
let next_task_cx = self.inner.borrow().tasks[0].get_task_cx_ptr2();
|
||||
println!("next_task_cx={:p} {:#x}", next_task_cx, unsafe { next_task_cx.read_volatile() });
|
||||
let _unused: usize = 0;
|
||||
unsafe {
|
||||
__switch(
|
||||
|
|
|
@ -22,20 +22,15 @@ impl TaskControlBlock {
|
|||
self.memory_set.token()
|
||||
}
|
||||
pub fn new(elf_data: &[u8], app_id: usize) -> Self {
|
||||
//println!("into TCB::new");
|
||||
// memory_set with elf program headers/trampoline/trap context/user stack
|
||||
let (memory_set, user_sp, entry_point) = MemorySet::from_elf(elf_data);
|
||||
//println!("user_sp={:#x},entry_point={:#}", user_sp, entry_point);
|
||||
let trap_cx_ppn = memory_set
|
||||
.translate(VirtAddr::from(TRAP_CONTEXT).into())
|
||||
.unwrap()
|
||||
.ppn();
|
||||
//println!("trap_cx_ppn={:?}", trap_cx_ppn);
|
||||
let task_status = TaskStatus::Ready;
|
||||
// map a kernel-stack in kernel space
|
||||
//println!("mapping kernel-stack!");
|
||||
let (kernel_stack_bottom, kernel_stack_top) = kernel_stack_position(app_id);
|
||||
//println!("kernel_stack={:#x},{:#x}", kernel_stack_bottom, kernel_stack_top);
|
||||
KERNEL_SPACE
|
||||
.lock()
|
||||
.insert_framed_area(
|
||||
|
@ -44,10 +39,7 @@ impl TaskControlBlock {
|
|||
MapPermission::R | MapPermission::W,
|
||||
);
|
||||
let task_cx_ptr = (kernel_stack_top - core::mem::size_of::<TaskContext>()) as *mut TaskContext;
|
||||
//println!("task_cx size={}", core::mem::size_of::<TaskContext>());
|
||||
//println!("init task_cx, ptr={:p}", task_cx_ptr);
|
||||
unsafe { *task_cx_ptr = TaskContext::goto_trap_return(); }
|
||||
//println!("after init task_cx");
|
||||
let task_control_block = Self {
|
||||
task_cx_ptr: task_cx_ptr as usize,
|
||||
task_status,
|
||||
|
@ -56,7 +48,6 @@ impl TaskControlBlock {
|
|||
base_size: user_sp,
|
||||
};
|
||||
// prepare TrapContext in user space
|
||||
//println!("preparing trap_cx");
|
||||
let trap_cx = task_control_block.get_trap_cx();
|
||||
*trap_cx = TrapContext::app_init_context(
|
||||
entry_point,
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue