中断请求request_irq

今天在跟marvell沟通问题的时候,觉得有些地方的代码看得不够仔细,于是细看了一下。发现了几个请求中断的函数。

request_threaded_irq,这个函数在内核中有注释,参数有好多,大概参数有handler,这是要指定的中断处理函数,thread_fn是要在内核线程中调用的函数,还有申请中断的flag,有SHARED共享,共享时dev_id不能为空,因为要在释放irq时区别共享的中断,这个dev_id一般为某个info,ONESHOT(这个线程函数thread_fn执行前关闭这个中断)。

当handler为空时,使用默认的处理,看到代码里申请内核线程方式的中断的时候直接把handler置为NULL,中断发生应该是直接把thread_fn扔到内核线程中让它去调用,申请时用了ONESHOT,也就是调用thread_fn时关闭了这个中断。这种扔到内核线程的方法其实很不错,放到了下半部去处理。让我想起了前段时候给marvell提的问题,看到他们在中断处理中用了mutex_lock互斥锁,当时别人也没有仔细看,说这个不行,让我提个问题,结果marvell的工程师说这是在下半部里面,才发现,啊,确实是在下半部里,大家都傻B了。

再看看request_irq,原来这个函数是对request_thread_irq的封装,它给request_thread_irq的thread_fn参数传进了一个NULL,也就是只申请中断处理函数,不要thread_fn,看来这样确实有点合适啊,哈哈。

扯来扯去,扯了一大篇了,哈哈。

今天弄高通8的问题,rpc啊,弄得不知道它用rpc传了些啥数据,蛋疼。。。

对了,今天早上去的时候还想弄弄那个触摸屏按键的长按问题,本来前段时间把那个驱动的代码基本重写了一遍,后来发现还是没有实现这个功能,今天早上又突发奇想,在evkeybit上或了一个EV_REP,想试试行不行,没找到手机,所以就没有试,哈哈。不过这个功能也不是特别需要吧。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/434743.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

fastapi 传输文件存文件_python3 FastAPI框架入门 基本使用, 模版渲染, 数据交互,cookie使用, 上传文件, 静态文件配置...

[FastAPI框架入门 基本使用, 模版渲染, form表单数据交互, 上传文件, 静态文件配置]安装pip3 install fastapi [all]pip3 install unicornpip3 install aiofilespip3 install HTMLResponsepip3 install Responsepip3 install shapelypip3 install starlettepip3 install reques…

android平台的s5pc110触摸屏驱动分析

内核linux2.6.35 andorid2.3 触摸屏型号ft5xo6首先给出该触摸屏的一些结构体---->drivers/input/touchscreen/ft5x06_ts.h点击(此处)折叠或打开 #ifndef __LINUX_FT5X0X_TS_H__ #define __LINUX_FT5X0X_TS_H__ #define SCREEN_MIN_X 0 #define SCREEN_MAX_X 320 #define SC…

Thread类和Runnable接口

两者都可以实现多线程,那么两者的区别和联系有哪些? Thread类的定义。 public class Thread extends Object implements Runnable 从Thread类的定义可以清楚的发现,Thread类也是Runnable接口的子类,但是Thread类中并没有完全地…

mysql的每隔1分钟定时_mysql定时任务

查看event是否开启show variables like %sche%;开启event_schedulerset global event_scheduler 1;创建存储过程spark.testCREATE PROCEDURE spark.test ()BEGINupdate spark.userbehaviordatasource set v1 3 where page like page2%;END;创建event spark.e_testcreate event…

linux powerpc i2c驱动 之 i2c设备层的注册过程

Linux下i2c驱动的加载过程,分为i2c设备层、i2c adapter层与i2c核心层 i2c设备驱动层也就是我们为特定i2c设备编写的驱动,下面是我自己理解的i2c驱动的注册过程 在我们写的i2c设备驱动中,我们会调用i2c_add_driver()开始i2c设备驱动的注册&am…

易宝支付碰到 交易签名无效问题 (2)

无意中翻了翻旧日的代码,原来在上一次交易签名无效的问题仅仅是出现在一个调用的问题上,merchantProperties.php被调用了两次,当第一次被调用的时候是正确加载的,而在第二次调用的时候出就会出现参数丢失的现象,正因为…

北斗三号b1c频点带宽_北斗三号导航信号的创新设计(一)

《测绘学报》构建与学术的桥梁 拉近与权威的距离一需求与挑战1.1 卫星导航信号的作用与意义卫星导航信号是由导航卫星向地球表面播发的无线电测量信号,承担着传递时空基准信息和实施被动测距两大任务,是卫星导航系统实现三边定位的核心载体。卫星导航信号…

