假设有两个任务正在运行,TASK_A和TASK_B。当TASK_A在运行时发生中断,并需要切换到TASK_B。
在ISR内部,不应直接跳转到TASK_B,因为它仍处于ISR中,还没有返回(例如:RETI未执行)。如果按照正常方式从ISR返回,则会像往常一样返回到TASK_A的最后一个程序计数器。因此,RTOS必须从ISR中退出,并在退出ISR后立即进行上下文切换到TASK_B。RTOS如何在退出ISR时立即恢复控制权,而不是回到TASK_A?
在从RTOS函数(例如解锁互斥量时)切换的情况下,可以通过备份寄存器进行直接切换。
RTOS如何处理这种情况?请见谅,如果这是一个泛化的问题...
在ISR内部,不应直接跳转到TASK_B,因为它仍处于ISR中,还没有返回(例如:RETI未执行)。如果按照正常方式从ISR返回,则会像往常一样返回到TASK_A的最后一个程序计数器。因此,RTOS必须从ISR中退出,并在退出ISR后立即进行上下文切换到TASK_B。RTOS如何在退出ISR时立即恢复控制权,而不是回到TASK_A?
在从RTOS函数(例如解锁互斥量时)切换的情况下,可以通过备份寄存器进行直接切换。
RTOS如何处理这种情况?请见谅,如果这是一个泛化的问题...