0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

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

冬至子 来源:嵌入式BugMaker 作者:BugMaker 2023-08-10 11:18 次阅读

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

中断和异常分别属于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(异常)

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • CAN总线
    +关注

    关注

    145

    文章

    1946

    浏览量

    130726
  • 寄存器
    +关注

    关注

    31

    文章

    5336

    浏览量

    120230
  • GPIO
    +关注

    关注

    16

    文章

    1204

    浏览量

    52051
  • 中断控制器
    +关注

    关注

    0

    文章

    59

    浏览量

    9452
  • Cortex-M
    +关注

    关注

    2

    文章

    229

    浏览量

    29752
收藏 人收藏

    评论

    相关推荐

    各位大哥 小弟我摊上事啦!!!求助芯片 ALS1176

    VP1176 和芯片6A1176简直是傻傻分不清楚呀!!我把要买的芯片本来是买6A1176的,我买成了vp1176我是不是死定了················
    发表于 06-27 16:06

    如果修改默认登录名和密码

    RT。。大家都知道登陆用root很方便,但是也给我带来了困扰。怎么修改它呢?apache2?还是pam.d。傻傻分不清楚
    发表于 07-04 13:30

    请问到底该用哪种方式移植OS_CRITICAL_METHOD?

    如题,傻傻分不清楚,求大神指点!
    发表于 09-10 02:24

    芯片,半导体,集成电路,傻傻分不清楚

    `芯片,半导体,集成电路,傻傻分不清楚?一、什么是芯片芯片,又称微电路(microcircuit)、微芯片(microchip)、集成电路(integrated circuit, IC),是指内含
    发表于 04-22 11:55

    工业互联网和工业4.0傻傻分不清楚

    工业互联网是什么?工业互联网的网速快吗?工业互联网是物联网概念的重新包装么?工业互联网和工业4.0,傻傻分不清楚?工业互联网已经渗透到了哪些领域?
    发表于 07-12 06:51

    不要再对各种电机、舵机傻傻分不清楚了 精选资料分享

    你是否和木木一样,想要自己diy一个机器人,却对电机、舵机、步进电机、伺服电机、数字舵机、模拟舵机、串行总线舵机……一大堆名词傻傻分不清楚?管你到底是啥,在我这都叫“马达”,哈哈哈哈哈!如果你也是这样可可爱爱、没有脑袋,那么或许你应该抽出几分钟时间阅读一下这篇文章。
    发表于 09-01 08:31

    [ElfBoard]是谁字和字节傻傻分不清楚

    计算机内存结构 —— 位、字节和字 位 我们都知道,计算机存储数值都以信息的基本单元的组合进行存储,这个基本单元便是位(bit),我们通常用 0 和 1 来表示位的两种状态。 为什么使用 0 和 1 而不是 0、1、2、3、4、5 或者 6、7、8、9、10 等等这样的数字组合呢? 我们可以想象这样一种实际情况:我们的计算机归根结底是一些硬件在进行处理和计算,硬件是需要电流起作用的,电流可以产生高电压和低电压,在数字电路中,通常将高电压视为 1 ,低电压视为 0 ,因此我们信息存储的最终形式是一连串 1 和 0 的组合。这种表达形式与我们在逻辑中经常使用 true 和 false 是类似的。 关于计算机为什么能够读懂 1 和 0,在这个问题下面有很多非常详细的回答可以作为参考: 也许上面这个例子还是比较抽象,那么我们还可以想象这样一种更古老的实际情况:早期的计算机还不具备处理高级语言的能力,程序员们只能将要写的程序和要处理的数据变成一条条纸带交给计算机去处理。而纸带上某个特定位置的状态是有限的,人们通过在纸带上打洞还是不打洞来表示 1 和 0 。因此数据通过一连串打洞和不打洞的序列进行表示,即很多 1 和 0 的序列,这种数据表示的思想也一直延续到现在。 字节 通过上面的讲解我们也能看到,一个位能表达的信息太少了,因此我们通常将单个的位连接组合起来,组成更大的存储单元,我们称这种最小组合单元为一个字节(byte),一个字节由 8 个位构成,它足以用来存储一个 char 类型的数据。 字 随着存储需求的日益增长,在现在大多数计算机中,字节被组合成更大的存储单位,我们称为字(word),一个字足以存储一个 int 类型的数据。现在的大多数计算机要么使用四字节的字,要么使用八字节的字。我们通常所说的 32 位机器或者 64 位机器其实就是指计算机处理器一次能处理的数据大小,32 位即 4 个字节,64 位即 8 个字节。 结论: 一个字等于多少个字节,与系统硬件(总线、cpu命令字位数等)有关,不应该毫无前提地说一个字等于多少位。 正确的说法: ①:1字节(byte) = 8位(bit) ②:在16位的系统中(比如8086微机) 1字 (word)= 2字节(byte)= 16(bit) 在32位的系统中(比如win32) 1字(word)= 4字节(byte)=32(bit) 在64位的系统中(比如win64)1字(word)= 8字节(byte)=64(bit)
    发表于 12-12 13:13

    图像不清楚与矩阵切换器的关系有哪些?

    图像不清楚与矩阵切换器的关系有哪些?     设备图像不清楚主要包括:亮度低、边缘聚焦不好、重影(
    发表于 04-09 16:43 931次阅读

    科普:石墨烯电池、石墨烯基电池二者有何不同?别傻傻分不清

    很多吃瓜群众是不是已经对“石墨烯电池”和“石墨烯基电池”傻傻分不清楚了。
    发表于 01-23 15:40 5397次阅读

    芯片、半导体、集成电路还在傻傻分不清楚

    芯片,半导体,集成电路,傻傻分不清楚? 很多人都会有这样的烦恼,希望今天分享的文章能帮助到大家~一起学习!一起进步! 一、什么是芯片? 芯片,又称微电路、微芯片、集成电路(integrated
    的头像 发表于 09-28 17:13 3w次阅读

    别再傻傻分不清楚光纤和网线了

    目前网线和光纤就成为了网络信号传输中最重要的两种载体,如何选择你清楚吧?这两者的区别你了解吗?下面就看看clan通讯小编的解答吧。
    的头像 发表于 12-20 09:54 6302次阅读

    教你轻松区分输入阻抗、特性阻抗、瞬时阻抗

    有时候,发现对各种阻抗傻傻分不清楚,“好记性不如烂笔头”,那就把它们一个个写下来。
    的头像 发表于 03-15 17:20 1165次阅读
    教你轻松区分输入阻抗、特性阻抗、瞬时阻抗

    强弱电傻傻分不清楚 强电弱电怎么区别-科兰

    你还傻傻分不清楚强弱电吗?清点弱电怎么区别您知道吗?因为高压而称之为强电,因为低压而称之为弱电吗?今天科兰小编将为大家一一解答这些问题,揭开强弱电的神秘面纱。 强电弱电怎么区别? (1)交流频率
    的头像 发表于 05-23 10:40 2132次阅读
    强弱电<b class='flag-5'>傻傻</b><b class='flag-5'>分不清楚</b> 强电弱电怎么区别-科兰

    电源符号,你还傻傻分不清楚

    注意:上面三个电源符号,本质上都是GND,主要是为了PCB走线的需求,有一些单点接地或者多点接地的处理,为了避免干扰,才有所区分。
    的头像 发表于 07-16 15:31 3263次阅读

    FOSB和FOUP傻傻分不清楚

    如果我们发挥想象,一片一片的wafer(晶圆)在这FAB(晶圆厂)大乐园里搭乘着各种自动化移动工具(比如AGV(无人运载车)、ARM(机械手臂)、OHT(天车)),一会儿去泡个澡(浸泡清洗),一会儿去加工一下,那么,FOSB(前开晶圆运输盒)、FOUP(前开式晶圆传送盒)就可以被想象成是它们的搭乘车厢,有的对外移动,有的内部移动,当然也不能忘了还有敞篷式的OPEN CASSETTE(开放式装载盒)。
    的头像 发表于 12-22 16:08 2.4w次阅读