不好意思,之前等了两天看没人,于是放在这不管了。具体代码有点乱,我就直接把这段时间学到的总结一下:
1.xPSR寄存器T位读出来显示是0,单步会修正成1,全速不会。
2.中断堆栈存在8字节对齐的公约,至于权威手册上说的NVIC的寄存器对应位初始化就是0,按道理不会出现这种情况才是,还是不清楚。
3.线程任务调度需要尽可能仿照中断调度的状况,我之前连R0-R3都没保存就直接乱用,现在想想也是醉了。但是中断跳转压栈LR,PC,线程跳转只更新LR,这两者无论如何都没法一样,还是不清楚会有什么问题,猜测中断嵌套的时候调再调用线程调度会发生返回前一级中断无法继续执行hooktask的问题?暂时还没有进行测试。
|