如何选择在Linux下与gpio一起工作?
是否可以使用select来创建一种中断驱动程序,也许可以通过一些线程的帮助?
当我使用select调用时,我应该考虑什么?
谢谢
注意:我已经阅读了select上的手册页,但我认为我需要更多关于这个主题的帮助。
man 3位置选择
man 2选择
man 2 select_tut
更新:gpio公开在sysfs gpio块中。但我不知道我能不能用这个和select。
我正在开发一个嵌入式Linux ARM系统,它需要以特定的顺序关闭一些电源(通过GPIO控制),从而对电源故障信号做出反应。这个过程需要尽快启动,所以我已经安装了一个中断处理程序来检测这个电源故障。
问题是,我们需要在关闭每一种供应之间引入一点延迟。我知道中断处理程序中通常不允许延迟,但是如果这个处理程序永远不会返回(电源正在故障!),这是完全没有问题的。
我试图通过使用中描述的方法来引入延迟,但在我的一生中,我实际上不能造成可测量的延迟(在示波器上观察到)。
我做错了什么,怎么做才是对的?
下面是相关的代码。
/* This function sets en_gpio low, then w
我正试图在我的驱动程序中为DM6446 GPIO银行0 interrupt.But request_irq返回设置一个中断处理程序。我从数据表中知道GPIO银行的中断号为56。下面是我代码中GPIO的设置,我想在GPIO-10上获得中断。
while((REG_VAL(PTSTAT) & 0x1) != 0); // Wait for power state transtion to finish
REG_VAL(MDCTL26) = 0x00000203; //To enable GPIO module and EM
更新: i将键盘布局文件(gpio-keys.kl)更改为:
key 115 POWER WAKE
key 114 POWER WAKE
正如所见,我现在注册了音量按钮作为电源键在安卓,它唤醒了系统。不过,我希望有任何通用的gpio键唤醒系统。如前所述更改密钥布局文件的事实告诉我,问题可能在Android端,而不是Linux内核端。不确定。也许Android中有一些文件(策略文件等等)在这里,我可以为所选择的gpio键提供唤醒功能,就像POWER密钥具有这种唤醒功能一样。
请告诉我你的想法。
原件:作为背景,我的硬件是三星GalaxyS2-i 777,它运行在Exyno
我想在Beaglebone Black的一个引脚上有一个上升沿时触发一个事件。问题是,即使我没有把那个引脚连接到任何东西上,输出还是继续打印,中断发生了,中断发生了。我在stackoverflow上遇到了问题,并尝试按照步骤进行操作。有一个指向实现该功能的的链接。我读到了poll(),并且我对程序做了一些细微的修改,因为我只想监控一个管脚。更改后的代码为:
int main(int argc, char **argv, char **envp)
{
struct pollfd fdset[1]; // fdset[2] changed to fdset[1] since I will mon