我想使用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()
执行得很好。
你有什么想法吗?
答案 0 :(得分:8)
只有当GPIO引脚可以配置为中断发生引脚时,“edge”文件才存在。请参阅:http://www.mjmwired.net/kernel/Documentation/gpio.txt#634。
由于您没有看到它,这意味着驱动程序和可能的硬件不支持将该GPIO引脚用于中断源。