把GPIO 通过sysfs导出到 用户空间

1.1. 打开gpiolib支持,在menuconfig中
evice Drivers->GPIO Support,选择:
[*] /sys/class/gpio/… (sysfs interface)
<*> Generic memory-mapped GPIO controller support (MMIO platform device) 


* /sys/class/gpio/export          文件用于通知系统需要导出控制的GPIO引脚编号
* /sys/class/gpio/unexport      用于通知系统取消导出
* /sys/class/gpio/gpiochipX    目录保存系统中GPIO寄存器的信息,包括每个寄存器控制引脚的起始编号base,寄存器名称,引脚总数 导出一个引脚的操作步骤
* 首先计算此引脚编号,引脚编号 = 控制引脚的寄存器基数 + 控制引脚寄存器位数
* /sys/class/gpio/export           写入此编号,比如12号引脚,在shell中可以通过以下命令实现,
     echo 12 > /sys/class/gpio/export
     命令成功后生成/sys/class/gpio/gpio12目录,如果没有出现相应的目录,说明此引脚不可导出;
* direction文件,定义输入输入方向,可以通过下面命令定义为输出
     echo out > /sys/class/gpio/gpio12/direction
     direction接受的参数:in, out, high, low。high/low同时设置方向为输出

* value文件是端口的数值,为1或0.
  echo 1 > /sys/class/gpio/gpio12/value

参考:http://blog.csdn.net/mirkerson/article/details/8464290

            http://blog.csdn.net/coroutines/article/details/44020819

            已经被系统分配的GPIO,echo操作会失败,这是一种保护机制,为了测试,可以修改下代码来屏蔽(3.10.35内核)
            http://blog.csdn.net/coroutines/article/details/44020819

            实例:http://blog.csdn.net/drivermonkey/article/details/20132241?utm_source=tuicool&utm_medium=referral


1.2 打开DEBUG_PINCTRL功能

Symbol: DEBUG_PINCTRL [=y] 

     Location:                                                              
       -> Device Drivers                                                 
          -> Pin controllers  
    -*- Support pin configuration controllers                          
    [*] Debug PINCTRL calls                                            
    <*> One-register-per-pin type device tree based pinctrl driver     
    [ ] Pinctrl driver for the PALMAS Series MFD devices   



1.3 gpio export报错

强制export GPIO,可做如下操作:
\drivers\gpio\gpiolib.c
static int gpiod_request(struct gpio_desc *desc, const char *label)
添加 :desc->flags =   0;/*强制export GPIO  */


已经被系统分配的GPIO,echo操作会失败,这是一种保护机制,为了测试,可以修改下代码来屏蔽(3.10.35内核)
http://blog.csdn.net/coroutines/article/details/44020819




  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值