全志R58平台的GPIO引脚控制

本文详细介绍了在全志R58平台下通过sysfs接口控制GPIO引脚的方法,以PD24为例,展示了如何在Linux环境下配置GPIO,包括设置方向和读写引脚值的过程。


全志R58平台的GPIO引脚控制

2017/8/18 15:50

版本:V1.0

 

 

开发板:SC5806(全志R58平台)

SDK:android4.4.4

 

本文以GPIO引脚PD24为例,在开发板的背面。J18座子上,+5V旁边(可以用这个引脚来定位!)。

 

rootroot@cm-System-Product-Name:/home/wwt/vxiaoyu_s5k5eya/lichee/linux-3.4$ make ARCH=arm menuconfig

Device Drivers  --->

-*- GPIO Support  --->

[ ]   /sys/class/gpio/... (sysfs interface)

修改为:

[*]   /sys/class/gpio/... (sysfs interface)

 

 

rootroot@cm-System-Product-Name:/home/wwt/vxiaoyu_s5k5eya/lichee$ find . -name gpio.h

./linux-3.4/arch/arm/mach-sunxi/include/mach/gpio.h

W:\xiaoyu_s5k5eya\lichee\linux-3.4\arch\arm\mach-sunxi\include\mach\gpio.h

 

得知GPIO号:

#define SUNXI_PINCTRL "sunxi-pinctrl"

#define SUNXI_BANK_SIZE 32

#define SUNXI_PA_BASE 0

#define SUNXI_PB_BASE 32

#define SUNXI_PC_BASE 64

#define SUNXI_PD_BASE 96

#define SUNXI_PE_BASE 128

#define SUNXI_PF_BASE 160

#define SUNXI_PG_BASE 192

#define SUNXI_PH_BASE 224

#define SUNXI_PI_BASE 256

#define SUNXI_PJ_BASE 288

#define SUNXI_PK_BASE 320

#define SUNXI_PL_BASE 352

#define SUNXI_PM_BASE 384

#define SUNXI_PN_BASE 416

#define SUNXI_PO_BASE 448

#define AXP_PIN_BASE 1024

 

PD24的GPIO引脚号为:

96+24=120

 

 

在串口终端中的调试方法:

shell@octopus-f1:/ $

shell@octopus-f1:/ $ cd /sys/class/gpio/                                       

shell@octopus-f1:/sys/class/gpio $ ll

--w------- root     root         4096 1970-01-01 09:01 export

lrwxrwxrwx root     root              1970-01-01 09:01 gpiochip0 -> ../../devices/platform/sunxi-pinctrl/gpio/gpiochip0

lrwxrwxrwx root     root              1970-01-01 09:01 gpiochip1024 -> ../../devices/platform/axp-pinctrl/gpio/gpiochip1024

--w------- root     root         4096 1970-01-01 09:01 unexport

shell@octopus-f1:/sys/class/gpio $

shell@octopus-f1:/sys/class/gpio $

 

 

(必须su权限:)

shell@octopus-sc5806:/sys/class/gpio $

shell@octopus-sc5806:/sys/class/gpio $ echo 120 > export

/system/bin/sh: can't create export: Permission denied

1|shell@octopus-sc5806:/sys/class/gpio $

1|shell@octopus-sc5806:/sys/class/gpio $ su

shell@octopus-sc5806:/sys/class/gpio #

shell@octopus-sc5806:/sys/class/gpio #

shell@octopus-sc5806:/sys/class/gpio # echo 120 > export

shell@octopus-sc5806:/sys/class/gpio # ll

--w------- root     root         4096 1970-01-02 09:13 export

lrwxrwxrwx root     root              1970-01-02 09:13 gpio120 -> ../../devices/platform/sunxi-pinctrl/gpio/gpio120

lrwxrwxrwx root     root              1970-01-02 09:11 gpiochip0 -> ../../devices/platform/sunxi-pinctrl/gpio/gpiochip0

lrwxrwxrwx root     root              1970-01-02 09:11 gpiochip1024 -> ../../devices/platform/axp-pinctrl/gpio/gpiochip1024

--w------- root     root         4096 1970-01-02 09:11 unexport

shell@octopus-sc5806:/sys/class/gpio #

 

 

切换到DP24的目录:

shell@octopus-sc5806:/sys/class/gpio # cd gpio120/

shell@octopus-sc5806:/sys/class/gpio/gpio120 # ll

-rw-r--r-- root     root         4096 1970-01-02 09:14 active_low

lrwxrwxrwx root     root              1970-01-02 09:14 device -> ../../../sunxi-pinctrl

-rw-r--r-- root     root         4096 1970-01-02 09:14 direction

drwxr-xr-x root     root              1970-01-02 09:14 power

lrwxrwxrwx root     root              1970-01-02 09:14 subsystem -> ../../../../../class/gpio

-rw-r--r-- root     root         4096 1970-01-02 09:14 uevent

-rw-r--r-- root     root         4096 1970-01-02 09:14 value

shell@octopus-sc5806:/sys/class/gpio/gpio120 #

shell@octopus-sc5806:/sys/class/gpio/gpio120 # cat direction

in

shell@octopus-sc5806:/sys/class/gpio/gpio120 # echo out > direction

shell@octopus-sc5806:/sys/class/gpio/gpio120 #

shell@octopus-sc5806:/sys/class/gpio/gpio120 #

shell@octopus-sc5806:/sys/class/gpio/gpio120 # cat direction

out

shell@octopus-sc5806:/sys/class/gpio/gpio120 #

shell@octopus-sc5806:/sys/class/gpio/gpio120 #

shell@octopus-sc5806:/sys/class/gpio/gpio120 # cat value

0

shell@octopus-sc5806:/sys/class/gpio/gpio120 #

shell@octopus-sc5806:/sys/class/gpio/gpio120 # echo 1 > value

shell@octopus-sc5806:/sys/class/gpio/gpio120 #

shell@octopus-sc5806:/sys/class/gpio/gpio120 # cat value

1

shell@octopus-sc5806:/sys/class/gpio/gpio120 #

万用表测得DP24为2.974V(高)

 

 

shell@octopus-sc5806:/sys/class/gpio/gpio120 # cat value                       

1

shell@octopus-sc5806:/sys/class/gpio/gpio120 # echo 0 > value

shell@octopus-sc5806:/sys/class/gpio/gpio120 # cat value

0

shell@octopus-sc5806:/sys/class/gpio/gpio120 #

万用表测得DP24为0.000V(

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值