我有一个运行3.2内核的powerpc板。 用sysfs访问gpio可以像预期的那样工作
> echo 242 > /sys/class/gpio/export > cat /sys/class/gpio/gpio242/value > 1
有没有API来直接从用户空间访问GPIO引脚? 我必须处理基于文本的sysfs接口吗?
我喜欢这样的东西:gpio_set(int no,int val);
谢谢克劳斯
你如何检查你的内核是否支持硬件上的GPIO?
如何检测哪个引脚连接了传感器?
在Cubieboard平台中运行的Java代码中执行terminal命令获取输出
Linux用户空间GPIO使用sysfs中断
在DeviceTree中命名GPIO
如何从linux内核生成稳定的37kHz GPIO触发器?
PANDaboard GPIO银行从记忆中解脱出来
打开后文件没有准备好写入?
Linux内核模块中的定期任务
为什么在rapberry pi驱动中有`gpio_request`而不是`request_region`?
在最近的内核中,sysfs是你能够操纵GPIO的最低级别。 它可能有点乏味,但它提供了几个优于旧式API的优点:
没有丑陋的ioctl
可以很容易地脚本(认为启动脚本)
对于输入,“价值”文件可以很容易地轮询上升/下降/两个边缘,它会非常反应硬件中断
目前我没有示例代码,但是通过C代码访问它们时,我经常实现一个非常简单的包装器来操作文件描述符,并具有以下接口的变体:
int gpio_open(int number,int out); /* returns handle (fd) */ int gpio_close(int gpio); int gpio_set(int gpio,int up); int gpio_get(int gpio,int *up); int gpio_poll(int gpio,int rising_edge,int timeout);
从那时起,这个实现非常简单。
在vfs树中创建设备之后,可以像典型文件一样打开它们,前提是您已经编写了驱动程序,并在makedev文件中分配了正确的主要和次要编号,以在vfs树上创建gpio引脚。
每个GPIO都被映射为一个寄存器,所以你可以通过/ dev / mem访问它。 看到这里 。 如果要直接访问GPIO,则必须在内核空间级别工作
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。