使用 sysfs 的 Linux 用户空间 GPIO 中断
我想使用 sysfs 在用户空间上使用 GPIO 中断。 我使用这些命令:
[root@at91]:gpio109 > echo 109 > export
[root@at91]:gpio109 > cd gpio109/
[root@at91]:gpio109 > ll
-rw-r--r-- 1 root 0 4096 Jan 1 00:17 direction
drwxr-xr-x 2 root 0 0 Jan 1 00:17 power
lrwxrwxrwx 1 root 0 0 Jan 1 00:17 subsystem -> ../../gpio
-rw-r--r-- 1 root 0 4096 Jan 1 00:17 uevent
-rw-r--r-- 1 root 0 4096 Jan 1 00:17 value
gpio 工作良好,但我无法使用中断。 我到处都读到我必须有一个边缘文件来轮询该文件。但在我的系统上这个文件不存在。 我做了很多尝试来寻找解决方案,但仍然没有成功。
我的目标是 Linux 内核 2.6.30 上的 AT91SAM9263。
在我的主板启动时,我收到了有关中断的消息:
AT91: 160 gpio irqs in 5 banks
这表明函数 at91_gpio_irq_setup()
执行良好。
你有什么想法吗?
I would like to use interrupts with GPIO on userspace using sysfs.
I use these commands :
[root@at91]:gpio109 > echo 109 > export
[root@at91]:gpio109 > cd gpio109/
[root@at91]:gpio109 > ll
-rw-r--r-- 1 root 0 4096 Jan 1 00:17 direction
drwxr-xr-x 2 root 0 0 Jan 1 00:17 power
lrwxrwxrwx 1 root 0 0 Jan 1 00:17 subsystem -> ../../gpio
-rw-r--r-- 1 root 0 4096 Jan 1 00:17 uevent
-rw-r--r-- 1 root 0 4096 Jan 1 00:17 value
The gpio works well but I can't use interrupts.
I read everywhere i must have an edge file to poll this file. But on my system this file doesn't exist.
I made a lot of tries to find a solution but remain unsuccessfull.
My target is an AT91SAM9263 on linux kernel 2.6.30.
At the boot of my board I got this message on interrupts :
AT91: 160 gpio irqs in 5 banks
which show that the function at91_gpio_irq_setup()
is well executed.
Have you any idea ?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
仅当 GPIO 引脚可配置为中断生成引脚时,“edge”文件才存在。请参阅:http://www.mjmwired.net/kernel/Documentation/gpio.txt#634。
由于您没有看到它,这意味着驱动程序和可能的硬件不支持使用该 GPIO 引脚作为中断源。
The "edge" file only exists if that GPIO pin can be configured as a an interrupt generting pin. See: http://www.mjmwired.net/kernel/Documentation/gpio.txt#634.
Since you don't see it, it means the driver and possibly the hardware do not support using that GPIO pin for interrupt source.