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

中断发生及响应

硬件抽象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.mzph.cn/news/110288.shtml

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

相关文章

Linux-ssh

文章目录 远程登录服务器配置远程服务器相关信息创建config文件配置config文件 配置密钥登陆先创建密钥配置密钥文件 执行命令scp传文件copy文件copy文件夹配置我们的vim和tmux 远程登录服务器 ssh userhostnameuser:用户名hostname:IP地址或域名 第一次登陆会显示…

Linux权限基础知识

前言:作者也是初学Linux,可能总结的还不是很到位 Linux修炼功法:初阶功法 ♈️今日夜电波:修炼爱情 —林俊杰 0:30━━━━━━️💟──────── 4:47 …

MySQL——七、MySQL备份恢复

MySQL 一、MySQL日志管理1、MySQL日志类型2、错误日志3、通用查询日志4、慢查询日志5、二进制日志5.1 开启日志5.2 二进制日志的管理5.3 日志查看5.4 二进制日志还原数据 二、MySQL备份1、备份类型逻辑备份优缺点 2、备份内容3、备份工具3.1 MySQL自带的备份工具3.2 文件系统备…

Android SurfaceView预览相机黑屏问题解决方案

解决方案 1、使用动态添加的方式添加surfaceView 在xml文件中添加FrameLayout <FrameLayoutandroid:id"id/colorsurface"android:layout_width"match_parent"android:layout_height"match_parent" /> 2.创建SurfaceView并添加到FrameL…

大模型,重构自动驾驶

文&#xff5c;刘俊宏 编&#xff5c;王一粟 大模型如何重构自动驾驶&#xff1f;答案已经逐渐露出水面。 “在大数据、大模型为特征&#xff0c;以数据驱动为开发模式的自动驾驶3.0时代&#xff0c;自动驾驶大模型将在车端、云端上实现一个统一的端到端的平台管理。”毫末智…

【CesiumforUnreal插件】UE5 快速构建Cesium场景 快速入门!!!

目录 0 引言1 快速入门1.1 准备1.2 安装Cesium for Unreal插件并创建一个项目1.3 准备关卡并添加地形和纹理1.4 添加3D建筑到场景中1.5 探索场景 &#x1f64b;‍♂️ 作者&#xff1a;海码007&#x1f4dc; 专栏&#xff1a;CesiumforUnreal专栏&#x1f4a5; 标题&#xff1a…

如何转换Corona和Vray材质?cr材质转vr材质的方法

cr材质转vr材质的方法一&#xff1a;使用CG Magic插件&#xff0c;一键转换 CG Magic是一款基于3ds Max深度开发的智能化辅助插件&#xff0c;上千项实用功能&#xff0c;降低渲染时长&#xff0c;节省时间和精力&#xff0c;大幅简化工作流程&#xff0c;助力高效完成创作。 …

【Tomcat】为Tomcat服务配置本地Apr库以提升性能

关于 apr 和 apr-util 对 Tomcat 服务的性能提升的说明&#xff1a; 要测APR给tomcat带来的好处最好的方法是在慢速网络上&#xff08;模拟Internet&#xff09;&#xff0c;将Tomcat线程数开到300以上的水平&#xff0c;然后模拟一大堆并发请求。如果不配APR&#xff0c;基本…

Qt中绘图框架的使用例子

绘图框架的使用步骤&#xff1a; 1、创建自定类继承QGraphicsView&#xff08;可以直接用QGraphicsView小部件&#xff09;。 2、创建QGraphicsScene对象&#xff0c;在创建的时候初始化场景矩形框。并使用QGraphicsView部件的函数setScene将场景设置到视图中&#xff0c;这里…

SpringBoot2.x简单集成Flowable

环境和版本 window10 java1.8 mysql8 flowable6 springboot 2.7.6 配置 使用IDEA创建一个SpringBoot项目 <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0" xmlns:xsi"http://www.…

远程开户身份证识别OCR技术:革新传统流程,实现高效身份验证

远程开户是指通过互联网或其他远程通信方式&#xff0c;不需要亲自前往银行、证券公司或其他金融机构的实体营业网点&#xff0c;即可完成开立账户和办理相关服务的过程。 相比传统柜台开户方式&#xff0c;远程开户具有更高的便利性和灵活性。它使得用户可以随时随地通过网络…

API学习总结

目录 文本朗读语音识别API 语音合成语法 语音合成示例 语音识别语法 语音识别示例 文本朗读语音识别API Web Speech API有两个功能&#xff1a;用于在浏览器中实现语音识别&#xff08;将人声转换为文本&#xff09;和语音合成&#xff08;将文本转换为人声&#xff09…

基于PHP的创意设计分享系统设计与实现(源码+lw+部署文档+讲解等)

文章目录 前言具体实现截图论文参考详细视频演示为什么选择我自己的网站自己的小程序&#xff08;小蔡coding&#xff09; 代码参考数据库参考源码获取 前言 &#x1f497;博主介绍&#xff1a;✌全网粉丝10W,CSDN特邀作者、博客专家、CSDN新星计划导师、全栈领域优质创作者&am…

可道云kodbox上传出错解决办法

上传出错,服务器限制或配置异常: 出错了! (warning!) fseek(): Argument #1 ($stream) must be of type resource, bool given 系统错误 function/file.function.php[138] fseek() function/file.function.php[138] [Windows NT 10.0/8.2.4/mysqli/1.44.07] 主要是由于服务…

MySQL用户权限管理

目录 用户是如何定义的mysq的权限级别介绍用户查看用户创建用户删除用户授权回收用户权限1、用户是如何定义的 一个典型的MySQL用户名@主机的格式应该是这样的:username@hostname,其中username表示用户名,hostname表示主机名或IP地址。 hostname包含了多种格式: 10.0.0.5…

【故障诊断】用于轴承故障诊断的候选故障频率优化克改进包络频谱研究(Matlab代码实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…

微信小程序完整项目实战(前端+后端)

基于微信小程序的在线商城点单系统 前言&#xff1a;闲来无事&#xff0c;想以后自己开一个小超市或者小吃店&#xff0c;能够支持线上下单&#xff0c;既方便客户也方便自己。系统采用Java语言作为后端实现与小程序的交互&#xff0c;给用来学习或者想自己开个小店的朋友当个参…

在亚马逊云科技Amazon SageMaker上进行Stable Diffusion模型训练和推理

Stable Diffusion Quick Kit是一个基于亚马逊云科技Amazon SageMaker进行Stable Diffusion模型快速部署的工具包&#xff0c;包括了一组示例代码、服务部署脚本、前端UI&#xff0c;可以帮助可以快速部署一套Stable Diffusion的原型服务。 本文将介绍如何在SageMaker Training …

2530. 执行 K 次操作后的最大分数

给你一个下标从 0 开始的整数数组 nums 和一个整数 k 。你的 起始分数 为 0 。 在一步 操作 中&#xff1a; 选出一个满足 0 < i < nums.length 的下标 i &#xff0c; 将你的 分数 增加 nums[i] &#xff0c;并且 将 nums[i] 替换为 ceil(nums[i] / 3) 。 返回在 恰好…

服务器中了mkp勒索病毒怎么处理,mkp勒索病毒解密,数据恢复

10月份以来&#xff0c;云天数据恢复中心陆续接到很多企业的求助&#xff0c;企业的服务器遭到了mkp勒索病毒攻击&#xff0c;导致企业的服务器数据库被加密&#xff0c;严重影响了企业工作&#xff0c;通过这一波mkp勒索病毒的攻击&#xff0c;云天数据恢复工程师为大家总结了…