【发布时间】:2016-07-03 06:26:17
【问题描述】:
我正在尝试了解 PIC18F 中的多任务处理。我知道程序计数器在中断之前存储在堆栈中,然后在中断完成时返回到相同的 PC 地址。如何找到存储在堆栈中的 PC 值并将其保存在某个寄存器中,以便以后可以使用它返回。 ?例如 Task1、Task2 等的 PC 值。
【问题讨论】:
标签: operating-system interrupt multitasking
我正在尝试了解 PIC18F 中的多任务处理。我知道程序计数器在中断之前存储在堆栈中,然后在中断完成时返回到相同的 PC 地址。如何找到存储在堆栈中的 PC 值并将其保存在某个寄存器中,以便以后可以使用它返回。 ?例如 Task1、Task2 等的 PC 值。
【问题讨论】:
标签: operating-system interrupt multitasking
我认为AN818 回答了我的问题。所以在抢占式操作系统中,我会在执行 ISR 之前保存 TOSU、TOSL、TOSH 和 STKPTR(以及其他寄存器),并从 ISR 加载 TOSU、TOSL、TOSH 和 STKPTR 以及下一个任务的新值。欢迎对此提出任何进一步的评论/建议/示例。谢谢
【讨论】: