首页 > 编程语言 >9、GIC驱动程序对中断的处理流程

9、GIC驱动程序对中断的处理流程

时间:2024-11-17 14:18:05浏览次数:1  
标签:驱动程序 16 中断 irq 流程 GIC GPIO desc

1. 一级中断控制器处理流程

对于irq_desc,内核有两种分配方法:

  • 一次分配完所有的irq_desc

  • 按需分配(用到某个中断才分配它的irq_desc

现在的内核基本使用第1种方法。

  • 假设GIC可以向CPU发出16~1019号中断,这些数字被称为hwirq。0~15用于Process之间通信,比较特殊。

  • 假设要使用UART模块,它发出的中断连接到GIC的32号中断,分配的irq_desc序号为16

  • 在GIC domain中会记录(32, 16)

  • 那么注册中断时就是:request_irq(16, ...)

  • 发生UART中断时

    • 程序从GIC中读取寄存器知道发生了32号中断,通过GIC irq_domain可以知道virq为16

    • 调用irq_desc[16]中的handleA函数,它的作用是调用action链表中用户注册的函数

 

2. 多级中断控制器处理流程

 

 

  • 假设GPIO模块下有4个引脚,都可以产生中断,都连接到GIC的33号中断

  • GPIO也可以看作一个中断控制器,对于它的4个中断

  • 对于GPIO模块中0~3这四个hwirq,一般都会一下子分配四个irq_desc

  • 假设这4个irq_desc的序号为100~103,在GPIO domain中记录(0,100) (1,101)(2,102) (3,103)

  • 对于KEY,注册中断时就是:request_irq(102, ...)

  • 按下KEY时:

    • 程序从GIC中读取寄存器知道发生了33号中断,通过GIC irq_domain可以知道virq为16

    • 调用irq_desc[16]中的handleB函数

      • handleB读取GPIO寄存器,确定是GPIO里2号引脚发生中断

      • 通过GPIO irq_domain可以知道virq为102

      • 调用irq_desc[102]中的handleA函数,它的作用是调用action链表中用户注册的函数

标签:驱动程序,16,中断,irq,流程,GIC,GPIO,desc
From: https://www.cnblogs.com/liusiluandzhangkun/p/18550517

相关文章

  • 从 AI 大模型的定义、应用场景、优势以及挑战等方面,探讨 AI 是如何重塑软件开发的各个
    随着人工智能技术的迅猛发展,特别是大规模预训练模型(大模型)的兴起,软件开发行业正经历着前所未有的变革。大模型是指那些参数量巨大、能够处理复杂任务的人工智能模型,如GPT-3、BERT等。这些模型不仅在自然语言处理领域取得了突破性进展,还在计算机视觉、语音识别等多个领域展现出......
  • 7、GIC介绍与编程
    1.1GIC介绍ARM体系结构定义了通用中断控制器(GIC),该控制器包括一组用于管理单核或多核系统中的中断的硬件资源。GIC提供了内存映射寄存器,可用于管理中断源和行为,以及(在多核系统中)用于将中断路由到各个CPU核。它使软件能够屏蔽,启用和禁用来自各个中断源的中断,以(在硬件中)对各个中断......
  • CF2036G Library of Magic
    Problem给出1~n每个数2个,共2n个,然后拿走3个不相等的数,可以进行最多150次询问,可以得到值为l-r的所有数的异或和,请你最后给出这3个数。其中\(3\len\le10^{18}\)Solve不建议做法:分治,不断给1~n区间分块原因:需要进行的询问在不优化的情况下能达到200左右,需要不断找地方优化,且......
  • GFPS技术原理(五)快速配对流程
    这里快速配对流程分为两种情况:初次做快速配对SeekerProvider①:打开配对模式②:监听provider广播③:writekey-basedpairingrequest......
  • 【GraphRAG】本地部署全流程!超详细介绍!
    1、GraphRAG是什么?GraphRAG(Graph-basedRelation-AwareGrouping)是一种基于图的关系感知分组方法,通常用于计算机视觉和机器学习领域。它的核心思想是利用图结构来表示和处理实体之间的关系,从而更有效地进行分组和识别任务。2、本地部署在autodl上进行运行,4090单显卡+24GB内......
  • 解决ClassNotFoundException心得体会以及解决流程
    解决ClassNotFoundException心得体会以及解决流程问题出现原因:原因一:引入的依赖版本不对,导致依赖中没有该类原因二:该依赖除了被主动引入外,又包含在引入的其他依赖中,发生了依赖冲突,一般体现为依赖覆盖,本质上是因为导致原因一问题解决:解决原因一:github上查看不同的release......
  • Android Framework AMS(15)ContentProvider分析-2(getContentResolver及ContentResolver
    该系列文章总纲链接:专题总纲目录AndroidFramework总纲本章关键点总结&说明:说明:本章节主要解读ContentProvider组件的基本知识。关注思维导图中左上侧部分即可。有了前面activity组件分析、service组件分析、广播组件分析、ContentProvider组件的基本流程分析、基于此......
  • 如何通过集成化平台优化企业业务流程,减少低效环节
    在企业管理中,优化业务流程是提升效率和减少成本的关键手段。低效的业务流程不仅会降低企业的整体生产力,还可能导致资源浪费、客户体验下降以及错失市场机会。本文将探讨企业业务流程中的常见低效环节、它们产生的原因,以及如何通过优化和现代化技术手段,尤其是集成化流程管理平台......
  • 基于Java+SpringBoot+Vue+HTML5课程设计选题管理(源码+LW+调试文档+讲解等)/课程设计/
    博主介绍......
  • Apple Logic Pro 11.1 - 专业音乐制作 (音频编辑)
    AppleLogicPro11.1-专业音乐制作(音频编辑)LogicPro配备全新AI功能,引领音乐创作再上新阶请访问原文链接:https://sysin.org/blog/apple-logic-pro/查看最新版。原创作品,转载请保留出处。作者主页:sysin.orgLogicPro配备全新AI功能,引领音乐创作再上新阶伴奏乐手......