设备树中的通用中断控制器GIC

GIC通用中断控制器介绍

https://blog.csdn.net/hnzziafyz/article/details/81180518

 

 

设备树中的GIC中断控制器

	gic: interrupt-controller@38800000 {
		compatible = "arm,gic-v3";
		reg = <0x0 0x38800000 0 0x10000>, /* GIC Dist */
		      <0x0 0x38880000 0 0xC0000>, /* GICR (RD_base + SGI_base) */
		      <0x0 0x30340000 0x0 0x10000>; /* IOMUXC_GPR */
		#interrupt-cells = <3>;                       //使用3个字节描述中断
		interrupt-controller;                         //声明自己为中断控制器
		interrupts = <GIC_PPI 9 IRQ_TYPE_LEVEL_HIGH>; //声明使用的中断
		interrupt-parent = <&gic>;
	};

对应的参考文档:Documentation/devicetree/bindings/interrupt-controller/arm,gic-v3.txt

 


1. 第一个字节代表中断类型 GIC type // include\dt-bindings\Interrupt-controller\arm-gic.h
#define GIC_SPI 0 // 共享中断
#define GIC_PPI 1 // 每个处理器拥有独立中断

ARM SMP cores are often associated with a GIC, providing per processor interrupts (PPI), shared processor interrupts (SPI) 

除了这两个值之外的其他值无效

 

2. 第二个32字节数代表中断编号,SPI形式的中断编号范围是0-987,PPI形式的中断范围是0-15.  


3. 第三个字节代表中断触发方式 IRQ type // include\dt-bindings\interrupt-controller\irq.h
#define IRQ_TYPE_NONE  0                         内核不改变它,开机或uboot设置它是什么样就什么样。   
#define IRQ_TYPE_EDGE_RISING 1            上升沿触发
#define IRQ_TYPE_EDGE_FALLING 2            下降沿
#define IRQ_TYPE_EDGE_BOTH (IRQ_TYPE_EDGE_FALLING | IRQ_TYPE_EDGE_RISING)            双边沿
#define IRQ_TYPE_LEVEL_HIGH 4             电平触发-高电平
#define IRQ_TYPE_LEVEL_LOW 8              电平触发-低电平

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值