军哥,中断和事件有啥区别?

2019-07-21 04:24发布

 
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
31条回答
zb213015
1楼-- · 2019-07-21 09:48
中断和事件的产生源都可以是一样的!
之所以分成2个部分,由于中断是需要CPU参与的,需要软件的中断服务函数才能完成中断后产生的结果;
但是事件,是靠脉冲发生器产生一个脉冲,进而由硬件自动完成这个事件产生的结果,当然相应的联动部件需要先设置好,比如引起DMA操作,AD转换等;
简单举例:外部I/O触发AD转换,来测量外部物品的重量;
如果使用传统的中断通道,需要I/O触发产生外部中断,外部中断服务程序启动AD转换,AD转换完成中断服务程序提交最后结果;
要是使用事件通道,I/O触发产生事件,然后联动触发AD转换,AD转换完成中断服务程序提交最后结果;
相比之下,后者不要软件参与AD触发,并且响应速度也更块;
要是使用事件触发DMA操作,就完全不用软件参与就可以完成某些联动任务了。
可以这样简单的认为,事件机制提供了一个完全有硬件自动完成的触发到产生结果的通道,不要软件的参与,降低了CPU的负荷,节省了中断资源,提高了响应速度(硬件总快于软件),是利用硬件来提升CPU芯片处理事件能力的一个有效方法;
咯耶
2楼-- · 2019-07-21 12:36
中断屏蔽寄存器和事件屏蔽寄存器有什么不同     中断和事件啥区别?
正点原子
3楼-- · 2019-07-21 14:12
事件是中断的触发源,开放了对应的中断屏蔽位,则事件可以触发相应的中断。
事件还是其它一些操作的触发源,比如DMA,还有TIM中影子寄存器的传递与更新;而中断是不能触发这些操作的,所以要把事件与中断区分开。
咯耶
4楼-- · 2019-07-21 16:31
 精彩回答 2  元偷偷看……
正点原子
5楼-- · 2019-07-21 18:53
回复【4楼】咯耶:
---------------------------------
简单点就是中断一定要有中断服务函数,但是事件却没有对应的函数.
但是事件可以触发其他关联操作,比如触发DMA,触发ADC采样等.
可以在不需要CPU干预的情况下,执行这些操作.
中断则必须要CPU介入.

看看下面这个图:



小老虎
6楼-- · 2019-07-21 20:24
片内的叫事件,外设叫中断

一周热门 更多>