imx6q开发板设置管脚为gpio的方法

由于项目需要,要将某端口设置为GPIO,查看原理图,确定管脚pad为DISP0_DAT8:

imx6q开发板设置管脚为gpio的方法

查看datasheet,可知DISP0_DAT8可复用为gpio4_io29端口,同时可以看出DISP0_DAT8的select寄存器为IOMUXC_SW_MUX_CTL_PAD_DISP0_DATA08:

imx6q开发板设置管脚为gpio的方法

在板子上执行/unit_tests/memtool IOMUXC_SW_MUX_CTL_PAD_DISP0_DATA0=5将端口配置为gpio4_io29,命令执行结果如下:

imx6q开发板设置管脚为gpio的方法

可见命令没有执行成功,其原因有可能是设备树中有其他地方用到了这个端口,也可能是寄存器名字不对。查找寄存器,找出一处用到此端口的地方,将其注释掉,再执行以上命令,结果和前次一样。那问题的原因可能是寄存器名字错误,接着要确定寄存器的真正名字。

在板端用/unit_tests/memtool IOMUXC.*、/unit_tests/memtool IOMUXC.SW_MUX_CTL_PAD_DISP0*逐步找到真正的io设置寄存器:

imx6q开发板设置管脚为gpio的方法

从中可以看到IOMUXC.SW_MUX_CTL_PAD_DISP0_DAT8寄存器,可以确定这就是我们要找的设置DISP0_DATA08的寄存器,查看寄存器值:

imx6q开发板设置管脚为gpio的方法

可看到值为0,使用/unit_tests/memtool IOMUXC.SW_MUX_CTL_PAD_DISP0_DAT8=5命令对其进行设置,这里等于是根据datasheet设置,意为将其设置为gpio管脚。

到这里才算成功将其设置为gpio管脚。

总结:有时开发板某些设备寄存器的名字有可能会和datasheet中的并不一致,要学会自己去查找确定真正的寄存器名。

上一篇:gitlab安装和数据迁移(错误排查)


下一篇:Linux 安装gitlab