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内核没有中断抢占,或者说没有中断嵌套

相关推荐
Shang180989357264 分钟前
SSD202D星宸科技SigmaStar一颗高度集成的嵌入式智能触控显示板解决方案SSD202集成了硬件H.264/H.265视频解码器、内置了DDR
科技·嵌入式硬件·fpga开发·ssd202d嵌入式智能显示
’长谷深风‘7 小时前
51单片机入门(4温度采集:DS18B20)
单片机·嵌入式硬件·51单片机·ds18b20·温度采集
Hello World . .7 小时前
51单片机——DS18B20 温度传感器
单片机·嵌入式硬件·51单片机
yugi9878388 小时前
51单片机控制8×8点阵显示汉字(上下左右滚动)
单片机·嵌入式硬件·51单片机
LCG元11 小时前
STM32项目开发:基于CAN总线的多节点通信与数据采集系统
stm32·单片机·嵌入式硬件
12.=0.12 小时前
【stm32_2.1】【快速入门】自举模式、Flash闪存、LED点灯——对二极管PN结解析
stm32·单片机·嵌入式硬件
辰哥单片机设计12 小时前
STM32智能风扇(机智云)
stm32·单片机·嵌入式硬件
【 STM32开发 】12 小时前
【STM32 + CubeMX】低功耗 -- SLEEP 睡眠模式
stm32·单片机·低功耗·sleep·睡眠模式
芯芯点灯13 小时前
LIS2DW12驱动,功耗,数据可视化
驱动开发·单片机
Nice__J13 小时前
Mcu架构以及原理——2.Cortex-M流水线与指令集
单片机·嵌入式硬件·架构