近日,在把KEIL的ARM CMSIS组件从5.1.0升级到5.3.0后,发现原来的RTX RTOS窗口不能正常显示RTX的运行状态了,提示
意思是找不到寄存器xPSR。
打开提示的RTX5.scvd文件,可以发现 keil 使用此寄存器判断当前CPU使用的stack pointer
<!-- Stack pointer for running thread (计算当前运行线程的SP[栈底指针]) -->
<calc cond="(TCB[i].state == 2) && (__Running == 0)">
<!-- 读取XPSR寄存器获取中断号,
如果中断号小于16(内核中断如SVC、PendSV、Systick),则使用tcb保存的SP