OpenWrt 之 MT7628 使用GPIO中断
在支持设备树的系统中使用中断一般有2种方式。
一、DTS配置interrupt节点
这里有个挺好的博客,链接地址:https://biscuitos.github.io/blog/DTS-interrupt/
也即,找到dts文件中的GPIO中断控制器节点,然后在你的dts驱动节点中根据interrupt cells数量做下声明。
二、通过宏 gpio_to_irq 获取
我在实验中是通过这个方式实现的中断功能。gpio_to_irq 函数的参数传入对应的 gpio 序号,这里我用的是 GPIO0,所以传入的参数就是0,然后系统会自动帮你计算得到处理器真实的中断编号;
三、申请中断
1、int request_irq(unsigned int irq, irq_handler_t handler, unsigned long irqflags, const char *devname, void *dev_id)
2、int request_threaded_irq(unsigned int irq, irq_handler_t handler, irq_handler_t thread_fn, unsigned long irqflags,const char *devname, void *dev_id);
实际上2者底层实现是类似的,request_irq 可以看作为 request_threaded_irq 的 thread_fn 函数置成了 NULL;
方法2是在实现时会调用 kthread_create 创建一个内核线程来实现中断线程化,目的就是为了可以给像线程一样管理中断,赋予不同优先级,保证实时性。
有疑问可以Mail或评论哦~:-D
OpenWrt 之 MT7628 使用GPIO中断相关推荐
- LPC1768外部中断与GPIO中断
LPC1768的外部中断严格来说只有四个,分别是EINT0,EINT1,EINT2,EINT3,技术手册上有如下说明 控制这四个外部中断靠以下寄存器 这三个寄存器的0 1 2 3位分别代表中断的0 1 ...
- unbalanced enable irq 问题的解决 以及共享的gpio中断引起的问题
点击打开链接 最近在工作中使用irq时遇到如下问题,根据log显示应该是什么所谓的不平横问题,先前也没有仔细研究这个问题,只是定位到是enable_irq函数调用所致. 因为在项目中使用的中断是gpi ...
- Omap3530 的GPIO中断设置
Omap3530 的GPIO中断设置: 1.配置成GPIO,申请GPIO中断 omap_cfg_reg(OMAP3_KBD_GPIO);配置成gpio if (gpio_request(OMAP3_K ...
- 树莓派移植SX1278 LoRa通信--使用wiringPi 移植GPIO中断
一.SX1278 数字接口状态映射 从官方文档可知sx1278的数字接口状态映射明细,移植的代码中主要用查询的方式来判断在连续模式下是否接收和发送完成,因此只需要用到DIO0.如果要用到CAD,则需要 ...
- 将5350 i2c clk设置为gpio 中断模式的方法
5350和我之前用的三星和全志的芯片在中断这块有点差别,三星和全志的都是有专门的外部中断管脚,并且每个中断管脚对应一个中断号,对管脚寄存器的配置即irq_desc里chip变量,都是bsp里自带的,我 ...
- IMX6ULL学习笔记(18)——GPIO中断
一.中断简介 相比 STM32 的 NVIC,IMX6ULL 的中断控制系统更复杂,它的中断管理器使用的是 GIC V2,GIC V2 的实现方式与我们熟知的 NVIC 差别较大. 1.1 GIC G ...
- xilinx zynq 7010/7020 中断/中断向量/GIC向量/GPIO中断
上图所示GIC左边的称为中断请求源,它们产生中断请求.所有的中断请求都可以发送到GIC通用中断控制器,所以它是一个集中式的中断请求中心.GIC根据请求源的属性(enables, disables, m ...
- Arduino ESP32:测试GPIO中断功能
Arduino ESP32:测试GPIO中断功能 ESP32:测试GPIO中断功能 实例代码 /*测试GPIO中断功能接线说明: 按键1接23,按键2接18 */#include <Arduin ...
- linux 应用层gpio中断_树莓派官方自带gpio中断驱动bcm2708_gpio.c原理分析 linux 中断架构 中断子系统...
上一篇记录了树莓派自带的gpio驱动(外链网址已屏蔽),在bcm2708_gpio.c实现gpio驱动的同时其实也实现了中断控制器的驱动,本文记录bcm2708_gpio.c中驱动的实现. 一·bcm ...
最新文章
- 形态数轴的非递进现象
- php中隐藏和展开文章,手机端第一屏页面文章的展开和隐藏_html/css_WEB-ITnose
- 关于批量启动微服务的jar包_分布式任务抢占及系统监控服务 Radish
- 防火墙(12)——查看协议被连接的次数、通过连接状态来写规则
- 使用jsonEditor打造一个复杂json编辑器
- mysql 不执行索引_mysql使用不上索引的几种情况
- 两万字详解MongoDB从入门到精通
- C语言实现QQ刷屏,绝对实用
- 某热门单击手游lua解密.md
- swapfile.sys文件的作用及如何禁用Hibernate.sys和Pagefile.sys
- linux下对SD卡分区
- linux双显卡配置_linux下的双显卡切换
- Sql Sever删除数据库时提示数据库正在被使用,无法删除解决办法
- 数据库设计-UML模型
- 数字电视业务PSI/SI学习
- 解决报错Cannot connect to the Maven process. Try again later. If the problem persists, check the
- linux猜数字代码,Shell脚本实现猜数字游戏
- 机器学习和深度学习之数学基础-线性代数 第一节 向量及线性映射
- MATLAB1阶零模型,MATLAB/simulink控制系统之离散系统模型(0基础)
- canvas 绘制逼真人物_绘制逼真的iPad2 – Photoshop教程