|  |  | @ -129,18 +129,18 @@ lazy_static!{ | 
			
		
	
		
		
			
				
					
					|  |  |  |         ]; |  |  |  |         ]; | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |         // 初始化用户的应用对应的 TCB
 |  |  |  |         // 初始化用户的应用对应的 TCB
 | 
			
		
	
		
		
			
				
					
					|  |  |  |         for i in 0..num_app { |  |  |  |         for app_idx in 0..num_app { | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  |             // 初始化用户应用的内核栈
 |  |  |  |             // 初始化用户应用的内核栈
 | 
			
		
	
		
		
			
				
					
					|  |  |  |             let kernel_app_stack_ptr = init_app_cx(i); |  |  |  |             let kernel_app_stack_ptr = init_app_cx(app_idx); | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |             // 从 初始内核栈的栈顶(保存 trap_context的位置) 创建 任务context
 |  |  |  |             // 从 初始内核栈的栈顶(保存 trap_context的位置) 创建 任务context
 | 
			
		
	
		
		
			
				
					
					|  |  |  |             let task_context = TaskContext::from(kernel_app_stack_ptr); |  |  |  |             let task_context = TaskContext::from(kernel_app_stack_ptr); | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |             // 把内核栈的信息保存到 TCB中
 |  |  |  |             // 把内核栈的信息保存到 TCB中
 | 
			
		
	
		
		
			
				
					
					|  |  |  |             tasks[i].task_cx = task_context; |  |  |  |             tasks[app_idx].task_cx = task_context; | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |             // 初始为 准备好的状态
 |  |  |  |             // 初始为 准备好的状态
 | 
			
		
	
		
		
			
				
					
					|  |  |  |             tasks[i].task_status = TaskStatus::Ready |  |  |  |             tasks[app_idx].task_status = TaskStatus::Ready | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  |         }; |  |  |  |         }; | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |         TaskManager {  // 直接返回即可, 所有字段都是sync的, 那这个结构体也是sync
 |  |  |  |         TaskManager {  // 直接返回即可, 所有字段都是sync的, 那这个结构体也是sync
 | 
			
		
	
	
		
		
			
				
					|  |  | 
 |