瑞芯微RK3568芯片是一款定位中高端的通用型SOC,采用22nm制程工艺,搭载一颗四核Cortex-A55处理器和Mali G52 2EE 图形处理器。RK3568 支持4K 解码和 1080P 编码,支持SATA/PCIE/USB3.0 外围接口。RK3568内置独立NPU,可用于轻量级人工智能应用。RK3568 支持安卓 11 和 linux 系统,主要面向物联网网关、NVR 存储、工控平板、工业检测、工控盒、卡拉 OK、云终端、车载中控等行业。
?
【公众号】迅为电子
【粉丝群】824412014(加群获取驱动文档+例程)
【视频观看】嵌入式学习之Linux驱动(第十二篇 GPIO子系统_全新升级)_基于RK3568
【购买链接】迅为RK3568开发板瑞芯微Linux安卓鸿蒙ARM核心板人工智能AI主板
GPIO的调试方法除了使用IO命令去查看寄存器,还可以使用其他方法进行GPIO的调试。
debugfs是Linux内核提供的一个调试文件系统,可以用于查看和调试内核中的各种信息,包括GPIO的使用情况。通过挂载debugfs文件系统,并查看/sys/kernel/debug/目录下的相关文件,可以获取GPIO的状态,配置和其他调试信息。如下图所示,我们进入/sys/kernel/debug/目录下。
图130-1
如果上图目录/sys/kernel/debug目录下没有文件,需要在Linux内核源码配置debugfs,如下图所示:
图130-2
配置好之后,重新编译内核源码,烧写内核镜像。
如果没有debugfs,可以使用以下命令进行挂载:
mount -t debugfs none /sys/kernel/debug/
如果有debugfs,可以使用以下命令查看GPIO的信息。
cat /sys/kernel/debug/gpio
图130-3
当你进入/sys/kernel/debug/pinctrl目录时,你可以获取有关GPIO控制器的调试信息。在该目录下,通常会有以下文件和目录:
1. /sys/kernel/debug/pinctrl/*/pinmux-pins:这些文件列出了每个GPIO引脚的引脚复用配置。你可以查看每个引脚的功能模式、引脚复用选择以及其他相关的配置信息。我们进入到/sys/kernel/debug/pinctrl/pinctrl-rockchip-pinctrl/下面,输入“cat pinmux-pins”,如下图所示:
图130-4
2. /sys/kernel/debug/pinctrl/*/pins:这些文件列出了GPIO的引脚编号,可以查看GPIO编号。我们进入到/sys/kernel/debug/pinctrl/pinctrl-rockchip-pinctrl/下面,输入“cat pins”,如下图所示:
图130-5
3. /sys/kernel/debug/pinctrl/*/gpio-ranges:这些文件列出了每个GPIO控制器支持的GPIO范围。你可以查看GPIO编号的范围和对应的控制器名称。我们进入到/sys/kernel/debug/pinctrl/pinctrl-rockchip-pinctrl/下面,输入“cat gpio-ranges”,如下图所示:
图130-6
4. /sys/kernel/debug/pinctrl/*/pinmux-functions:这些文件列出了每个功能模式的名称以及与之关联的GPIO引脚。你可以查看各个功能模式的名称和对应的引脚列表。我们进入到/sys/kernel/debug/pinctrl/pinctrl-rockchip-pinctrl/下面,输入“cat pinmux-functions”,如下图所示:
图130-7
5. /sys/kernel/debug/pinctrl/*/pingroups:该路径提供有关用于配置和控制系统上的 GPIO引脚的引脚组的信息。我们进入到/sys/kernel/debug/pinctrl/pinctrl-rockchip-pinctrl/下面,输入“cat pingroups”,如下图所示:
图130-8
6. /sys/kernel/debug/pinctrl/*/pinconf-pins:这些文件包含了GPIO引脚的配置信息,如输入/输出模式、上拉/下拉设置等。你可以查看和修改GPIO的电气属性,以便进行GPIO的调试和配置。我们进入到/sys/kernel/debug/pinctrl/pinctrl-rockchip-pinctrl/下面,输入“cat pinconf-pins”,如下图所示:
图130-9
在这些文件和目录中,你可以浏览GPIO控制器和引脚的相关信息,包括功能模式、复用配置、范围和配置参数等。这些信息可以帮助你了解GPIO的当前状态和配置,并进行相应的调试和修改。