当前位置: 首页 > news >正文

ARM体系在linux中的中断抢占

上一篇说到系统调用等异常通过向量el1_sync做处理,中断通过向量el1_irq做处理,然后gic的工作都是为中断处理服务,在rtos中,我们一般都会有中断嵌套和优先级反转的概念,但是在linux中,中断是否会被其他中断抢占呢?

gic概述

gic主要提供如下功能,主要是四种中断服务,中断掩码和优先级

 gic框架中的各组件的通路如下

中断最终分发给一个或多个PE的cpu interface,通过硬件中断号来区分各中断,各PE的运行优先级就是当前运行中断的优先级;一个中断是否进入PE,会先看优先级掩码能否到PE;还要通过中断抢占设置,和运行优先级,来判断是否能抢占当前PE

中断掩码寄存器

该寄存器设置将中断转发到该 PE 所需的最低优先级。 只有优先级高于寄存器值的中断才会发送给 PE

中断优先级寄存器

它是一个 8 位无符号值。 0x00 是最高优先级,0xFF 是最低优先级

 中断抢占优先级

该寄存器定义优先级值字段分成两部分的点,即组优先级字段和子优先级字段。 组优先级字段确定组 0中断抢占

运行优先级寄存器

当 PE 响应中断时,它的运行优先级变为该中断的优先级

 linux内核开启了抢占

根据上面的BPR的寄存器介绍,写0,相当于8位都是组优先级,而组优先级控制抢占,所以linux内核开启了抢占

linux内核实际不会发生中断抢占

arm64核心是有抢占的,但是在linux中,优先级都被设置成一样,所以在linux内核没有中断抢占,或者说没有中断嵌套

http://www.lryc.cn/news/302476.html

相关文章:

  • STM32的FLASH操作
  • electron Tab加载动画开启和关闭
  • 深度学习发展的艺术
  • las数据转pcd数据
  • HTTP缓存技术
  • USACO 2024年1月铜组 MAJORITY OPINION
  • Windows 重启 explorer 的正确做法
  • linux基础学习(10):基本权限与相关命令
  • 木马植入方式及防范手段
  • Unity3D中刚体、碰撞组件、物理组件的区别详解
  • Java实现Redis延时队列
  • Selenium折线图自动化测试
  • <网络安全>《41 网络攻防专业课<第七课 - IIS上传和Tomcat弱口令漏洞攻击与防范>》
  • 云计算基础-虚拟化概述
  • ElementUI +++ Echarts面试题答案汇总
  • notepad++打开文本文件乱码的解决办法
  • 道可云元宇宙每日资讯|上海开放大学发布“智慧学习中心元宇宙”
  • 压缩感知(Compressed Sensing,CS)的基础知识
  • 如何系统地学习Python
  • SMT2020:半导体制造流程标准仿真测试数据介绍
  • 沁恒CH32V30X学习笔记11---使用外部时钟模式2采集脉冲计数
  • ffmpeg for android编译全过程与遇到的问题
  • 【无标题】力扣报错:member access within null pointer of type ‘struct ListNode‘
  • Qt之Qchar类的接口1
  • vue的十大面试题详情
  • (十四)devops持续集成开发——jenkins流水线使用pipeline方式发布项目
  • 多维时序 | Matlab实现LSTM-Mutilhead-Attention长短期记忆神经网络融合多头注意力机制多变量时间序列预测模型
  • Android 基础技术——Binder 机制
  • 【STM32 CubeMX】STM32中断体系结构
  • JAVA高并发——JDK的并发容器