嵌入式实时操作系统的设计与开发 (中断管理)

news2024/10/13 0:30:50

中断发生及响应

硬件抽象HAL层响应
中断请求IRQ被中断控制器汇集成中断向量(Interrupt Vector),每个中断向量对应一个中断服务程序ISR,中断向量存放了ISRs的入口地址或ISRs的第一条指令。

系统中通常包含多个中断向量,存放这些中断向量对应ISRs的入口地址的内存区域被称为中断向量表。

在Intel80x86处理器中,中断向量表包含256个入口,每个中断向量需要四字节存放ISR的首地址。

ARM处理器的中断请求IRQ被中断控制器汇集到异常向量,该异常向量位于ARM异常向量表的第7条记录,由于ARM异常向量表存放在内存0x00000000开始处,IRQ被中断控制器汇集到0x00000018(第7条记录的起始地址)的内存地址,也就是说当IRQ发生时,PC将通过硬件机制跳转到0x00000018开始执行。

在这里插入图片描述
异常向量表从0x00到0x1C的地址空间分别存放的是什么内容呢?
是像80x86的中断向量表一样,存放的时ISR的首地址吗?

根据ARM的中断机制,0x00到0x1C存放的是8条跳转指令,其中0x00处存放的是“LDR pc,VECTOR_TABLE+0”,意味着当系统复位时,pc将跳转到0x00(这地方是一条四字节的跳转指令),此时,pc值将变成“VECTOR_TABLE+0”,“VECTOR_TABLE”是ARM处理器中断向量表的起始地址。

异常向量表中其它位置存放的跳转指令分别在处理器出现如下情况时发生:未定义指令、软中断、预取指终止、数据终止、普通中断、快速中断异常时执行。

当处理器发生IRQ时,pc将跳转到0x18,该地方是另一条四字节的跳转指令“LDR pc,VECTOR_TABLE+0x18”

VECTOR_TABLE+0x18处存放的是HAL_INTR_ENTRY,它是指向所有IRQ的一个公共入口,也就是说,当各种IRQ发生时,都将汇拢到HAL_INTR_ENTRY,进行与硬件相关的处理,也称为HAL层中断处理。

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

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

相关文章

PyTorch深度学习实战(22)——从零开始实现YOLO目标检测

PyTorch深度学习实战(22)——从零开始实现YOLO目标检测 0. 前言1. YOLO 架构1.1 R-CNN 目标检测模型的局限性1.2 YOLO 目标检测模型原理 2. 实现 YOLO 目标检测2.1 编译 DarkNet2.2 设置数据集格式2.3 配置网络架构2.4 模型训练和测试 小结系列链接 0. 前…

C# 关于托管调试助手 “FatalExecutionEngineError“:“运行时遇到了错误。解决方案

托管调试助手 “FatalExecutionEngineError”:“运行时遇到了错误。此错误的地址为 0x740161f8,在线程 0x1174 上。错误代码为 0xc0000005。此错误可能是 CLR 中的 bug,或者是用户代码的不安全部分或不可验证部分中的 bug。此 bug 的常见来源包括用户对 …

手术麻醉临床信息管理系统源码,客户端可以接入监护仪、麻醉机、呼吸机

一、手术麻醉临床信息管理系统介绍 1、手术麻醉临床信息管理系统是数字化手段应用于手术过程中的重要组成部分,用数字形式获取并存储手术相关信息,既便捷又高效。既然是管理系统,那就是一整套流程,管理患者手术、麻醉的申请、审批…

【C语言】输入一个正整数,判断其是否为素数

1、素数又叫质数。素数&#xff0c;指的是“大于1的整数中&#xff0c;只能被1和这个数本身整除的数”。 2、素数也可以被等价表述成&#xff1a;“在正整数范围内&#xff0c;大于1并且只有1和自身两个约数的数”。 #include<stdio.h>int main() {int i,m;printf("…

如何实现前端社交媒体分享功能?

聚沙成塔每天进步一点点 ⭐ 专栏简介 前端入门之旅&#xff1a;探索Web开发的奇妙世界 欢迎来到前端入门之旅&#xff01;感兴趣的可以订阅本专栏哦&#xff01;这个专栏是为那些对Web开发感兴趣、刚刚踏入前端领域的朋友们量身打造的。无论你是完全的新手还是有一些基础的开发…

如何创建前端自定义主题和样式?

聚沙成塔每天进步一点点 ⭐ 专栏简介 前端入门之旅&#xff1a;探索Web开发的奇妙世界 欢迎来到前端入门之旅&#xff01;感兴趣的可以订阅本专栏哦&#xff01;这个专栏是为那些对Web开发感兴趣、刚刚踏入前端领域的朋友们量身打造的。无论你是完全的新手还是有一些基础的开发…

【API篇】三、Flink转换算子API

文章目录 0、demo数据1、基本转换算子&#xff1a;映射map2、基本转换算子&#xff1a;过滤filter3、基本转换算子&#xff1a;扁平映射flatMap4、聚合算子&#xff1a;按键分区keyBy5、聚合算子&#xff1a;简单聚合sum/min/max/minBy/maxBy6、聚合算子&#xff1a;归约聚合re…

深入理解Java IO流: 包括字节流和字符流的用法、文件读写实践

