[IMX6ULL驱动开发]-Linux对中断的处理(一)
目录
中断概念的引入
ARM架构中断的流程
异常向量表
Linux系统对中断的处理
ARM对程序和中断的处理
Linux进程中断处理
中断概念的引入
如何理解中断,我们可以进行如下抽象。把CPU看做一个母亲,当它正在执行任务的时候,可以看为是一个母亲在看书。此时可能发生许多不同的情况,比如说:远处传来猫叫声、快递敲门、房间中小孩子传来哭声,如上三种,其实都可以看做CPU的中断,可以根据重要性来进行判断是否要放下手头中正在看的书(CPU暂时暂停处理任务去执行中断)进行处理。
此时,还有可能发生如下情况,比如说地震了、突然掉下来一只蜘蛛、水突然烧开了,此时肯定是要停止看书去处理这些突发事件的(发生异常的时候,CPU必须马上处理)。
如果这个母亲决定去处理听到的事,那么首先她需要先使用书签夹在书上,记录下当前看到的位置(保存现场),然后再去处理问题(处理异常),回来后,通过书签找到之前阅读的位置(恢复现场)。
ARM架构中断的流程
ARM架构中断的流程如下:
1、初始化
首先设置中断源让它们可以产生中断(只有外界可以产生声音,比如猫叫、小孩子哭等,才可以产生中断),比如让一个GPIO引脚可以产生中断。然后设置中断控制器,设置中断的优先级、或者屏蔽某些中断,比如耳朵听见了,但是不想去处理,可以假装没有听见,这样就是屏蔽了某个中断。最后需要开启CPU的中断总开关(如果母亲是聋子的话,对于外界所有声音都是无效的)
2、CPU执行任务
3、产生中断
按下按键,中断信号发给中断控制器,中断控制器再发给CPU。
4、CPU每执行一条指令都会检查是否有异常/中断产生(硬件决定)
5、发生异常/中断,开始处理
对于不同异常,跳到不同地址执行处理(异常向量表),这些地址上是函数指针或者函数地址,用来处理不同的异常
6、保存现场、执行处理函数、恢复现场
异常向量表
当发生异常的时候,CPU会根据不同的异常来执行不同的处理。
从异常向量表跳转过去处理异常的时候,首先会保护现场、处理异常最后恢复现场

Linux系统对中断的处理
ARM对程序和中断的处理
如何理解栈在进程、线程、中断中的作用,我们需要先了解ARM是怎么处理程序的,ARM芯片属于精简指令集计算机,它对于内存是只有读、写操作的。
比如说我们要进行a=a+b的运算,那么我们需要先读取a到CPU中,然后在读取b到CPU中,在CPU中执行a+b,然后在写入到a当中。

如果在看的更加细节,那么我们可以通过下图来进行解释。CPU首先会先取代码,才能知道我们一步步要进行什么操作(这里代码需要转化为机器码),我们首先把a的值取到R0寄存器中,然后把b的值取到R1寄存器中,让R1、R0寄存器相加存放到R0寄存器,然后再把R0寄存器的值读取到a中。

假如,此时发生了中断,那么CPU是怎么进行处理的呢?

Linux进程中断处理
当进程A执行到一半的时候发生了中断,此时需要保存现场,然后执行中断,再恢复现场。当进程A继续执行,此时再次发生了中断,继续保存现场,执行中断,恢复现场。定时器发现进程A的时间用完之后,会保存A的现场,然后恢复B的现场。(对于这个定时器个人理解为,单核CPU并发执行进程,每个进程执行一段时间切换,宏观上看成并行)

