加入星计划,您可以享受以下权益:

  • 创作内容快速变现
  • 行业影响力扩散
  • 作品版权保护
  • 300W+ 专业用户
  • 1.5W+ 优质创作者
  • 5000+ 长期合作伙伴
立即加入
  • 正文
    • 1 中断基本概念
    • 2 中断的分类
    • 3 中断处理具体细节
    • 4 总结
  • 推荐器件
  • 相关推荐
  • 电子产业图谱
申请入驻 产业图谱

嵌入式基础知识-中断处理过程

2023/08/21
2915
阅读需 4 分钟
加入交流群
扫码加入
获取工程师必备礼包
参与热点资讯讨论

本篇来介绍中断,这是计算机系统以及嵌入式系统的重要概念。

1 中断基本概念

中断是CPU对系统发生的某个事件作出的一种反应。

中断的一些基本概念:

中断源:引起中断的事件称为中断源

中断请求:中断源向CPU提出处理的请求称为中断请求

中断向量:中断源的识别标志,中断服务程序的入口地址

中断向量表:按照中断类型号从小到大的顺序存储对应的中断向量,总共存储256个中断向量

断点:发生中断时被打断程序的暂停点称为断点

中断响应:CPU暂停现行程序转而为响应中断请求的过程称为中断响应

关中断:在保护现场和恢复现场过程中都要先关闭中断,避免堆栈错误

保存现场:保存程序当前断点执行所需的寄存器和相关数据

中断服务程序:处理中断源的程序称为中断处理程序

中断处理:CPU执行有关的中断服务函数称为中断处理

中断返回:返回断点的过程称为中断返回

2 中断的分类

2.1 硬/软中断

按中断源的不同,可分为:

硬件中断:由CPU外部的硬件,引入的中断,是随机的

软件中断:软件中断其实并不是真正的中断,它们只是可被调用执行的一般程序,是预先设计的

2.2 外/内中断

根据中断源所在的位置,可以分:

外部中断:一般指由计算机外设发出的中断请求,如:键盘中断、打印机中断、定时器中断

内部中断:是指如运算出错(除数为零、运算溢出、单步中断等)所引起的中断

2.3 可/非屏蔽中断

按是否可屏蔽,可分为:

可屏蔽中断:通过INTR(Interrupt Require)线向CPU请求的中断,此类中断并不会影响系统运行,可随时处理,或不处理。此外,除受本身的屏蔽位控制外,还受一个总的中断允许标志位IF(Interrupt  Flag)的控制

非屏蔽中断(不可屏蔽中断):非屏蔽中断是出现在NMI(Non Maskable Interrupt)线上的请求 ,不受中断标志位IF的影响,内部中断是不可屏蔽的中断

3 中断处理具体细节

中断的整个处理过程,由硬件和软件共同完成,具体处理细节如下图:

根据此图,再来分析下各个过程:

关中断:进入不可响应中断请求的中断,由硬件自动完成

保存断点:把当前的程序计数器PC中的内容保存起来,用于中断处理结束后能继续执行主程序

识别中断源:有多个中断源同时请求时,只能响应最高优先级的,因此需进一步判断中断源

保存现场和屏蔽字:进入中断服务程序后,要先保存现场

设置新的屏蔽字:用于改变中断优先级和控制中断的产生

开中断:执行中断程序时,打开中断可实现更高优先级的中断响应,实现中断嵌套

执行中断服务程序:执行中断服务程序中的内容

再次关中断:使得恢复现场和屏蔽字时不会被中断打断

恢复现场和屏蔽字:使现场和屏蔽字恢复到中断之前的状态

再次开中断:中断执行完,现场恢复完后,可以打开中断

中断返回:返回原程序继续执行

处理过程,会经历两次的开/关中断,也可用下图描述

4 总结

本编介绍了中断基本概念,中断的分类,以及 中断处理的具体细节

推荐器件

更多器件
器件型号 数量 器件厂商 器件描述 数据手册 ECAD模型 风险等级 参考价格 更多信息
LFSPXO019170REEL 1 IQD Frequency Products HCMOS Output Clock Oscillator, 25MHz Nom
$11.83 查看
HFBR-5911ALZ 1 Foxconn Transceiver, 830nm Min, 860nm Max, 1250Mbps(Tx), 1250Mbps(Rx), LC Connector, Through Hole Mount, ROHS COMPLIANT PACKAGE
$59.92 查看
FOD4208SDV 1 Fairchild Semiconductor Corporation Triac Output Optocoupler, 1-Element, 5000V Isolation, LEAD FREE, SURFACE MOUNT PACKAGE-6
$4.6 查看

相关推荐

电子产业图谱

控制科学与工程硕士,日常分享单片机、嵌入式、C/C++、Linux等学习经验干货~