ARM GIC(三) gicv2架构

这篇具有很好参考价值的文章主要介绍了ARM GIC(三) gicv2架构。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

ARM的cpu,特别是cortex-A系列的CPU,目前都是多core的cpu,因此对于多core的cpu的中断管理,就不能像单core那样简单去管理,由此arm定义了GICv2架构,来支持多核cpu的中断管理
一、gicv2架构
GICv2,支持最大8个core。其框图如下图所示:
ARM GIC(三) gicv2架构,gic,arm开发,架构
在gicv2中,gic由两个大模块组成:

distributor:实现中断分发,对于PPI,SGI是各个core独有的中断,不参与目的core的仲裁,SPI,是所有core共享的,根据配置决定中断发往的core。最后选择最高优先级中断发送给cpu interface。寄存器使用 GICD_ 作为前缀。一个gic中,只有一个GICD。

cpu interface:将GICD发送的中断信息,通过IRQ,FIQ管脚,传输给core。寄存器使用 GICC_ 作为前缀。每一个core,有一个cpu interface。

virtual cpu interface:将GICD发送的虚拟中断信息,通过VIRQ,VFIQ管脚,传输给core。每一个core,有一个virtual cpu interface。而在这virtual cpu interface中,又包含以下两个组件:

virtual interface control:寄存器使用 GICH_ 作为前缀

virtual cpu interface:寄存器使用 GICV_ 作为前缀

图中的virtual interface,是用于支持虚拟中断,本系列不讨论虚拟中断。

GICv2支持中断旁路模式,也就是gic外部的FIQ,IRQ直接接到core的FIQ,IRQ上,相当于gic是不使能的。也就是CFGSDISABLE是有效的,将GIC给无效掉。

gicv2,定义了自己的一些寄存器,这些寄存器,都是使用memory-mapped的方式去访问的,也就是在soc中,会留有一片空间,给gic。cpu通过访问这部分空间,来对gic进行操作。

寄存器,分为以下:

GICD_*: distributor的寄存器

GIC文章来源地址https://www.toymoban.com/news/detail-773418.html

到了这里,关于ARM GIC(三) gicv2架构的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • linux-gic中断分析

    这里主要分析 linux kernel 中 GICv3 中断控制器的代码(drivers/irqchip/irq-gic-v3.c)。 先来看下中断控制器的设备树信息: 1. irq chip driver 的声明 定义 IRQCHIP_DECLARE 之后,相应的内容会保存到 __irqchip_of_table 里边: 这里展开后,会定义一个__of_table_gic_v3结构体,存放在 __irqchip_of_table段里面

    2024年02月07日
    浏览(35)
  • Linux 中断子系统中GIC 中断控制器基本分析

    GIC 是 ARM 公司给 Cortex-A/R 内核提供的一个中断控制器,类似 Cortex-M 内核(STM32)中的 NVIC。 GIC:Generic Interrupt Controller,通用中断控制器。 NVIC:Nested Vectored Interrupt Controller,嵌套中断向量控制器。 目前 GIC 有 4 个版本:V1~V4,V1 是最老的版本,已经被废弃了。V2~V4 目前正在大

    2024年02月07日
    浏览(49)
  • Arm Generic Interrupt Controller v3 and v4(GICv3v4)学习(一)

    该博客主要为个人学习,通过阅读官网手册整理而来(个人觉得阅读官网的英文文档非常有助于理解各个IP特性)。若有不对之处请参考 参考文档 ,以官网参考文档为准。 Arm Generic Interrupt Controller v3 and v4学习一共分为三章,这是第一章 第一章:讲解GIC,主要为基础知识,

    2024年01月20日
    浏览(34)
  • Qemu虚拟arm开发板驱动开发详解(一)——驱动基本架构

            此前在《WSL2下Ubuntu22.04使用Qemu搭建虚拟Vexpress-A9开发板》系列文章中,我们已建立好Linux最小系统的运行环境,并将其成功移植到了由Qemu模拟的arm32开发板上。接下来将介绍如何基于上述环境进行驱动开发。         本节主要带各位读者了解Linux内核驱动的基本架

    2024年02月05日
    浏览(47)
  • 【理解ARM架构】不同方式点灯 | ARM架构简介 | 常见汇编指令 | C与汇编

    🐱作者:一只大喵咪1201 🐱专栏:《理解ARM架构》 🔥格言: 你只管努力,剩下的交给时间! 在学习C语言的时候,我们会写个 Hello World 程序来入门,当我们写ARM程序,也该有一个简单的程序引领我们入门,这个程序就是点亮LED。 查看原理图,确定控制LED的引脚: 如上图是

    2024年02月05日
    浏览(48)
  • arm和x86架构服务器拉取arm64架构的docker镜像

    dockerhub提供的镜像部分支持arm64架构 Docker arm架构服务器拉取docker镜像,默认是arm架构  查看docker镜像的架构 x86平台拉取arm平台的docker镜像 对docker版本有限制 docker运行其他平台容器,需要使用--platform参数指定容器 docker19.03.9及以上版本才支持--platform参数 查看是否开启experi

    2024年01月20日
    浏览(68)
  • x86架构ubuntu 搭建arm64交叉编译环境及QT编译arm64架构工程

    背景:由于最近项目需要做国产系统适配,很多软件需要重新编译以适配不同架构CPU。 环境: 1、主机win10 64bit   vmware虚拟主机ubuntu1804 64bit 2、vmware虚拟主机已经安装了qt5.14.2及qt_create4.11.1 一、C/C++程序交叉编译 1、交叉编译环境搭建 ①选定编译工具aarch64-linux-gnu ②安装交叉

    2024年02月09日
    浏览(65)
  • ARM 架构是什么?

    ARM(Advanced RISC Machines)架构是一种处理器架构,它是一种精简指令集计算机(RISC)架构。ARM架构最初由ARM Holdings(现在是SoftBank Group的子公司)开发,并在1980年代末和1990年代初开始广泛应用。 我这里刚好有嵌入式、单片机、plc的资料需要可以私我或在评论区扣个6 ARM架构的

    2024年02月17日
    浏览(55)
  • 【ARM】(1)架构简介

            ARM既可以认为是一个公司的名字,也可以认为是对一类微处理器的通称,还可以认为是一种技术的名字。         ARM公司是专门从事基于RISC技术芯片设计开发的公司,作为知识产权( IP ) 供应商,本身不直接从事芯片生产,而是转让设计许可,由合作公司生

    2024年02月07日
    浏览(48)
  • ARM体系架构

    交叉开发:  程序的编写 编译 在 PC机上(宿主机)  但 运行在 开发板(目标机) 嵌入式开的的特点: 开发环境的不同:  交叉开发环境  以应用为中心, 围绕实际功能设计 软件和硬件   量体裁衣 输入设备  输出设备 存储器  运算器 控制器 总线  计算机  X64(64位)  x86

    2024年01月21日
    浏览(37)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包