中断管理笔记

news2024/9/25 21:27:19

1、异常与中断的基本概念

异常是指任何打断处理器正常执行,并且迫使处理器进入一个由有特权的特殊指令执行的事件。

异常可以分为两类:同步异常和异步异常。

由内部事件(像处理器指令运行产生的事件)引起的异常称为同步异常异步异常主要是指由于外部异常源产生的异常,是一个由外部硬件装置产生的事件引起的异步异常。

中断属于异步异常。所谓中断是指CPU正在处理某件事的时候,外部发生了某一事件,请求CPU迅速处理,CPU暂时中断当前的工作,转入处理所发生的事件,处理完后,再回到原来被中断的地方,继续原来的工作。

中断能打断任务的运行,无论该任务具有什么样的优先级,因此中断一般用于处理比较紧急的事件,而且只做简单处理,例如标记该事件,在使用FreeRTOS系统时,一般建议使用信号量、消息或事件标志组等标志中断的发生,将这些内核对象发布给处理任务,处理任务再做具体处理。

FreeRTOS的中断管理支持:

开/关中断。

恢复中断。

中断使能。

中断屏蔽。

可选择系统管理的中断优先级。

中断的介绍

与中断有关的硬件可以分为三类:外设、中断控制器、CPU本身。

外设:当外设需要请求CPU时,产生一个中断信号,该信号连接至中断控制器。

中断控制器:中断控制器是CPU众多外设中的一个,它一方面接收其他外设中断信号的输入,另一方面,它会发出中断信号给CPU。可以通过对中断控制器编程实现对中断源的优先级、触发方式、打开和关闭源等设置操作。

CPU:CPU会响应中断源的请求,中断当前正在执行的任务,转而执行中断处理程序。

和中断相关的名词解释

2、中断延迟的概念

中断延迟是指从硬件中断发生到开始执行中断处理程序第一条指令之间的这段时间。也就是:系统接收到中断信号到操作系统做出响应,并完成转换到中断服务程序的时间。

中断延迟=识别中断时间+[等待中断打开时间]+[关闭中断时间]。

识别中断时间:中断的处理过程是:外界硬件发生了中断后,CPU到中断控制器读取中断向量,并且查找中断向量表,找到对应的中断服务子程序的首地址,然后跳转到对应的ISR去做相应处理。这部分时间我们称之为识别中断时间。

等待中断打开时间:在允许中断嵌套的实时操作系统中,中断也是基于优先级的,允许高优先级中断抢占正在处理的低优先级中断,所以,如果当前正在处理更高优先级的中断,即使此时有低优先级的中断,系统也不会立刻响应,而是等到高优先级中断处理完之后,才会响应。而即使在不支持中断嵌套的系统中,中断是不允许被打断的,所以,如果当前系统正在处理一个中断,而此时另一个中断到来了,系统也是不会立即响应的,而只是等待处理完当前的中断之后,才会处理后来的中断。此部分时间,称为等待中段打开时间。

关闭中断时间:在操作系统中,很多时候我们会主动进入临界段,系统不允许当前状态被中断打断,故而在临界区发生的中断会被挂起,直到跳出临界段的时候打开中断。此部分时间,称为关闭中断时间。

3、中断管理讲解

ARM Cortex-M系列内核的中断是由硬件管理的,而FreeRTOS是软件,它并不接管由硬件管理的相关中断,只支持简单的开关中断等,所以FreeRTOS中的中断使用其实跟裸机差不多,需要我们自己配置中断,并且使能中断,编写中断服务函数,在中断服务函数中使用内核IPC通信机制,一般建议使用信号量、消息列表或事件标志组等标记事件的发生,将事件发布给处理任务,等退出中断后再由相关处理任务具体处理中断。

用户可以自定义配置系统可管理的最高中断优先级的宏定义:configLIBRARY_MAX_SYSCALL_INTERRUPT_PRIORITY。它是用于配置内核中的basepri寄存器的,当basepri设置为某个值的时候,NVIC不会响应比该优先级低的中断,而优先级比之更高的中断则不受影响。

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

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

