【TINY4412】LINUX学习笔记:(3)中断

【TINY4412】LINUX学习笔记:(3)中断

宿主机 : 虚拟机 Ubuntu 16.04 LTS / X64
目标板[底板]: Tiny4412SDK - 1506
目标板[核心板]: Tiny4412 - 1412
LINUX内核: 4.12.0
交叉编译器: arm-none-linux-gnueabi-gcc(gcc version 4.8.3 20140320)
日期: 2017-8-13 09:14:53
作者: SY

简介

ARM中断控制器又称 GIC(Global Interrupt Controller) ,支持三种中断类型:

  • SGISoftware Generated Interrupt
  • SPIShared Peripheral Interrupt:支持多处理器
  • PPIPrivate Peripheral Interrupt :支持单处理器独占

设备树

中断配置通过设备树方式:

keypad: keypad@100A0000 {
    compatible = "samsung,s5pv210-keypad";
    reg = <0x100A0000 0x100>;
    interrupts = <GIC_SPI 109 IRQ_TYPE_LEVEL_HIGH>;
    clocks = <&clock CLK_KEYIF>;
    clock-names = "keypad";
    status = "disabled";
};

interrupts 字段表示中断配置,第1个字节表示全局共享中断

/* interrupt specifier cell 0 */

#define GIC_SPI 0
#define GIC_PPI 1

第2个字节表示中断号,在参考手册:9.2.2 GIC Interrupt Table 可以找到

第3个字节表示触发方式,和电路设计有关

#define IRQ_TYPE_NONE           0           //无中断
#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               //低电平触发
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值