已经有点明白了,之前建立了三个线程,线程1里有延时,线程2和3没有,不过线程2和3是同优先级时间片调度。然后运行的时候我看寄存器,每次线程2和3的psp值都和初始化的sp保存线程栈地址一样,但是1就不一样。这是因为由于线程1调用了延时函数,进入延时函数psp减小一次,进入sleep函数psp减小一次,最后进行系统调度时psp的值和减小的值一致。
新的问题是,栈是向下增长,那么如果我把线程入口函数和线程栈不放在一起定义,定义线程栈4给线程1用,实测执行第二次线程切换,线程1的psp在线程栈4的范围内,是不是可以说明执行下文切换的给psp的赋值操作是相当于绑定操作,希望有大神可以给我答疑解惑
问 RTT中psp的值问题