我想了解ISR(中断服务例程)和函数调用之间的区别。
从硬件角度来看,我认为函数调用和ISR是相同的。如果我错了,请纠正我。关于ISR和函数调用,我找到的所有信息如下:
ISR:
- 异步事件,在程序执行期间任何时候都可能发生 - 在堆栈上保存PC、标志和寄存器,并禁用所有中断并加载ISR的地址 - ISR不能有可以传递给它的参数 - 无法返回值 - 启用中断 - 通常很小,因为它们正在占用其他进程的时间 - 一些ISR有自己的堆栈
函数:
- 每当有函数调用时发生 - 在堆栈上保存PC和寄存器 - 可以有参数 - 可以返回值 - 对执行的大小和持续时间没有限制
除此之外还有什么区别吗?请告诉我。我还读过关于从ISR调用函数的内容,请详细说明。
从硬件角度来看,我认为函数调用和ISR是相同的。如果我错了,请纠正我。关于ISR和函数调用,我找到的所有信息如下:
ISR:
- 异步事件,在程序执行期间任何时候都可能发生 - 在堆栈上保存PC、标志和寄存器,并禁用所有中断并加载ISR的地址 - ISR不能有可以传递给它的参数 - 无法返回值 - 启用中断 - 通常很小,因为它们正在占用其他进程的时间 - 一些ISR有自己的堆栈
函数:
- 每当有函数调用时发生 - 在堆栈上保存PC和寄存器 - 可以有参数 - 可以返回值 - 对执行的大小和持续时间没有限制
除此之外还有什么区别吗?请告诉我。我还读过关于从ISR调用函数的内容,请详细说明。