g++ linux 编译开栈_linux gcc和g++版本的修改

##编译的时候容易遇到:unsupported GNU version! gcc versions later than 6 are not supported这样的错误。所以我们要更改系统的gcc和g编译器版本。首先我们要知道一个基础的常识,一般而言,linux系统会把gcc和g默认安装在/usr/bin/的目录下…

使用FFmpeg从视频中截图的命令

截取一张352x240尺寸大小的,格式为jpg的图片: ffmpeg -i test.asf -y -f image2 -t 0.001 -s 352x240 a.jpg 把视频的前30帧转换成一个Animated Gif : ffmpeg -i test.asf -vframes 30 -y -f gif a.gif 目前还没有找…

Linux I2C核心、总线与设备驱动(一)

本章导读 I2C总线仅仅使用SCL、SDA两根信号线就实现了设备之间的数据交互,极大地简化对硬件资源和PCB板布线空间的占用。因此,I2C总线被非常广泛地应用在EEPROM、实时钟、小型LCD等设备与CPU的接口中。 Linux定义了系统的I2C驱动体系结构,在L…

微软企业库4.1学习笔记(十)企业库的设计

在设计整个企业库的过程中,使用了一系列的最佳实践。下面列出一些里面的最佳实践: 在核心库中使用了Common模块  使用了统一的命名约定和统一的版本  在设计的过程中使用单元测试  在所有模块中包含基础结构在企业库的模块中包含了下面的模式&…

ebay注册流程_跨境电商平台eBay企业入驻流程

整个流程一共包括8个部分了解企业入驻通道企业入驻通道将帮助现有eBay大中华卖家申请并获得高刊登额度的新账户,以满足卖家在品类拓展以及站点拓展的需求。准备材料1.营业执照2.法人代表身份证明,或eBay帐户注册人身份证明(根据地区法规有不同…

Linux I2C核心、总线与设备驱动(二)

从上面的分析可知,虽然I2C硬件体系结构比较简单,但是I2C体系结构在Linux中的实现却相当复杂。当工程师拿到实际的电路板,面对复杂的 Linux I2C子系统,应该如何下手写驱动呢?究竟有哪些是需要亲自做的,哪些是…

解决Android中的ERROR: the user data image is used by another emulator. aborting的方法

解决Android中的ERROR: the user data image is used by another emulator. aborting的方法 今天调试代码的时候,突然出现这个错误,折腾了很久没有解决。最后在google上找到了大家给出的两种解决方案,下面给出这两种方法的链接博客&#xff1…

mtu设置失败_Oracle RAC该调整网卡MTU值

在Oracle RAC的环境中,如果我们发现OSW监控数据显示包重组失败率过高,就需要引起足够的重视,因为这很可能会引发member kill/Node kill等重大故障,甚至在有些场景会连带影响到所有RAC节点不可用。一般我们会选择调整ipfrag相关参数…

i2c_add_driver函数用法

I2C的设备驱动是通过i2c_add_driver(&my_driver)向i2c-core注册的,my_driver中的核心是detach和attach函数,在attach中通过probe探测到总线上的设备并把设备和 驱动建立连接以完成设备的初始化。如何探测总线上的设备、Linux中i2c设备地址如何标识并…

基因组印记

基因组印记是指来自父方和母方的等位基因在通过精子和卵子传递给子代时发生了修饰,使带有亲代印记的等位基因具有不同的表达特性,这种修饰常为DNA甲基化修饰,也包括组蛋白乙酰化、甲基化等修饰。在生殖细胞形成早期,来自父方和母方…

判断字段长度大于某长度_判断数据库性能只能通过count(*)?No,这些优化方案了解一下!...

大多数用户在体验数据库时,接触到的最早的sql语句就是count(*),因此用户判断数据库性能时通常也会通过count(*)进行比较。但在执行时通常会出现一个问题:对某个表做count(*)时需对全表数据进行扫描,当表中包含数据量较大的字段时&…

linux下i2c接口的电容触摸屏驱动开发

原文地址: http://hi.baidu.com/god_sperm/blog/item/2aaac228e8a1ece8e7cd400a.html 电容触摸屏 2011-01-14 15:36 1.Kconfig文件    增加宏定义 2.Makefile文件 增加编译处理 3.添加程序源码 Touch screen remote control design document 2010…

10 款基于 jQuery 的切换效果插件推荐

本文整理了 10 款非常好用的jQuery切换效果插件,包括平滑切换和重叠动画等,这些插件可以实现不同元素之间的动态切换。 1. InnerFade 这是一个基于jQuery的小插件,可以实现页面内的元素淡入淡出效果。 源码/演示 2. HighlightFade 该插件可以…