Linux下如何操作GPIO的Pinmux? (linux pin io mux)

树叶云

随着物联网和嵌入式设备的不断发展,越来越多的嵌入式系统采用了Linux系统作为操作系统。而对于Linux下的嵌入式系统,GPIO(General Purpose Input/Output)的使用显得尤为重要。在使用GPIO时,我们往往需要对其进行Pinmux操作,以确定每个GPIO的功能和方向。本文将介绍Linux下如何操作GPIO的Pinmux。

一、什么是GPIO的Pinmux?

GPIO的Pinmux是指对GPIO进行引脚多路复用(Multiplexing)的操作。在嵌入式系统中,一个GPIO引脚往往会有多个功能,例如输入、输出、PWM输出等。而在使用GPIO之前,就需要对GPIO的每个引脚进行Pinmux操作,确定其功能和方向,以确保正确使用GPIO。

二、Linux下如何查询GPIO支持的Pinmux模式?

在Linux下,我们可以使用设备树(Device Tree)来查询GPIO支持的Pinmux模式。设备树是Linux内核的一个重要特性,它描述了硬件平台的信息,包括CPU、内存、外设等。对于每个GPIO引脚,设备树会描述其支持的Pinmux模式和对应的功能。

设备树中描述GPIO的节点一般为“gpio”,以IMX6ULL为例,下面是GPIO1_IO03的设备树信息:

/*PAD_MUX_GPIO1_IO03 : [0x020E02E0] */

imx6ull {

gpio1: gpio@0209C000 {

compatible = “fsl,imx6ull-gpio”;

reg = ;

interrupts = ;

clocks = ;

clock-names = “ipg”;

};

pinctrl {

pinctrl_gpio1: gpio1-grp {

fsl,pins =

MX6UL_PAD_SNVS_TAMPER3__GPIO5_IO03 0x1000

MX6UL_PAD_GPIO1_IO01__GPIO1_IO01 0x74 //配置gpio1_io01为低电平输入

MX6UL_PAD_GPIO1_IO03__GPIO1_IO03 0x74 //配置gpio1_io03为低电平输入

>;

};

};

};

从上面的设备树信息可以看出,GPIO1_IO03在IMX6ULL芯片中对应的寄存器地址为0x020E02E0。同时,可以看出该GPIO引脚支持的Pinmux模式有哪些、每个模式对应的功能是什么。

三、Linux下如何使用设备树设置GPIO的Pinmux?

在设备树中,可以使用“pinctrl”节点来设置GPIO的Pinmux。以IMX6ULL为例,下面是GPIO1_IO03的Pinmux设置信息:

pinctrl {

pinctrl_gpio1: gpio1-grp {

fsl,pins =

MX6UL_PAD_SNVS_TAMPER3__GPIO5_IO03 0x1000

MX6UL_PAD_GPIO1_IO01__GPIO1_IO01 0x74 //配置gpio1_io01为低电平输入

MX6UL_PAD_GPIO1_IO03__GPIO1_IO03 0x74 //配置gpio1_io03为低电平输入

>;

};

};

从上面的代码可以看出,我们使用“fsl,pins”属性来描述GPIO的Pinmux。其中之一个参数为具体的引脚,其它参数则为具体的Pinmux设置信息。对于每个引脚,我们都需要设置对应的Pinmux信息。

四、Linux下如何通过命令行操作GPIO的Pinmux?

除了使用设备树外,我们还可以通过命令行来操作GPIO的Pinmux。在Linux下,通过Pinctrl子系统提供了相应的命令行工具,我们可以使用它们来设置GPIO的Pinmux。

以IMX6ULL为例,下面是设置GPIO1_IO03为输出模式的命令:

$ echo 1 > /sys/class/gpio/gpio4drv741/direction //将gpio4drv741引脚设置为输出模式

$ echo 741 > /sys/kernel/debug/pinctrl/20e0000.iomuxc/pinmux-pins //将gpio4drv741引脚设置为output

从上面可以看出,我们先需要将GPIO引脚设置为输出模式,然后再执行相应的Pinmux设置操作。