相关文章:
[IMX6ULL驱动开发]-Linux对中断的处理(一)
目录 中断概念的引入 ARM架构中断的流程 异常向量表 Linux系统对中断的处理 ARM对程序和中断的处理 Linux进程中断处理 中断概念的引入 如何理解中断,我们可以进行如下抽象。把CPU看做一个母亲,当它正在执行任务的时候,可以看为是一个母…...
PHP基础学习笔记(面向对象OOP)
类和对象 <?php //声明一个名为 Fruit 的类,它包含两个属性($name 和 $color)以及两个用于设置和获取 $name 属性的方法 set_name() 和 get_name(): class Fruit {// Propertiespublic $name;public $color;// Methodsfuncti…...
Mysql超详细安装配置教程(保姆级图文)
MySQL是一种流行的开源关系型数据库管理系统,它广泛用于网站和服务的数据存储和管理。MySQL以其高性能、可靠性和易用性而闻名,是许多Web应用程序的首选数据库解决方案之一。 一、下载安装包 (1)从网盘下载安装文件 点击此处直…...
HR招聘测评,如何判断候选人的团队协作能力?
什么是团队协作能力? 团队协作能力,说的是在集体环境中,能同他人协同工作,为追求共同的目标而努力,其中包括沟通,表达,协调,尊重,信任,责任共担等一系列综合…...
[STM32-HAL库]Flash库-HAL库-复杂数据读写-STM32CUBEMX开发-HAL库开发系列-主控STM32F103C6T6
目录 一、前言 二、实现步骤 1.STM32CUBEMX配置 2.导入Flash库 3.分析地址范围 4.找到可用的地址 5.写入读取普通数据 6.写入读取字符串 6.1 存储相关信息 6.2 存取多个参数 三、总结及源码 一、前言 在面对需要持久化存储的数据时,除了挂载TF卡,我们…...
windows 下访问 csdn 异常问题
windows下访问csdn可能会出现什么 确认是真人 或着直接连接不上的情况, 需要在 C:\Windows\System32\drivers\etc 路径下 hosts文件中添加如下内容 1.180.18.85 blog.csdn.net 如果目录下没有hosts文件就自己建一个...
vue3结合element-plus之如何优雅的使用表格
背景 表格组件的使用在后台管理系统中是非常常见的,但是如果每次使用表格我们都去一次一次地从 element-plus 官网去 复制、粘贴和修改成自己想要的表格。 这样一来也说得过去,但是如果我们静下来细想不难发现,表格的使用都是大同小异的,每次都去复制粘贴,对于有很多表格…...
网络协议——Modbus-RTU
目录 1、简介 2、消息格式 3、Modbus寄存器种类说明 4、功能码01H 5、功能码02H 6、功能码03H 7、功能码04H 8、功能码05H 9、功能码06H 10、功能码0FH 11、功能码10H 1、简介 Modbus-RTU(Remote Terminal Unit)是一种串行通信协议࿰…...
【Qt】如何优雅的进行界面布局
文章目录 1 :peach:写在前面:peach:2 :peach:垂直布局:peach:3 :peach:水平布局:peach:4 :peach:网格布局:peach:5 :peach:表单布局:peach: 1 🍑写在前面🍑 之前使⽤ Qt 在界⾯上创建的控件, 都是通过 “绝对定位” 的⽅式来设定的。也就是每个控件所在…...
【八股系列】分别说一下nodeJS和浏览器的事件循环机制?
文章目录 1. NodeJS1.1 Node.js 事件循环概念1.2 Node.js 事件循环工作流程1.3 Node.js 事件循环示例 2. 浏览器2.1 浏览器事件循环概念2.2 浏览器事件循环工作流程2.3 浏览器事件循环示例 1. NodeJS 1.1 Node.js 事件循环概念 在 Node.js 中,事件循环由 libuv 库…...
关于基础的流量分析(1)
1.对于流量分析基本认识 1)简介:网络流量分析是指捕捉网络中流动的数据包,并通过查看包内部数据以及进行相关的协议、流量分析、统计等来发现网络运行过程中出现的问题。 2)在我们平时的考核和CTF比赛中,基本每次都有…...
数据结构---树,二叉树的简单概念介绍、堆和堆排序
树 树的概念和结构 结构 在我们将堆之前,我们先来了解一下我们的树。 我们的堆是属于树里面的一种, 树是一种非线性结构,是一种一对多的一种结构,也就是我们的一个节点可能有多个后继节点,当然也可以只有一个或者没…...
MySQL聚合函数(多行函数)
聚合函数(多行函数) 聚合函数作用于一组数据,并对一组数据返回一个值。 常见聚合函数 AVG和SUM函数 只作用于数值类型数据,不包含NULL 求工资平均值和总和 MIN和MAX函数 可以作用于任何数据类型(如字符串,…...
智慧教室课堂-专注度及考试作弊系统、课堂动态点名,情绪识别、表情识别和人脸识别结合
课堂专注度分析: 课堂专注度表情识别 作弊检测: 关键点计算方法 转头(probe)低头(peep)传递物品(passing) 侧面的传递物品识别 逻辑回归关键点 使用: 运行setup.py安装必要内容 python setup.py build develop 运行demo_inference.py 将…...
单例模式简要介绍
学习目标: 单例模式 学习内容: 单例模式(Singleton Pattern)是一种设计模式,其主要目的是确保一个类只有一个实例,并且提供一个全局的访问点。它常用于需要全局唯一对象的场景,例如日志记录器、…...
深度学习面试问题总结(21)| 模型优化
本文给大家带来的百面算法工程师是深度学习模型优化面试总结,文章内总结了常见的提问问题,旨在为广大学子模拟出更贴合实际的面试问答场景。在这篇文章中,我们还将介绍一些常见的深度学习面试问题,并提供参考的回答及其理论基础&a…...
4月手机行业线上市场销售数据分析
政府对智能手机行业的支持政策,如5G推广,以及相关的产业政策,都在一定程度上推动了智能手机市场的发展,再加上AI应用的推广和全球科技迅猛发展,中国手机市场在2024年迎来了恢复性增长。 据鲸参谋数据统计,…...
首都师范大学聘请旅美经济学家向凌云为客座教授
2024年4月17日,首都师范大学客座教授聘任仪式在首都师范大学资源环境与旅游学院举行。首都师范大学资源环境与旅游学院院长吕拉昌主持了仪式,并为旅美经济学家向凌云教授颁发了聘书。 吕拉昌院长指出,要贯彻教育部产学研一体化战略࿰…...
多电脑共享鼠标键盘
由于要在两个电脑之间共用一套鼠标键盘,所以在此记录一下。 mouse without borders Mouse without Borders 是一款免费的 Windows 工具,允许你在多台电脑之间共享鼠标和键盘。 安装与配置步骤 下载和安装: 前往 Mouse without Borders 官…...
展厅设计对企业有哪些作用
1、增强品牌形象 企业展厅对于增强企业品牌形象、提升企业的知名度和市场竞争力具有显著作用和意义。展厅作为企业对外的窗口,是客户和访客了解企业的第一印象。通过独特的设计风格和精心的展示布局,企业可以将自身的核心价值和文化理念巧妙地融入到展厅…...
嵌入式新手入门:用快马平台生成带详细注释的LED控制项目
作为一个嵌入式开发新手,刚开始接触STM32时确实有点懵。寄存器配置、时钟树、GPIO模式这些概念扑面而来,光看理论文档很容易失去方向。最近我发现用InsCode(快马)平台生成带详细注释的基础项目特别适合入门,今天就以最经典的LED流水灯为例&am…...
pyNastran:工程仿真领域的Python变革者——打破商业软件垄断的技术突围
pyNastran:工程仿真领域的Python变革者——打破商业软件垄断的技术突围 【免费下载链接】pyNastran A Python-based interface tool for Nastrans file formats 项目地址: https://gitcode.com/gh_mirrors/py/pyNastran 价值定位:重新定义工程仿真…...
S32DS隐藏技巧:用FTM定时器实现精准延时(替代低效for循环)
S32DS隐藏技巧:用FTM定时器实现精准延时(替代低效for循环) 在嵌入式开发中,延时功能几乎是每个项目都无法绕开的基础需求。从简单的LED闪烁到复杂的通信协议时序控制,精准的延时控制直接影响着系统的稳定性和响应速度。…...
同花顺期货通指标编写指南:从零开始构建趋势波段共振系统(含避坑技巧)
同花顺期货通指标编写指南:从零开始构建趋势波段共振系统(含避坑技巧) 在期货交易中,技术指标是交易者不可或缺的分析工具。同花顺期货通作为国内主流的期货交易软件,其内置的指标编写功能为交易者提供了强大的自定义能…...
华为新机散热“封神”:拆解仿生羽翼涡扇,看“小翅膀”如何颠覆手机温控
🎓作者简介:科技自媒体优质创作者 🌐个人主页:莱歌数字-CSDN博客 💌公众号:莱歌数字(B站同名) 📱个人微信:yanshanYH 211、985硕士,从业16年 从…...
突破性3D建模技术:Wonder3D如何通过单张图像实现高质量三维重建
突破性3D建模技术:Wonder3D如何通过单张图像实现高质量三维重建 【免费下载链接】Wonder3D Single Image to 3D using Cross-Domain Diffusion 项目地址: https://gitcode.com/gh_mirrors/wo/Wonder3D 在数字内容创作领域,从二维图像到三维模型的…...
APKMirror:安卓应用安全管理的终极解决方案
APKMirror:安卓应用安全管理的终极解决方案 【免费下载链接】APKMirror 项目地址: https://gitcode.com/gh_mirrors/ap/APKMirror 您是否曾在寻找安卓应用的特定版本时感到无从下手?是否担忧从第三方渠道下载的APK文件可能存在安全隐患ÿ…...
Phi-3-Mini-128K应用场景:新能源电池BMS固件日志智能归因与故障预测
Phi-3-Mini-128K应用场景:新能源电池BMS固件日志智能归因与故障预测 想象一下,你是一家新能源车企的BMS(电池管理系统)软件工程师。凌晨三点,你的手机响了,生产线告警:一批电池包的固件在测试中…...
GEE实战:基于ERA5-Land小时数据批量计算与导出区域月极值气温
1. ERA5-Land数据与GEE平台基础 ERA5-Land是欧洲中期天气预报中心(ECMWF)推出的高分辨率地表再分析数据集,它提供了从1950年至今的逐小时全球气候数据。与ERA5相比,ERA5-Land的空间分辨率更高,达到0.10.1(约…...
从零开始:DeepLabV3+在Cityscapes数据集上的完整训练流程
1. 环境准备与数据下载 第一次接触DeepLabV3和Cityscapes数据集时,我被这个组合的潜力所吸引——它能精准识别街景中的车辆、行人、建筑物等元素,就像给计算机装上了"透视眼"。但真正开始实操时,发现从环境搭建到数据处理的每个环节…...

