当前位置: 首页> 教育> 幼教 > 写一个公司的网络设计方案_动态域名申请_重庆seo什么意思_友情链接有哪些

写一个公司的网络设计方案_动态域名申请_重庆seo什么意思_友情链接有哪些

时间:2025/7/13 8:25:53来源:https://blog.csdn.net/m0_73726682/article/details/147222488 浏览次数:0次
写一个公司的网络设计方案_动态域名申请_重庆seo什么意思_友情链接有哪些

承接上一篇,我们来讲讲GIC的处理流程:

我们先来看看老版本的CPU是怎么去处理中断的:

这种的话,基本上就是一开始就确定你有多少个中断,就为你分配好了多少个irq_desc,这样子每一个硬件中断,也就是hwirq跟虚拟中断virq就是确定的了,这个时候只需要去使用宏定义去标定这俩个的关系就可以了,但是这样子是有问题的,一旦硬件中断多起来,那么我们得一个个去定义嘛,工作量有点过于庞大了,所以在新的处理中断的方法中:

我们使用了动态分配的方法

一级中断控制器处理流程:

对于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链表中用户注册的函数

之前我们也大概讲过这个irq_desc结构体数组,他的irq_data中是含有iqr_chip结构体,里面有着各种的操作中断的函数,并且还有一个irq_domain结构体,里面包含着解析设备树的函数以及存储着hwirq和virq的关系

多级中断控制器处理流程:

  • 假设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链表中用户注册的函数

这里可以看出对于串口触发的中断,GIC去调用handle函数的时候是直接去处理action里面的fun函数的,而对于gpio,handle只是用来分发的

可以看到,这里的话,在GIC遍历寄存器后,发现是33号发生的中断的话,然后通过他自己的irq_domain结构体找到对应的viqr,也就是17,然后会调用里面的handle去处理,他会去屏蔽33号中断,然后处理,最后清楚33号中断,在处理里面,会去读取GPIO的寄存器,然后得到hwirq,然后通过他的irq_domain去得到virq,也就是102,然后去调用他的handle,最后就是屏蔽gpio2,然后调用fun,最后清楚gpio2

那么到这里,GIC的处理中断的流程就差不多讲清楚了,接下来就是去讲讲具体是怎么通过函数去调用的啦,我们下一篇来讲,完结,撒花(doge.)

 

 

关键字:写一个公司的网络设计方案_动态域名申请_重庆seo什么意思_友情链接有哪些

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: