堆栈和中断上下文

时间:2015-02-28 22:50:22

标签: stack interrupt context-switch

这是关于堆栈和中断的问题。

让我们考虑一个用 C 语言编写的程序,其中有一个线程和一个中断。

1)中断(sampleReady())向程序指示样本    正在等待外围设备。 2)main函数调用子例程Analyze()来处理每个样本。

当然主要调用Analyze时,会为Analyze()创建一个上下文 在堆栈A上。它包含:

a)其参数  b)局部变量  c)退货地址  d)基指针

然后发生中断。一个保存PC,可能是几个寄存器,状态寄存器,...
 之后,ISR可以执行。

问题:

1)哪个线程运行ISR?运行main和Analyze()是否相同?  2)在哪个堆栈上推送ISR的上下文?与main和Analyze()相同的堆栈?

也不要犹豫,纠正我所做的任何假设。

0 个答案:

没有答案