【发布时间】:2017-11-15 13:21:20
【问题描述】:
我最近开始研究 ARM Cortex 微控制器。在互联网上阅读不同的文章时,我通常会发现两个常用术语,即软件中断和硬件中断。 两者的实际区别是什么?可以举个例子解释一下吗?
【问题讨论】:
-
软件中断是程序中的一条指令。处理器或某些连接的外部设备会生成硬件中断。
-
您将有一个中断服务程序,它必须根据特定事件执行特定操作。事件本身可以是指令(即从您自己的代码触发)或硬件事件。正如@BoPersson 所写,这是唯一的区别。而一旦你触发了它,如果这个新触发的中断的优先级高于当前正在执行的代码,它就会暂停当前代码并跳转到更高优先级的中断程序。如果没有,则会产生一个标志,并且当所有更高优先级的中断都执行完时,例程将开始执行。
标签: c embedded embedded-linux interrupt-handling interrupted-exception