函数回调和ISR有什么区别?

问题描述 投票:0回答:2

我正在对 UART 进行编程,我需要使用中断来访问传输或接收。但是我对 ARM 架构中用于接收或传输的 ISR 和函数回调有点困惑?

embedded-linux embedded-resource
2个回答
0
投票

正如 baonn 在这个答案中所描述的那样,

一段设置代码将 ISR 函数的地址存储在中断向量表中,表示“当中断发生时在该地址回调我”。

需要明确的是,ISR 本身就是“回调”的函数。被中断的代码不是回调;它只是“中断”然后“恢复”。

关于 ARM 架构,此链接可能对您有用。


0
投票

回调是传递给另一段代码的函数指针(即地址)。

中断服务例程 (ISR) 是触发硬件中断时运行的函数。

中断服务例程 (ISR),也称为中断处理程序,是一种特殊的回调,不带输入参数且不返回任何内容。

如上所述,ISR 处理程序由硬件中断触发。中断处理程序“回调”不是由软件直接调用的。 中断处理程序“回调”的地址存储在中断向量表中。

这可能值得一读:

© www.soinside.com 2019 - 2024. All rights reserved.