在处理T_SWITCH_TOU的时候,为了能够让init.c中的代码继续执行,我构造了trap frame,使得切换到用户态前后的esp,ebp不变。
但是这样一来会有一个问题,就是用户态和核心态的栈是一样的。但是不知道为什么代码实际运行过程中貌似并没有出现什么问题。
如果转换到用户态,此时产生了一个时钟中断,应该会发生一些错误什么的。
另外奇怪的是,在T_SWITCH_TOU转换到user mode的过程中,在处理函数中(核心态)esp是7ae8,但是第二次T_SWITCH_TOK转换到kernel mode的过程中,在处理函数中(核心态)esp变成了10fda0。
希望老师解答一下这个问题。