全球最实用的IT互联网信息网站!

AI人工智能P2P分享&下载搜索网页发布信息网站地图

当前位置:诺佳网 > 电子/半导体 > 处理器/DSP >

中断和异常?傻傻分不清楚

时间:2023-08-10 11:18

人气:

作者:admin

标签: 不清    傻傻分  异常  中断 

导读:在一段时间里,我都认为中断与异常没有很明显的区别,因为表现出来都是当前运行中的程序被打断,然后执行中断向量表中的函数,但是其实这两个还是有区别的。...

在一段时间里,我都认为中断与异常没有很明显的区别,因为表现出来都是当前运行中的程序被打断,然后执行中断向量表中的函数,但是其实这两个还是有区别的。

中断和异常分别属于CPU的外因和内因。例如CAN接收中断、GPIO边沿触发中断都属于中断范畴;而算数溢出、访问地址越界、除0等导致的则属于异常。

图片

举一个例子来解释,当你在家玩游戏时,如果此时快递小哥敲门,你就需要暂停手头的游戏签收一下快递,这个时候的快递小哥就属于是中断,是属于外因打断了你玩游戏;当你继续玩游戏时,突然你肚子很痛要上厕所,则此时暂停玩游戏就属于是异常,是属于自身身体出问题的内因打断自己玩游戏。

中断的引入 ——为了支持CPU与设备之间的并行操作

◆当CPU启动外设进行输入/输出后,外设便可以独立工作,CPU转去处理其他与此次输入/输出不相关的事宜;当外设完成输入/输出后,通过向CPU发送中断报告此次输入/输出的结果,让CPU决定如何处理后续事宜。

异常的引入 ———表示CPU执行指令时本身出现了问题

◆如算术溢出、除零、取数时的奇偶错,访存地址时越界或执行了“陷入指令”等,这时硬件改变了CPU当前的运行流程,转到相应的错误处理程序或异常处理程序或执行系统调用

在Cortex-M内核中,有三个中断屏蔽寄存器,分别是PRIMASK、FAULTMASK、BASEEPRI。如下表所示,通过配置这三个寄存器,可实现对中断、异常的管理。

图片

为了控制中断与异常,Cortex-M内核专门设定了CPS指令,有如下四种用法:

CPSID I ;PRIMASK = 1 ;关中断

CPSIE I ;PRIMASK = 0 ;开中断

CPSID F ;FAULTMASK = 1 ;关异常

CPSIE F ;FAULTMASK = 0 ;开异常

I为Interrupt(中断)、F为Fault(异常)

温馨提示:以上内容整理于网络,仅供参考,如果对您有帮助,留下您的阅读感言吧!
相关阅读
本类排行
相关标签
本类推荐

CPU | 内存 | 硬盘 | 显卡 | 显示器 | 主板 | 电源 | 键鼠 | 网站地图

Copyright © 2025-2035 诺佳网 版权所有 备案号:赣ICP备2025066733号
本站资料均来源互联网收集整理,作品版权归作者所有,如果侵犯了您的版权,请跟我们联系。

关注微信