相关文章

雅思7分相当于六级多少?雅思考试怎么备考才能到7分?

雅思7分相当于六级多少?雅思考试怎么备考才能到7分? 六级500分也不能和雅思7分相提并论,毕竟两者压根不在一个层级。楼主两月自学雅思获得8分,系统总结了雅思速成的提分秘籍,跟着我的方法走,两月屠鸭7分问题不大。1.6…

你做的SEO为什么效果不够好?

SEO(Search Engine Optimization)即搜索引擎优化,指在不同的搜索引擎中,按照相应的规则与机制提高网站在特定的搜索引擎中的自然排名。作为对产品和服务进行数字宣传营销的重要手段,SEO已然成为各企业提高网站曝光和流…

AI生产力工具暑期迎来大爆发 极光数据:夸克新增用户规模领先

9月3日,极光旗下月狐数据发布《AI生产力工具暑期发展报告》。数据显示,AI生产力工具在用户侧呈现高速增长态势,总体月活跃用户数量达1.7亿。其中,夸克APP实现暑期新增用户数量行业第一,凭借大模型、数据、场景等优势&a…

Java中实现写Word文档

背景&#xff1a;通过java代码&#xff0c;往docx文档中写入标题和段落。 依赖的maven包&#xff1a; <dependency> <groupId>org.apache.poi</groupId><artifactId>poi</artifactId><version>5.2.2</version> </depend…

【技术前沿】智能反向寻车解决方案:提升停车场用户体验与运营效率

亲爱的技术员及停车场管理者们&#xff0c;您是否曾遇到过车主在庞大的停车场中迷失方向&#xff0c;耗费大量时间寻找爱车的困境&#xff1f;这不仅影响了车主的停车体验&#xff0c;也无形中增加了停车场的管理难度和运营成本。本文专为解决这一痛点而生&#xff0c;介绍最新…

油猴插件编写测试工具

参考&#xff1a;如何使用油猴插件提高测试工作效率 一、背景 在酷家乐设计工具测试中&#xff0c;总会有许多高频且较繁琐的工作&#xff0c;比如&#xff1a; 查询插件版本&#xff1a;需要打开Chrome控制台&#xff0c;输入好几个命令然后过滤出版本信息。 查询模型商品&…

调用Claude 3.5 API的实战代码

大家好,我是herosunly。985院校硕士毕业,现担任算法研究员一职,热衷于大模型算法的研究与应用。曾担任百度千帆大模型比赛、BPAA算法大赛评委,编写微软OpenAI考试认证指导手册。曾获得阿里云天池比赛第一名,CCF比赛第二名,科大讯飞比赛第三名。授权多项发明专利。对机器学…

CSD三层架构

Web开发三层架构 controller&#xff1a;控制层&#xff0c;接收前端发送的请求&#xff0c;处理请求并响应数据service&#xff1a;业务逻辑层dao&#xff1a;数据访问层&#xff0c;负责数据访问操作 分层解耦 内聚&#xff1a;软件中各个功能模块内部的功能联系 耦合&…

拒绝霸王条约,苹果用户用不了微信了?

相信关注科技圈的同学都知道了&#xff0c;一年一度的科技春晚——苹果新机发布会就要来了&#xff0c;将于北京时间 9 月 10 日凌晨一点召开。带来全新的 iPhone16 系列。 在这之前咱们也有 iPhone16 的爆料&#xff0c;感兴趣的同学可以看下。 iPhone16外观配置敲定&#xf…

Android Gradle 插件的说明

1、前天运行好好的项目&#xff0c;今天运行就报错&#xff1a; 这个意思是Gradle版本低了 这个意思是Gradle plugin(8.5.1) 最高的compileSdk 34&#xff0c;用了35&#xff0c;就不对&#xff0c;因为一开始我们安装的就是35的版本&#xff0c;我们可以安装下34&#xff0c;…

