维基百科条目指出:
在计算机系统编程中,中断处理程序也称为中断服务程序或ISR,是微控制器固件、操作系统或设备驱动程序中的回调函数,其执行由接收到中断触发。
ISR 是如何回调的。难道栈上存储的PC值本身就是回调函数?
即ISR回调被中断的函数。因此,被中断的函数是一个回调。
一些设置代码将 ISR 函数的地址存储在中断向量表中,以表示“当中断发生时,在该地址上回调我”。 需要明确的是,ISR 本身就是“回调”的函数。被中断的代码不是回调;它只是“中断”然后“恢复”。
通过其地址不,不是的,程序计数器寄存器是像返回指令一样从堆栈中恢复的。 ISR 是一个“回调”,因为它是
(存储在中断向量表中)调用的,并且不是直接。
中断服务程序“回调”函数的地址存储在中断向量表中。
ISR 和回调之间的区别在于 ISR 是由硬件中断发起的意外事件。中断服务例程 (ISR) 是触发硬件中断时运行的函数。
中断服务例程 (ISR),也称为中断处理程序,是一种特殊的回调,不带输入参数且不返回任何内容。
ISR 处理程序由硬件中断触发。中断处理程序“回调”不会由软件直接调用(至少通常不会)。
这可能值得一读: