我正在尝试理解PIC18F中的多任务处理。我知道程序计数器在中断之前存储在堆栈中,然后在中断结束时返回到相同的PC地址。如何找到存储在堆栈中的PC值并将其保存在某个寄存器中,以便以后可以使用它返回。 ?例如Task1,Task2等的PC值。
答案 0 :(得分:0)
我认为AN818回答我的问题。因此,在先发制人的操作系统中,我会在执行ISR之前保存TOSU,TOSL,TOSH和STKPTR(以及其他寄存器),并从ISR加载TOSU,TOSL,TOSH和STKPTR以及下一个任务的新值。欢迎任何进一步的评论/建议/示例。谢谢