linux GPIO的中断号在哪有定义?

[复制链接]
查看11 | 回复9 | 2021-1-27 06:30:15 | 显示全部楼层 |阅读模式
另外用中断号探测的话,能否找到?
个人感觉想按键这种GPIO中断不能通过中断号探测得到吧,毕竟,需要在驱动加载时手动触发中断,这不太现实。
分 -->
回复

使用道具 举报

千问 | 2021-1-27 06:30:15 | 显示全部楼层
好像是在irq.h里面有
回复

使用道具 举报

千问 | 2021-1-27 06:30:15 | 显示全部楼层
每种平台不完全一样的,在platform.h里有。
可以检测到,一般都是一组GPIO共用一个中断,触发了再去看GPIO的中断寄存器判断是哪个GPIO
回复

使用道具 举报

千问 | 2021-1-27 06:30:15 | 显示全部楼层
我查了一下,irq.h和platform.h里都没有。我用的是TQ2440的板子。
使用irq时有这样一个定义
staticstructbutton_irq_descbutton_irqs[]={
{IRQ_EINT1,S3C2410_GPF1,S3C2410_GPF1_EINT1,0,"KEY1"},/*K1*/
{IRQ_EINT4,S3C2410_GPF4,S3C2410_GPF4_EINT4,1,"KEY2"},/*K2*/
{IRQ_EINT2,S3C2410_GPF2,S3C2410_GPF2_EINT2,2,"KEY3"},/*K3*/
{IRQ_EINT0,S3C2410_GPF0,S3C2410_GPF0_EINT0,3,"KEY4"},/*K4*/
};

回复

使用道具 举报

千问 | 2021-1-27 06:30:15 | 显示全部楼层
我用sourceinsight查了一下,一共有三个定义IRQ_EINT1的地方,这三个地方分别对应不同的处理器。
我用的是2440,但是没有2440的,假设用的是2410的(有2410的头文件),那编译器怎么知道需要包含的到底是哪个头文件的呢?是不是源码树的某个地方有关于平台的信息来指示编译器需要去找哪个头文件??
回复

使用道具 举报

千问 | 2021-1-27 06:30:15 | 显示全部楼层
编译的时候当然要选什么平台了
回复

使用道具 举报

千问 | 2021-1-27 06:30:15 | 显示全部楼层
那也不能确定是哪种ARM啊,不同ARM之间的中断号应该有区别吧
回复

使用道具 举报

千问 | 2021-1-27 06:30:15 | 显示全部楼层
看你挂载那个中断上的咯
回复

使用道具 举报

千问 | 2021-1-27 06:30:15 | 显示全部楼层
什么意思??
引用7楼的回复:看你挂载那个中断上的咯
回复

使用道具 举报

千问 | 2021-1-27 06:30:15 | 显示全部楼层
引用楼主的回复:另外用中断号探测的话,能否找到?
个人感觉想按键这种GPIO中断不能通过中断号探测得到吧,毕竟,需要在驱动加载时手动触发中断,这不太现实。
看soc手册,这个一般是soc定死的
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行