linux 应用层gpio中断_如何在嵌入式Linux中检测GPIO线路上的中断?
在pandaboard OMAP4中,GPIO_39上每隔10ms产生一次中断.我已在Linux驱动程序代码中为此注册了处理程序,但由于未检测到中断,因此未处理该处理程序.
我确保在硬件级别(通过探测gpio引脚)确实正在生成中断.只是软件无法检测到它.
我在驱动程序代码中有以下内容.
#define GPIO_NO 39
iowrite16(0x3,gpio_39_address + 2); /* Configured the pin 22 to be used as gpio. */
ret = gpio_request(GPIO_NO,"Claiming GPIO");
if(ret < 0)
{
printk(KERN_ALERT "%s: Claiming GPIO_%d failed\n",__func__,GPIO_NO);
return -1;
}
else
{
printk(KERN_INFO "%s: Claiming GPIO_%d successful\n",GPIO_NO);
}
ret = gpio_direction_input(GPIO_NO);
if(ret < 0)
{
printk(KERN_INFO "%s: Setting GPIO direction to input failed\n",__func__);
return -1;
}
else
{
printk(KERN_INFO "%s: Direction of GPIO_%d set to input\n",GPIO_NO);
}
GPIO_IRQ = gpio_to_irq(GPIO_NO);
if(GPIO_IRQ < 0)
{
printk(KERN_INFO "%s: Mapping GPIO_%d to IRQ failed\n",GPIO_NO);
return -1;
}
else
{
printk(KERN_INFO "%s: Mapping GPIO_%d to IRQ_%d successful\n",GPIO_NO,GPIO_IRQ);
}
if((request_irq(GPIO_IRQ,ten_ms_int,IRQF_TRIGGER_FALLING,DEVICE_NAME,NULL)))
{
printk(KERN_ALERT "%s: requeseting GPIO_IRQ %d failed\n",GPIO_IRQ);
return -1;
}
else
{
printk(KERN_INFO "%s: requesting GPIO_IRQ %d successful\n",GPIO_IRQ);
}
irqreturn_t ten_ms_int(int irq,void *dev_id)
{
T_UINT32 l;
/* Enable spi channel */
l = ioread32(spi_base + SPI_CHCONF0);
l |= SPI_CHCONF0_FORCE;
iowrite32(l,(spi_base + SPI_CHCONF0));
l = ioread32(spi_base + SPI_CHCTRL0);
l |= SPI_CHCTRL_EN;
iowrite32(l,(spi_base + SPI_CHCTRL0));
/* Enable dma channel 0 */
l = ioread32(sdma_base + SDMA_CCR(CHANNEL0));
l |= SDMA_CCR_ENABLE;
iowrite32(l,sdma_base + SDMA_CCR(CHANNEL0));
/* Enable dma channel 1 */
l = ioread32(sdma_base + SDMA_CCR(CHANNEL1));
l |= SDMA_CCR_ENABLE;
iowrite32(l,sdma_base + SDMA_CCR(CHANNEL1));
//printk(KERN_INFO "%s: 10ms interrupt detected %d\n",irq); /* I know that I've to remove this printk statement */
return IRQ_HANDLED;
}
GPIO_39属于存储体GPIO2,相应的中断号为32.但是,gpio_to_irq()的返回值为199.这是另一个引起关注的原因.
如果代码中有问题或错过了某些内容,请告诉我.
linux 应用层gpio中断_如何在嵌入式Linux中检测GPIO线路上的中断?相关推荐
- linux 远程挂载摄像头_如何实现嵌入式Linux下USB摄像头视频采集
展开全部 在linux下所e5a48de588b662616964757a686964616f31333337613134有设备都是文件.所以对摄像头的操作其实就是对文件的操作.USB摄像头的设备文件 ...
- 嵌入式linux零基础培训,零基础精通嵌入式linux系统有那么容易吗
嵌入式linux系统让你从入门到精通,新手必备学习技术你要不要来试试.对于新手来说,嵌入式linux系统应该如何更快更好的学习,首先可以告诉你:你要有C语言基础,看你走哪方面,看是底层系统还是应用层开 ...
- 构建嵌入式linux系统_用于构建嵌入式Linux系统的4种工具
构建嵌入式linux系统 Linux正在被部署到比Linus Torvalds在他的宿舍里工作的设备更多的设备中. 受支持的各种芯片架构令人震惊,并导致各种大小的设备都使用Linux. 从庞大的IBM ...
- linux 嵌入式 快照_技术|定制嵌入式 Linux 发行版
便宜的物联网板的普及意味着它不仅会控制应用程序,还会控制整个软件平台. 那么,如何构建一个针对特定用途的交叉编译应用程序的自定义发行版呢? 正如 Michael J. Hammel 在这里解释的那样, ...
- linux dhcp 4.3编译,关于在嵌入式Linux下编译dhcp报错“cannot check for file existence when cross compiling”的初步研究...
前言.写这篇文章的由来 最近在学习韦东山嵌入式培训视频(3期项目实战之USB摄像头监控)时,在对dhcp源代码configure时,报错:cannot check for file existence ...
- 尚观linux视频配套教程,尚观最新嵌入式Linux基础视频教程 98集嵌入式Linux巨制视频教程 新手必备...
尚观最新嵌入式Linux基础视频教程 98集嵌入式Linux巨制视频教程 新手必备 5.jpg (67.09 KB, 下载次数: 0) 2018-4-16 09:34 上传 1.jpg (44.17 ...
- linux内核异常分析ecp,内核基于嵌入式Linux的PocketIX系统
lgms2008 于 2006-10-20 10:38:55发表: 应用领域与前景 目前PocketIX只是一个预览版,其正式版本不仅可以广泛应用于移动计算平台(PPC). 家庭信息环境(机顶盒.数字 ...
- arm linux考勤,定稿毕业论文_基于ARM与Linux的员工刷卡考勤系统喜欢就下吧(范文1)...
<毕业论文_基于ARM与Linux的员工刷卡考勤系统.doc>由会员分享,可免费在线阅读全文,更多与<(定稿)毕业论文_基于ARM与Linux的员工刷卡考勤系统(喜欢就下吧)> ...
- linux生成驱动编译的头文件,嵌入式Linux字符设备驱动——5生成字符设备节点
嵌入式Linux字符设备驱动开发流程--以LED为例 前言 留空 头文件 #include 查看系统设备类 ls /sys/class 设备类结构体 文件(路径):include/linux/devi ...
最新文章
- Educational Codeforces Round 12 A. Buses Between Cities 水题
- NOCOUNT如何影响ADO.NET(SET NOCOUNT ON的性能问题)
- 2.1 数个常用的网络命令
- shlwapi常用的操作路径函数
- Redis常用概念简介
- 作者:刘岩(1982-),男,泰康保险集团股份有限公司数据信息中心高级工程师、高级主管,中国计算机学会会员...
- git-比对不同-diff
- 【UOJ】【BZOJ】 [Zjoi2016]小星星
- Windows右键添加command(命令行)
- adobe flash builder 4.6最新能用的序列号
- 根据百度日历获取当年所有天数,以及判断今天是周几 以及是是节假日或者工作日,阴历阳历
- 一个MOC3061的可控硅触发电路的分析
- Oracle Coherence中文教程四:构建一个Coherence 应用
- docker 安装 es + kibana + ik + 拼音
- v-if绑定的元素为什么事件没有响应
- nuScenes 数据集(CVPR 2020)
- js实现整体,局部刷新
- 信息系统项目管理师第四版(最新)重点(背诵)内容概览
- 数据挖掘ID3算法详解
- HBuilder开发旅游类APP(一) ----- 实现地图插件调用、苹果和安卓同步混合开发
热门文章
- 程序员转实施工程师_只有程序员才能看得懂?程序员:算了,不看了,我得写代码了...
- C# 基础知识 (五).变量类型和字符串处理
- 12.1 Bootstrap介绍
- Go语言 科学计算库 Gonum 学习1
- 征战蓝桥 —— 2014年第五届 —— C/C++A组第6题——扑克排序
- 【ARM】Tiny4412裸板编程之MMU封装
- mysql5.7 读写分离_mysql5.7的主从复制+读写分离
- python迭代器和生成器_Python之迭代器和生成器
- python爬去百度搜索结果_python实现提取百度搜索结果的方法
- 是什么专业_自考什么专业容易就业