【完美体育·(中国)手机网页版MYD-JX8MPQ开发板】通过sysfs文件系统操作GPIO
文章来源:
发布日期:2022.11.21
浏览次数:1508
次
|
此次的板卡测试,是完美体育·(中国)手机网页版MYD-JX8MPQ开发板通过sysfs文件系统操作GPIO。
Sysfs文件系统是一个类似于proc文件系统的特殊文件系统,用于将系统中的设备组织成层次结构,并向用户模式程序提供详细的内核数据结构信息。
(一))文件系统 gpio 操作
在应用层通过Sysfs访问Gpio子系统,首先需要操作接口,先进入/sys/class/目录,看看系统中有没有“/sys/class/gpio”这个文件夹。Linux系统的sysfs机制已经在系统路径下/sys/class/gpio注册了相应的节点,通过读写该节点下的文件就能轻松的完成GPIO输入输出配置以及引脚状态的获取。
输入指令:
查看GPIO引脚
-
root@myd-jx8mp:/sys/class/gpio# ls
-
export gpio124 gpiochip0 gpiochip128 gpiochip32 gpiochip496 gpiochip64 gpiochip96 unexport
-
root@myd-jx8mp:/sys/class/gpio#
-
cd 进入gpio124目录, ls 查看一下,会出现几个操作符,如下:
-
root@myd-jx8mp:/sys/class/gpio/gpio124# ls
-
active_low consumers device edge power subsystem suppliers uevent value
-
-
导出 GPIO
-
root@myd-jx8mp:~# echo 139 > /sys/class/gpio/export
-
导出成功后会在/sys/class/gpio/目录下生成 gpio139 这个目录。
-
设置/查看 GPIO 方向
-
设置输出,输入以下命令:
-
root@myd-jx8mp:~# echo out > /sys/class/gpio/gpio139/direction
-
或者设置输入:
-
root@myd-jx8mp:~# echo in > /sys/class/gpio/gpio139/direction
-
查看 gpio 方向:
-
root@myd-jx8mp:~# cat /sys/class/gpio/gpio139/direction
-
out
-
返回 in 表示输入,返回 out 表示输出。
-
设置/查看 GPIO 的值
-
设置输出低:
-
root@myd-jx8mp:~# echo "0" > /sys/class/gpio/gpio139/value
-
或者设置输出高:
-
root@myd-jx8mp:~# echo "1" > /sys/class/gpio/gpio139/value
-
查看 gpio 的值:
-
root@myd-jx8mp:~# cat /sys/class/gpio/gpio139/value
-
1
-
可以看到 GPIO5_IO11 输出高电平, 然后可以用万用表测量 J25 扩展 IO 的
-
ECSPI2_MOSI_3V3 引脚,可以看到电压为 3.3V 左右
(二)Uboot 下操作 GPIO
进入 uboot 模式开机按任意键进入 uboot 模式:
MYD-JX8MP
开发板的 GPIO 脚是以 GPIOX_Y 形式来定义的,由于 GPIOX_Y 转换成引脚编号公式为:(X-1) *32+Y,所以 GPIO5_IO11 编号为:(5-1) *32+11=139。
通过 uboot 设置 GPIO5_IO11 电压:
-
u-boot=> gpio set 139
-
gpio: pin 139 (gpio 139) value is 1
-
u-boot=> gpio clear 139
-
gpio: pin 139 (gpio 139) value is 0
复制代码
debugfs
debugfs 是 Linux系统下为了方便驱动开发人员对驱动调试的文件系统,可以通过debugfs查看gpio-120硬件上的实际输出和软件上是否相符合;
-
$ cat /sys/kernel/debug/gpio
-