编译原理项目——C++实现C语言编译器输出为8086级汇编(代码/报告材料)

完整的材料 代码见文章末尾 以下为核心内容和部分结果 项目介绍 一个小型的c语言编译器&#xff0c;实现的功能如下&#xff1a; 可以定义多个变量&#xff0c;并且能初始化。可以支持基本的加减乘除运算。可以支持带括号的多个变量的四则混合运算。可以支持单行注释和多行注…

指数分布的两种形式

指数分布是连续概率分布的一种&#xff0c;常用于描述等待时间、寿命等随机变量的分布。 1. 标准形式的指数分布 标准形式的指数分布的概率密度函数&#xff08;PDF&#xff09;为&#xff1a; f ( x ; λ ) { λ e − λ x if x ≥ 0 0 if x < 0 f(x; \lambda) \begi…

MYSQL:删除指定时间范围内每个电站每天发电数据除最大值以外的记录

有一个需求&#xff0c;需要保留每个电站每一天发电数据的最大值记录&#xff0c;其余删除。 表数据大概长这样&#xff1a; MYSQL 5.7写法&#xff1a;&#xff08;因为不支持ROW_NUMBER()函数&#xff0c;采用自定义的变量来代替&#xff09; 首次清理一年内数据&#xff1…

5是否有路通向AGI

5.1是否有路通向AGI

如何在算家云搭建模型Stable-diffusion-webUI(AI绘画)

一、Stable Diffusion WebUI简介 Stable Diffusion WebUI 是一个网页版的 AI 绘画工具&#xff0c;基于强大的绘画模型Stable Diffusion &#xff0c;可以实现文生图、图生图等。 二、模型搭建流程 1.选择主机和镜像 &#xff08;1&#xff09;进入算家云的“应用社区”&am…

一本书加印19次,回答小伙伴们几个写书的疑问

前几天又有一个高校老师加松哥微信&#xff0c;表示本学期选了松哥的书做教材&#xff1a; 松哥在 2019 年 1 月份出版了《Spring BootVue 全栈开发实战》这本书&#xff0c;到现在已经是第六年了。 今年 1 月份收到出版社稿酬的时候&#xff0c;我特意去看了下稿酬通知单&…

渣土车识别算法解决城市治理难题

随着城市化进程的加速&#xff0c;渣土车作为建筑工程中不可或缺的运输工具&#xff0c;其频繁的穿行和装载运输过程往往引发一系列问题&#xff0c;如超载、扬尘污染、乱倒渣土等&#xff0c;对城市环境和交通秩序造成了不良影响。为了解决这些问题&#xff0c;采用基于视觉分…

一文教你StableDiffusion图生图批量处理!

今天给大家讲解一下SD图生图的批量处理功能应该如何使用&#xff5e; 一、图生图批量处理功能的基本用法 首先打开webUI&#xff0c;在图生图页面下我们先找到批量处理的菜单&#xff1a; 最简单的批量处理方法只需要用到【输入目录】和【输出目录】两个功能&#xff1a; 第一…

Java:正则表达式 matches

文章目录 正则表达式作用基本用法小结代码 案例&#xff1a;校验用户输入的电话&#xff0c;邮箱&#xff0c;是否合法\\.是什么意思 黑马学习笔记 正则表达式 由一些特定的字符组成&#xff0c;代表的是一个规则 作用 用来校验数据格式是否合法在一段文本中查找满足要求的内…

计算机毕业设计选题推荐-高校科研工作管理系统-Java/Python项目实战

✨作者主页&#xff1a;IT毕设梦工厂✨ 个人简介&#xff1a;曾从事计算机专业培训教学&#xff0c;擅长Java、Python、微信小程序、Golang、安卓Android等项目实战。接项目定制开发、代码讲解、答辩教学、文档编写、降重等。 ☑文末获取源码☑ 精彩专栏推荐⬇⬇⬇ Java项目 Py…