当前位置: 首页 > news >正文

platform和led中断项目

设备树根节点下添加 

    myledIrqPlatform{compatible="hqyj,myledIrqPlatform";reg=<0x22334455 59>;interrupt-parent=<&gpiof>;interrupts=<9 0>;led1-gpio=<&gpioe 10 0>;//10表示使用的gpioe第几个管脚  0,表示gpio默认属性};

驱动程序代码

#include <linux/init.h>
#include <linux/module.h>
#include <linux/platform_device.h>
#include <linux/mod_devicetable.h>
#include <linux/of_gpio.h>
#include <linux/interrupt.h>struct resource *res;
unsigned int irqno;//中断号
struct gpio_desc *gpiono;
unsigned int number = 0;// 定义中断处理函数
irqreturn_t key_handler(int irq, void *dev)
{printk("%s:%s:%d\n", __FILE__, __func__, __LINE__);int which = (int)dev;printk("which=%d number=%d\n",which,number);//灯状态取反gpiod_set_value(gpiono,!gpiod_get_value(gpiono));//变量 在 0 或 1之间切换number = (number == 0) ? 1 : 0;return IRQ_HANDLED;
}// 封装probe函数
int pdrv_probe(struct platform_device *pdev){//设备树匹配成功后,设备树节点指针可以通过pdev->dev.of_node获取//基于设备树节点信息获取gpio_desc对象指针//申请GPIO LED1灯gpiono = gpiod_get_from_of_node(pdev->dev.of_node,"led1-gpio",0,GPIOD_OUT_HIGH,NULL);if(IS_ERR(gpiono)){printk("解析GPIO管脚信息失败\n");return -ENXIO;}printk("解析GPIO管脚信息成功\n");//获取软中断号  irqno = platform_get_irq(pdev,0);if(irqno < 0){printk("获取中断LED类型资源失败\n");return -ENXIO;}printk("irq资源/软中断号%d\n",irqno);printk("%s:%s:%d\n", __FILE__, __func__, __LINE__);// 注册中断  按键KEY1 PE10int ret = request_irq(irqno, key_handler, IRQF_TRIGGER_FALLING|IRQF_SHARED, "key_int", (void *)1);if (ret < 0){printk("注册按键1中断失败\n");return ret;}printk("注册按键1中断成功\n");return 0;
}int pdrv_remove(struct platform_device *pdev){// 注销中断 按键KEY1 PE10free_irq(irqno, 0);//灭灯gpiod_set_value(gpiono,0);//释放GPIO信息 LEDgpiod_put(gpiono);printk("%s:%s:%d\n", __FILE__, __func__, __LINE__);return 0;
}//构建设备树匹配表
struct of_device_id oftable[] = {{.compatible = "hqyj,myledIrqPlatform"},{},//防止数组越界
};// 定义驱动信息对象并初始化
struct platform_driver pdrv = {.probe = pdrv_probe,.remove = pdrv_remove,.driver = {.name = "bbbbb",.of_match_table = oftable,//用于设备树匹配},
};//一键注册宏
module_platform_driver(pdrv);
MODULE_LICENSE("GPL");

相关文章:

platform和led中断项目

设备树根节点下添加 myledIrqPlatform{compatible"hqyj,myledIrqPlatform";reg<0x22334455 59>;interrupt-parent<&gpiof>;interrupts<9 0>;led1-gpio<&gpioe 10 0>;//10表示使用的gpioe第几个管脚 0&#xff0c;表示gpio默认属性…...

R语言-关于颜色

目录 颜色 示例 R 颜色板 参考&#xff1a; 颜色 什么场景会用到颜色&#xff1f;比如在绘图过程中&#xff0c;为了让图更好看&#xff0c;有的时候&#xff0c;需要选择使用不同的颜色进行绘制或者填充。本文提供了R颜色的相关参数。 在R中&#xff0c;可以通过颜色下标…...

抖音seo优化排名源码搭建

抖音seo优化排名技术开发源码搭建&#xff1a; 思路&#xff1a;看上去比较简单&#xff0c;貌似使用 get、set 这两个 trap 就可以&#xff0c;但实际上并不是。实际上还需要实现 has, ownKeys , getOwnPropertyDescriptor 这些 trap&#xff0c;这样就能最大限度的限制私有属…...

pytorch的卷积层池化层和非线性变化 和机器学习线性回归

卷积层&#xff1a; 两个输出的情况 就会有两个通道 可以改变通道数的 最简单的神经网络结构&#xff1a; nn.Mudule就是继承父类 super执行的是 先执行父类函数里面的 forward执行的就是前向网络&#xff0c;就是往前推进的&#xff0c;当然也有反向转播&#xff0c;那就是…...

Java手写快速选择算法应用拓展案例

Java手写快速选择算法应用拓展案例 1. 引言 快速选择算法是一种高效的选择算法&#xff0c;可以用于在数组中找到第K小/大的元素。除了基本的应用场景外&#xff0c;快速选择算法还可以应用于其他问题&#xff0c;如查找中位数、查找最大/最小值等。本文将介绍两个拓展应用案…...

js制作柱状图的x轴时间, 分别展示 月/周/日 的数据

背景 有个需求是要做一个柱状图, x 轴是时间, y 轴是数量. 其中 x 轴的时间有三种查看方式: 月份/周/日, 也就是分别查看从当前日期开始倒推的最近每月/每周/每日的数量. 本篇文章主要是用来制作三种不同的 x 轴 从当前月开始倒推月份 注意 getMonth() 函数可以获取当前月份…...

安防监控/视频汇聚/云存储/AI智能视频分析平台EasyCVR下级海康设备无法级联是什么原因?

安防视频监控平台/视频集中存储/云存储/磁盘阵列EasyCVR可拓展性强、视频能力灵活、部署轻快&#xff0c;可支持的主流标准协议有国标GB28181、RTSP/Onvif、RTMP等&#xff0c;以及支持厂家私有协议与SDK接入&#xff0c;包括海康Ehome、海大宇等设备的SDK等。 有用户反馈&…...

HttpUtils带连接池

准备祖传了&#xff0c;有问题欢迎大家指正。 HttpUtil import com.txlc.cloud.commons.exception.ServiceException; import com.txlc.dwh.common.constants.MyErrorCode; import org.ssssssss.script.annotation.Comment;import java.io.UnsupportedEncodingException; impo…...

智慧养殖:浅谈视频监控与AI智能识别技术助力奶牛高效、智慧养殖

一、方案背景 随着科技的飞速发展&#xff0c;智能化养殖逐渐成为现代畜牧业的发展趋势。人工智能技术、物联网、视频技术、云计算、大数据等新兴技术&#xff0c;正在为奶牛养殖业带来全新的变革。越来越多的牧场、养殖场开始运用新技术来进行智能监管、提高生产效率、降低生…...

一文总结提示工程框架,除了CoT还有ToT、GoT、AoT、SoT、PoT

夕小瑶科技说 原创 编译 | 谢年年 大语言模型LLM被视为一个巨大的知识库&#xff0c;它可以根据你提出问题或陈述的方式来提供答案。就像人类可能会根据问题的不同提供不同的答案一样&#xff0c;LLM也可以根据输入的不同给出不同的答案。因此&#xff0c;你的问题或陈述方式就…...

Java面试笔试acm版输入

首先区分scanner.nextInt()//输入一个整数&#xff0c;只能读取一个数&#xff0c;空格就停止。 scanner.next()//输入字符串&#xff0c;只能读取一个字符串&#xff0c;空格就停止&#xff0c;但是逗号不停止。 scanner.nextLine() 读取一行&#xff0c;换行停止&#xff0c…...

新手怎样快速上手接口测试?掌握这几个知识点直接起飞!

接口测试是测试系统组件间接口的一种方式&#xff0c;接口测试主要用于检测外部系统与系统之间以及内部各个子系统之间的交互点。测试的重点是检查数据的增删改查操作&#xff0c;以及系统之间的逻辑关系等。 接口的几种类型 接口的类型包括&#xff1a;post &#xff0c;get&…...

IDEA 启动 java web 老项目

背景&#xff1a;一套 java web 老代码&#xff0c;使用 eclipse 工具开发。内网&#xff0c;无 eclipse 开发工具&#xff0c;只有 IDEA。 代码目录结构如下&#xff1a; demo/.settings/* demo/src/com/demo/controller/* demo/webapp/js/* demo/webapp/jsp/* demo/webapp/M…...

软路由和硬路由的区别是什么,性价比与可玩性分析

软路由和硬路由是两种不同类型的路由器设备&#xff0c;它们在基本原理、功能、性能和灵活性等方面存在一些区别&#xff1a; 硬件&#xff1a;软路由是基于一台普通的计算机或服务器&#xff0c;通过软件来实现路由器的功能&#xff1b;而硬路由是专门设计的硬件设备&#xff…...

《TCP/IP网络编程》阅读笔记--多线程服务器端的实现

目录 1--多线程的优点 2--进程和线程的差异 3--线程创建 4--线程使用 5--线程安全问题 6--互斥量 7--信号量 8--线程销毁 9--多线程并发聊天程序 9-1--服务器端 9-2--客户端 9-3--测试结果 1--多线程的优点 多进程服务器的缺点&#xff1a; ① 创建进程的过程会带来…...

修改el-card的header的背景颜色

修改el-card的header的背景颜色 1.修改默认样式 好处是当前页面的所有的el-card都会变化 页面卡片&#xff1a; <el-card class"box-card" ><div slot"header" class"clearfix"><span>卡片名称</span><el-button s…...

ubuntu系统中查看打开的端口

要查看Ubuntu系统中已打开的端口及其相关信息&#xff0c;可以使用以下方法&#xff1a; 打开终端&#xff08;Terminal&#xff09;。 运行以下命令以查看当前系统中的端口使用情况&#xff1a; sudo netstat -tuln这将显示所有已打开的端口及其相关信息&#xff0c;包括监听…...

Datax从mysql同步数据到HDFS

在实际使用Datax的时候&#xff0c;比较常用的是同步业务数据&#xff08;mysql中的数据&#xff09;到HDFS来实现数仓的创建&#xff0c;那么怎么实现呢&#xff1f;我们一步步来实现&#xff08;基于Datax 3.0.0&#xff09; 1、检查环境&#xff0c;需要安装完一个Datax&am…...

使用 Selenium 或其他工具模拟浏览器使用及语法代码

使用Selenium模拟浏览器使用的代码示例如下&#xff1a; from selenium import webdriverfrom selenium.webdriver.common.keys import Keys# 创建浏览器驱动实例driver webdriver.Chrome()# 打开网页driver.get("https://www.example.com")# 查找并填写表单search_…...

华为手机如何开启设置健康使用手机模式限制孩子玩手机时间?

华为手机如何开启设置健康使用手机模式限制孩子玩手机时间&#xff1f; 1、在手机上找到「设置」并点击打开&#xff1b; 2、在设置内找到「健康使用手机」并点击进入&#xff1b; 3、开启健康使用手机后&#xff0c;选择孩子使用&#xff1b; 4、在健康使用手机内&#xff0c…...

从样式覆盖到版本升级:全面解析Antd表格固定列对齐问题的解决路径

1. 问题复现&#xff1a;当Antd表格固定列开始"跳舞" 第一次遇到Antd表格固定列错位问题时&#xff0c;我正喝着咖啡调试一个后台管理系统。突然发现表格右侧的固定列像被施了魔法——表头和内容列完全错开&#xff0c;活像跳着蹩脚的探戈。这种问题在Antd 3.x版本中…...

工业物联网长距离蓝牙环境监测方案解析

1. 项目概述在工业物联网和远程环境监测领域&#xff0c;如何实现低功耗、长距离的数据传输一直是个技术难点。传统蓝牙技术受限于通信距离&#xff08;通常10米以内&#xff09;&#xff0c;而Wi-Fi方案又面临功耗过高的问题。最近我在一个工厂环境监测项目中&#xff0c;成功…...

别再为EVE-ng镜像发愁了!手把手教你从官网下载到VMware部署(附国内加速地址)

EVE-ng网络模拟器全流程实战&#xff1a;从镜像获取到高阶配置 第一次接触网络设备模拟的工程师&#xff0c;往往会在EVE-ng的入门阶段遇到各种"拦路虎"——镜像文件找不到可靠的下载源、导入VMware时配置出错、虚拟网络连接异常。这些问题如果得不到解决&#xff0c…...

边缘计算实战:基于 Linux Netns 与标准海事网关抵御局域网横向攻击的物理隔离架构

摘要&#xff1a;扁平化局域网极易遭受 ARP 欺骗与黑客横向攻击。本文记录了在标准工业级海事网关上基于 Linux netns 构建网络物理与逻辑隔离防线的实操复盘。 导语&#xff1a;在实操一个远洋船载网络的安全重构项目时&#xff0c;我们面临一个极其严峻的威胁模型&#xff1…...

MySQL 基础:SELECT、WHERE、JOIN 的第一次使用

不用怕数据库&#xff0c;跟着这三个单词&#xff0c;你就能查到你想要的一切。欢迎来到 《大一突围》 专栏。很多大一同学第一次接触 MySQL&#xff0c;看到“数据库”三个字就觉得很难。其实&#xff0c;你日常生活中每天都在“查数据”——查成绩、翻通讯录、筛选淘宝商品……...

【信息科学与工程学】【财务管理】 第二十三篇 ICT行业商业逻辑分析框架03

136. 硅光子集成芯片的激光器外延片 行业代码 行业名称 行业级别 产品/服务 商业逻辑核心 投资者类型与代表公司/机构 外部关系类型与关联公司 销售与买卖经营 供应链经营 利益/利润设计/资源绑定/信息宣传 分销商/代理商/关系节点 销售策略、打法与复杂关系网络 3…...

菜单栏管理革命:Ice 如何用智能算法重塑 macOS 效率界面

菜单栏管理革命&#xff1a;Ice 如何用智能算法重塑 macOS 效率界面 【免费下载链接】Ice Powerful menu bar manager for macOS 项目地址: https://gitcode.com/GitHub_Trending/ice/Ice 当 macOS 菜单栏成为现代工作流的瓶颈时&#xff0c;Ice 以开源解决方案的身份出…...

X-TRACK开源GPS自行车码表终极指南:从硬件组装到软件配置的完整教程

X-TRACK开源GPS自行车码表终极指南&#xff1a;从硬件组装到软件配置的完整教程 【免费下载链接】X-TRACK A GPS bicycle speedometer that supports offline maps and track recording 项目地址: https://gitcode.com/gh_mirrors/xt/X-TRACK X-TRACK是一款功能强大的开…...

Visual C++运行库终极修复指南:一键解决软件启动失败的完整方案

Visual C运行库终极修复指南&#xff1a;一键解决软件启动失败的完整方案 【免费下载链接】vcredist AIO Repack for latest Microsoft Visual C Redistributable Runtimes 项目地址: https://gitcode.com/gh_mirrors/vc/vcredist 你是否曾经遇到过游戏打不开、专业软件…...

YOLO 全景解析:从 v8 到 v26(基于 Ultralytics 本仓库)

本文基于当前仓库 ultralytics-main 源码逐行解析,覆盖 v8 → v9 → v10 → v11 → v12 → v26 的主干、Neck、Head、损失、训练、验证、推理、导出与量化。文中的代码引用全部指向本仓库实际文件与行号,方便 Ctrl+点进去核对。 0. 阅读地图 关注点 你应该看哪一章 关键源码 …...