五、结语

相关问题拓展阅读:

  • CDLinux万能无线破解系统在PIN的时候一直重复出现下面这几个字
  • linux:文件/目录权限设置

CDLinux万能无线破解系统在PIN的时候一直重复出现下面这几个字

之一行就显示,pin不了。设置错了吧。10failed connection In a row.:这里显示你输错如春清数了!你输入的是10位渣前数吗森庆?

没用过。。。。。。。。。。。

确定此AP开启WPS?

你确定这个信号可以pin?你用wash搜到的信号么?

linux:文件/目录权限设置

一、权限修改命令:

  chmod

MODE…

FILE…

  二、文件/目录MODE指定方式:

  1)、八铅态信闭埋进制(r=4,w=2,x=1)

tmp>#

ll

filename

  -rwxrwxrwx

root

root

Apr

14:37

filename

  

~>#

chmod

0755

filename

  

tmp>#

ls

-l

filename

  -rwxr-xr-x

root

root

Apr

14:37

filename

  2)、类别范围(u=所有者,g=组,o=其他,a=ugo)

tmp>#

ll

filename

  -rwxrwxrwx

root

root

Apr

14:37

filename

  

tmp>#

chmod

u=r-x

filename

  

tmp>#

ll

filename

  -r–rwxrwx

root

root

Apr

14:37

filename

  3)、只操作某类用户的某类权限(-/+)

tmp>#

ll

filename

  -rwxrwxrwx

root

root

Apr

14:37

filename

  

tmp>#

chmod

g-w,o-w

filename

  

tmp>#

ll

filename

  -rwxr-xr-x

root

root

Apr

14:37

filename

  

tmp>#

chmod

g+w

filename

  

tmp>#

ll

filename

  -rwxrwxr-x

root

root

Apr

14:37

filename

  三、修改文件目录的属主、属组

  chown

>

FILE…

  chgrp

GROUP

FILE…

  

tmp>#

chown

root

filename

#修改属主

  槐轮

tmp>#

chown

:root

filename

#修改属组

  

tmp>#

chgrp

root

filename

#修改属组

  

tmp>#

chown

root:root

filename

#修改属主和属组

关于linux pin io mux的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。

香港服务器首选树叶云,2H2G首月10元开通。
树叶云(www.IDC.Net)提供简单好用,价格厚道的香港/美国云服务器和独立服务器。IDC+ISP+ICP资质。ARIN和APNIC会员。成熟技术团队15年行业经验。

文章来源网络,作者:运维,如若转载,请注明出处:https://shuyeidc.com/wp/206237.html<

(0)
运维的头像运维
上一篇2025-04-07 23:57
下一篇 2025-04-07 23:58

相关推荐

  • Swift枚举使用方法

    Swift是一种适用于iOS和OS X应用的全新编程语言,它建立在最好的C和Objective-C语言之上,并且没有C语言的兼容性限制。Swift采用安全的编程模式,增加了现代功能…

  • HTTP 响应状态信息

    当浏览器从 web 服务器请求服务时,可能会发生错误。因此,我们使用3位数字代码 HTTP 状态码(HTTP Status Code)来表示 HTTP 响应状态。 1xx: 信息 …

  • MyBatis中主键回填实现方法

    主键回填一般用于增加操作中,把插入数据时插入为null的主键id数据填回去,存入到java对象和主键对应的属性中(数据库主键字段为id则回填的是实体类的id属性),实现添加+查询主…

  • centos6中安装tomcat具体方法

    Tomcat 服务器是一个开源的轻量级Web应用服务器,在中小型系统和并发量小的场合下被普遍使用,是开发和调试Servlet、JSP 程序的首选。 1.编译安装jdk [root@…

  • Linux下使用umount命令卸载文件系统

    对于Linux系统下挂载的文件系统,通常情况下是无法卸载的,可通过命令进行强行卸载,下面小编就给大家介绍下Linux使用umount命令强制卸载文件系统的方法。 命令基本格式: […

发表回复

您的邮箱地址不会被公开。必填项已用 * 标注