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

news2024/11/14 3:57:29

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

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 总结

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/908437.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

excel文本函数篇1

本期主要介绍LEFT、RIGHT、MID以及后面加B的情况: (1)后缀没有B:一个字节代表一个中文字符 (2)后缀有B:两个字节代表一个中文字符 (3)LEFT()从前面开始找,RI…

【腾讯云 TDSQL-C Serverless 产品体验】基于腾讯云轻量服务器以及 TDSQL-C 搭建 LNMP WordPress 博客系统

文章目录 一、前言二、数据库发展与云原生数据库2.1 数据库发展简介2.2 云原生数据库简介2.2.1 云数据库与云原生数据库区别 三、腾讯云 TDSQL-C 数据库3.1 什么是腾讯云 TDSQL-C 数据库3.2 为什么推出 TDSQL-C 数据库?传统 MySQL 架构存在较多痛点3.2.1 传统 MySQL…

【Linux】cpolar+JuiceSSH实现手机端远程连接Linux服务器

文章目录 1. Linux安装cpolar2. 创建公网SSH连接地址3. JuiceSSH公网远程连接4. 固定连接SSH公网地址5. SSH固定地址连接测试 处于内网的虚拟机如何被外网访问呢?如何手机就能访问虚拟机呢? cpolarJuiceSSH 实现手机端远程连接Linux虚拟机(内网穿透,手机端连接Linux虚拟机) …

Amelia预订插件:WordPress企业级预约系统

并非所有WordPress预订插件都像他们所设计的那样。其中一些缺乏运行高效预约操作所需的功能,而其他一些则看起来陈旧过时。您不需要其中任何一个,但Amelia预订插件似乎希望确保所有用户都对功能和风格感到满意。 在这篇Amelia企业级预约系统插件评测中&…

内网渗透神器CobaltStrike之BOF编写(十一)

前言 Beacon Object File(BOF) 从Cobalt Strike4.1开始所添加的新功能,它允许你使用C语言编写扩展来扩展Beacon的功能。这些扩展可以在运行时直接加载到Beacon的内存中并执行,无需在目标机器的磁盘上创建任何文件 BOF的一个关键特性是它的运行时环境非…

生物识别技术与身份认证:探讨生物识别技术在强化身份认证和访问控制方面的应用

第一章:引言 在数字化时代,随着信息技术的飞速发展,身份认证和访问控制变得越来越重要。传统的用户名和密码方式逐渐暴露出安全性不足的问题,为此,生物识别技术应运而生。生物识别技术利用人体生物特征来识别个体身份…

HoudiniVex笔记_P25_ForceExtended力进阶

原视频:https://www.youtube.com/playlist?listPLzRzqTjuGIDhiXsP0hN3qBxAZ6lkVfGDI Bili:Houdini最强VEX算法教程 - VEX for Algorithmic Design_哔哩哔哩_bilibili Houdini版本:19.5 如有错误,可在评论区指正。 1、本章主要…

sql数据导出到excel

一、打开Navicat Premium 12 二、导出

管理类联考——逻辑——真题篇——按知识分类——汇总篇——三、综合推理——是否确定信息

真题(2018-40)——综合推理——是否确定信息——确定信息——以确定信息作为解题起点 某海军部队有甲、乙、丙、丁、戊、己、庚7艘舰艇,拟组成两个编队出航,第一编队编列3艘舰艇,第二编队编列4艘舰艇,编列…

linux的http服务

Web通信基本概念 基于B/S(Browser/Server)架构的网页服务 服务端提供网页 浏览器下载并显示网页 Hyper Text Markup Lanuage,超文本标记语言 Hyper Text Transfer Protocol,超文本传输协议 虚拟机A:构建基本的Web服务 [root…

python Requests

Requests概述 官方文档:http://cn.python-requests.org/zh_CN/latest/,Requests是python的HTTP的库,我们可以安全的使用 Requests安装 pip install Requests -i https://pypi.tuna.tsinghua.edu.cn/simple Requests的使用 Respose的属性 属性说明url响…

Jeep车型数据源:提供Jeep品牌车系、车型、价格、配置等信息

​​​​​ Jeep是一个极具特色的汽车品牌,它的所有车型都注重实用性,具有越野性能和高性能。Jeep品牌在汽车行业中的口碑一直是非常不错的。如果你想要了解Jeep品牌车系、车型、价格、配置等信息,就可以通过挖数据平台Jeep车型数据源API接口…

IO day 5

1、使用两个线程完成两个文件的拷贝&#xff0c;主线程拷贝前一半内容&#xff0c;子线程拷贝后一半内容&#xff0c;并且主线程要阻塞回收子线程资源 #include <myhead.h>//定义求文件长度函数 int fd1,fd2; //以只读的形式打开源文件 if((fd1open(stcfile,O_RDONLY)) …

aosp-刷入Magisk面具获取root权限

作者&#xff1a;上山打鼠 一、简介 话说上次root手机都已经是初中的时候了&#xff0c;那时候捣鼓手机不亦乐乎&#xff0c;Android4.4的系统先解锁&#xff0c;再刷入第三方Recovery&#xff0c;然后再刷入Root包去获取Root权限 想学点逆向的知识&#xff0c;所以要root一下…

算法通关村第5关【青铜】| Hash和队列的特征

1.Hash基础 &#xff08;1&#xff09;基础 哈希也称为散列&#xff0c;通过算法变成固定长度的输出值&#xff0c;存入对应的位置 例如这个算法为取模算法&#xff0c;indexnumber 模 7 存入1到15 &#xff08;2&#xff09;碰撞处理 当多个元素映射到同一位置上时就产生…

L Grayscale Confusion【2023牛客多校第10场】【拓扑排序】

来源&#xff1a;“范式杯”2023牛客暑期多校训练营10 —— L Grayscale Confusion 题意&#xff1a;给定 n 个三元组 ( r i , g i , b i ) 。构造一个长度为 n 的数组 w&#xff0c; 使得 ①w1 w 2 ②对于任意 i, j &#xff0c;若 r i > r j , g i > g …

python之Numpy

ndarray数组对象 NumPy定义了一个n维数组对象&#xff0c;简称ndarray对象&#xff0c;它是一个一系列相同类型元素组成的数组集合。数组中的每个元素都占有大小相同的内存块 ndarray 对象采用了数组的索引机制&#xff0c;将数组中的每个元素映射到内存块上&#xff0c;并且按…

C++笔记之虚函数重写规则、返回类型协变、函数的隐藏

C笔记之虚函数重写规则、返回类型协变、函数的隐藏 code review! 文章目录 C笔记之虚函数重写规则、返回类型协变、函数的隐藏1.返回类型协变2.C中函数的隐藏 —— C Primer Plus &#xff08;第6版&#xff09; —— cppreference 1.返回类型协变 2.C中函数的隐藏 在C中&a…

深入理解AQS和ReentrantLock

AQS 之前介绍synchronized关键字时提到过管程的概念&#xff0c;synchronized就是JVM内置管程&#xff0c;其使用的是管程的MESA模型。但是synchronized有一些缺点&#xff1a; 非公平锁&#xff0c;可能会使得一些线程长久抢占不到锁&#xff0c;导致其处于饥饿状态&#xf…

5.分布式事务管理-Seata

由于Transactional注解只能控制所在服务器A的事务&#xff0c;当方法中调用其他服务器B的方法&#xff0c;当A中该方法出错时&#xff0c;Transactional只能回滚A中该方法中的SQL&#xff0c;而A调用B的方法中的SQL无法回滚 1.Seata Seata&#xff08;分布式事务解决方案&…