文章目录 &#x1f4d5;我是廖志伟&#xff0c;一名Java开发工程师、Java领域优质创作者、CSDN博客专家、51CTO专家博主、阿里云专家博主、清华大学出版社签约作者、产品软文创造者、技术文章评审老师、问卷调查设计师、个人社区创始人、开源项目贡献者。&#x1f30e;跑过十五…

CCF ChinaSoft 2023 论坛巡礼|形式验证@EDA论坛

2023年CCF中国软件大会&#xff08;CCF ChinaSoft 2023&#xff09;由CCF主办&#xff0c;CCF系统软件专委会、形式化方法专委会、软件工程专委会以及复旦大学联合承办&#xff0c;将于2023年12月1-3日在上海国际会议中心举行。 本次大会主题是“智能化软件创新推动数字经济与社…

【Proteus仿真】【STM32单片机】路灯控制系统

文章目录 一、功能简介二、软件设计三、实验现象联系作者 一、功能简介 本项目使用Proteus8仿真STM32单片机控制器&#xff0c;使用LCD1602显示模块、人体红外传感器、光线检测模块、路灯继电器控制等。 主要功能&#xff1a; 系统运行后&#xff0c;LCD1602显示时间、工作模…

SpringMVC - 详解RESTful

文章目录 1. 简介2. RESTful的实现3.HiddenHttpMethodFilter4. RESTful案例1、准备工作2、功能清单3、具体功能&#xff1a;访问首页a>配置view-controllerb>创建页面 4、具体功能&#xff1a;查询所有员工数据a>控制器方法b>创建employee_list.html 5、具体功能&a…

游戏设计模式专栏(十一):在Cocos游戏开发中运用享元模式

点击上方亿元程序员关注和★星标 引言 大家好&#xff0c;我是亿元程序员&#xff0c;一位有着8年游戏行业经验的主程。 本系列是《和8年游戏主程一起学习设计模式》&#xff0c;让糟糕的代码在潜移默化中升华&#xff0c;欢迎大家关注分享收藏订阅。 享元模式&#xff08…

Linux常用命令——colrm命令

在线Linux命令查询工具 colrm 删除文件中的指定列 补充说明 colrm命令用于删除文件中的指定列。colrm命令从标准输入设备读取书记&#xff0c;转而输出到标准输出设备。如果不加任何参数&#xff0c;则colrm命令不会过滤任何一行。 语法 colrm(参数)参数 起始列号&#…

使用Python找到相似图片的方法

使用Python找到相似图片的方法 作者&#xff1a;安静到无声 个人主页 摘要&#xff1a;在日常生活中&#xff0c;我们可能会遇到需要查找相似图片的情况。例如&#xff0c;我们可能有一张图片&#xff0c;并希望找到文件夹中与该图片相似的其他图片。本文将介绍如何使用Pytho…

二分法求多项式单根

输出格式&#xff1a; 在一行中输出该多项式在该区间内的根&#xff0c;精确到小数点后2位。 输入样例&#xff1a; 3 -1 -3 1 -0.5 0.5 输出样例&#xff1a; 0.33 idea 精确到小数点后两位 >阈值为0.001 solution1 #include <stdio.h> #include <math.h…

黑豹程序员-架构师学习路线图-百科:SpringBoot

文章目录 1、什么是SpringBoot&#xff1f;2、SpringBoot发展史3、为什么我们要使用SpringBoot 1、什么是SpringBoot&#xff1f; Spring Boot是一个用于创建独立的、基于Spring框架的Java应用程序的开源框架。 Spring Boot简化了Spring应用程序的开发和部署&#xff0c;使开发…

Java linux 部署命令

Java linux 部署命令 参考&#xff1a; nohup java -jar -Dspring.profiles.activetest businessIntegration-v2.0.0.jar & cd /var/www/datasync/backend/test 上传jar包 businessintegrationdatasynctask-v1.0.0.jar nohup java -jar -Dspring.profiles.activetest…

分位数损失和分位数回归

分位数损失和分位数回归 了解如何调整回归算法来预测数据的任何分位数 维亚切斯拉夫埃菲莫夫 跟随 出版于 走向数据科学 6 分钟阅读 1月29日 65 1 一、说明 右退出是一项机器学习任务&#xff0c;其目标是根据一组特征向量预测真实值。存在多种回归算法&#xff1a;线性回归…

(2023|AAAI,MS-VQGAN,分层扩散,PyU-Net,粗到细调制)Frido:用于复杂场景图像合成的特征金字塔扩散

Frido: Feature Pyramid Diffusion for Complex Scene Image Synthesis 公众号&#xff1a;EDPJ&#xff08;添加 VX&#xff1a;CV_EDPJ 或直接进 Q 交流群&#xff1a;922230617 获取资料&#xff09; 目录 0. 摘要 1. 简介 2. 基础 3. 方法 3.1 学习多尺度感知潜在 …

Blizzard Battle 上使用代理

要在 Blizzard Battle 上使用代理设置&#xff0c;首先需要确保您已经安装了 Blizzard 游戏客户端。下面是一个详细的教程&#xff0c;将带您完成代理设置&#xff1a; 打开 Blizzard 游戏客户端。 在顶部菜单栏中&#xff0c;点击“设置”&#xff08;即齿轮图标&#xff09;…