首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Linux系统驱动之两类中断控制器处理流程_链式和层级

    处理流程对比 在这里插入图片描述 参考资料: linux kernel的中断子系统之(七):GIC代码分析 Linux 4.9.88内核源码 Linux-4.9.88\drivers...\gpio\gpio-mxc.c Linux-4.9.88\arch\arm\boot\dts\imx6ull.dtsi Linux 5.4内核源码 Linux-5.4\drivers\pinctrl...\stm32\pinctrl-stm32mp157.c Linux-5.4\drivers\irqchip\irq-stm32-exti.c Linux-5.4\arch\arm\boot\dts\stm32mp151...链式中断控制器的处理流程 下图中: handleA、irq_dataA由GIC驱动提供 handleB、irq_dataB由GPIO驱动提供 handleC也是GPIO驱动提供 假设GPIO模块下有4...,确定是GPIO里2号引脚发生中断 通过GPIO irq_domain可以知道virq为102 处理virq 102号中断:调用irq_desc[102].handle_irq,即handleC

    1.1K41

    Linux系统驱动之GIC驱动程序对中断的处理流程

    资料下载 coding无法使用浏览器打开,必须用git工具下载: git clone https://e.coding.net/weidongshan/linux/doc_and_source_for_drivers.git...多级中断控制器处理流程 参考资料: linux kernel的中断子系统之(七):GIC代码分析 使用逐步演进的方法才能形象地理解。 1....多级中断控制器处理流程 假设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...读取GPIO寄存器,确定是GPIO里2号引脚发生中断 通过GPIO irq_domain可以知道virq为102 调用irq_desc[102]中的handleA函数,它的作用是调用action链表中用户注册的函数

    2.2K20

    Linux学习系列六:操作GPIO

    1 引言 学习单片机的第一个例子通常都是点亮LED灯,对于Linux应用,我们也从LED入手,我就记得自己刚开始学的时候查了好多资料才勉强能控制一个灯亮,当时就感受到了Linux和单片机裸机有很大的差异...2.2.软件 1)需要在上一篇《Linux学习系列五:Nand Flash根文件系统制作》的基础上改动下Linux内核配置,生成新的970uimage并烧写到板子里。...2)先使用我们之前的交叉工具链去编译上述代码 arm-none-linux-gnueabi-gcc gpio_demo.c -o gpio_demo 将生成的gpio_demo放到板子里去运行,提示如下错误...3)使用和板子里自带文件系统匹配的交叉工具链来重新编译 arm-linux-gcc gpio_demo.c -o gpio_demo 这时它会报一个错误: ?...再次将gpio_demo放到板子上,运行,就不再报错了,可以看到LED D3灯在不断的闪烁。 5 结束语 本篇为大家介绍了Linux下GPIO的使用,同时也穿插着介绍shell脚本的些许知识。

    3.3K20

    Linux系统驱动之链式中断控制器驱动程序编写

    资料下载 coding无法使用浏览器打开,必须用git工具下载: git clone https://e.coding.net/weidongshan/linux/doc_and_source_for_drivers.git...驱动提供 屏蔽GIC 33号中断:调用irq_dataA的irq_chip的函数,irq_dataA由GIC驱动提供 细分并处理某个GPIO中断: 读取GPIO寄存器得到hwirq,通过...GPIO Domain转换为virq,假设是102 调用irq_desc[102].handle_irq,即handleC 清除GIC 33号中断:调用irq_dataA的irq_chip的函数,由GIC...驱动提供 handleC:处理GPIO 2号中断,handleC由GPIO驱动提供 屏蔽GPIO 2号中断:调用irq_dataB的irq_chip的函数,由GPIO驱动提供 处理:调用actions...链表中用户注册的函数 清除GPIO 2号中断:调用irq_dataB的irq_chip的函数,由GPIO驱动提供 1.2 irq_domain的核心作用 怎么把handleB、GPIO Domain、handleC

    1.6K30
    领券