Android使用switch模块进行GPIO口检测(一)-->LINUX驱动部分
来源:互联网 发布:成都网知科技有限公司 编辑:程序博客网 时间:2024/04/27 12:18
费了两天时间将Switch模块熟悉了下并编写了LINUX部分的驱动程序,现在记录下。。。
Switch模块就是LINUX的GPIO口输入监测框架,位于/drivers/switch目录下,默认有switch_class.c与switch_gpio.c两个文件。
switch_class.c作为一个class看看就明白了,switch_gpio.c中在我看来是一个例子,可以仿照该例子自己新建相应的IO口驱动,
我的板子上有四个IO口需要监测,开始我是建立四个相应IO口驱动,然后发现这样做有些重复繁琐的感觉,就决定做一个switch_gpios.c文件,
将几个IO口检测驱动集成到一个文件中,然后就开动吧,主要修改的部分其实就是probe函数部分
过程参考了按键驱动部分,将所有引脚gpio_switch_platform_data结构打包为一个数组传到platform_device的dev.platform_data中,
然后在probe函数中解析出来,申请内存,申请IO中断,默认的IO触发条件为低电平,我按照这样做的结果是当该引脚电平拉低后系统直接卡住了。。。
所以我改成了上升沿与下降沿触发,并添加了工作队列结构,而非直接触发,因为要滤波的么。。。
其他再就没什么要注意的了。。。
0 0
- Android使用switch模块进行GPIO口检测(一)-->LINUX驱动部分
- Android使用switch模块进行GPIO口检测(二)-->Android内核部分
- Android 驱动 (一) GPIO
- 基于linux switch模块的HDMI检测状态驱动
- Android drivers/switch驱动详解(用于通过GPIO状态检测耳机、HDMI等的插拔状态)
- Linux内核驱动子系统(一)GPIO的使用
- Linux内核驱动之GPIO子系统(一)GPIO的使用
- Linux内核驱动之GPIO子系统(一)GPIO的使用
- Linux内核驱动之GPIO子系统(一)GPIO的使用
- Linux内核驱动之GPIO子系统(一)GPIO的使用
- Linux内核驱动之GPIO子系统(一)GPIO的使用
- Linux内核驱动之GPIO子系统(一)GPIO的使用
- Linux内核驱动之GPIO子系统(一)GPIO的使用
- Linux内核驱动之GPIO子系统(一)GPIO的使用
- Linux内核驱动之GPIO子系统(一)GPIO的使用
- Linux内核驱动之GPIO子系统(一)GPIO的使用
- Linux内核驱动之GPIO子系统(一)GPIO的使用
- Linux内核驱动之GPIO子系统(一)GPIO的使用
- ios学习路线—Objective-C(ARC)
- eclipse常用快捷键整理
- Linux查看系统配置常用命令
- ios App启动加载广告页面思路
- archlinux 安装笔记
- Android使用switch模块进行GPIO口检测(一)-->LINUX驱动部分
- SQLServer中uniqueidentifier数据类型理解
- 自定义网页滚动条样式插件malihu-custom-scrollbar-plugin的介绍和使用方法
- MFC图形用户界面——简单一元二次方程求根
- 第三篇 zigbee基本概念--zigbee寻址
- 用OracleDataAdapter将DataTable写入Oracle数据库
- 关于ubuntu15.01无法进入图形界面--解决
- 个人总结一些关于需要学习的技术
- 时序模式--时间序列分析