This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] AM4376:从用户空间控制 GPIO /sys/class/gpio

Guru**** 2539500 points


请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1193231/am4376-controlling-gpio-from-user-space-sys-class-gpio

器件型号:AM4376

您好!

最近、我们开发了基于 AM437x 的定制板、并在其中移植了 RT-Linux、以便从一些应用开始、我从用户空间开始控制 GPIO、(GPIO4[8])

要计算我应该导出的引脚编号 (/Sys/Class/gpio/export),我使用公式(32*M)+N,但无法对其进行控制。 在我读取32*(M-1)+N 进行计算的某个地方、我应用了相同的方法并能够控制 GPIO4[8](引脚104)、我相信稍后的方法是计算引脚编号的正确方法。

我有一些使用 GPIO0组 引脚的接口、如 GPIO0[23]、GPIO0[7]和 GPIO0[3]。

请建议如何计算要导出到 GPIO 组0控制引脚的引脚编号。

此致、

Piyush Ghatole  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Piyush、

    命令'ls -l /sys/class/gpio 的输出是什么? 该计算基于输出信息。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    请注意建议的命令 ls -l /sys/class/gpio 的输出

    此致、

    Piyush Ghatole

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Piyush、

    很抱歉我迟到了。

    实际上、屏幕截图中缺少我要查找的最重要的信息。 我需要了解*完整*符号链接,以解释如何计算引脚编号。 是否可以重新发送命令输出以同时包含正确的部分 ?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!  

    请查找随附的所需数据。

    e2e.ti.com/.../log_5F00_cat_5F00_sys_5F00_gpio_5F00_kernel_5F00_debug.txte2e.ti.com/.../gpio_5F00_list.txt

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Piyush、

    您的第二个/sys/class/gpio 日志仍会在最后遗漏该信息 但幸运的是、您首次登录/sys/kernel/debug/gpio 即可获得我们所需的信息。 下面是如何计算 GPIO 引脚 ID:

    例如 GPIO0[23]:

    已检查内核源代码 arch/arm/boot/dts/AM437X-L4.dtsi、搜索 GPIO0、您会发现其父节点为:

    目标模块@7000{                   /* 0x44e07000、ap 14 20.0 */

    该注释显示其基址为0x44e07000。 在/sys/kernel/debug/gpio 中搜索此地址、您将获得:

    gpiochip0:GPIO 0-31、父级:platform/44e07000.gpio、gpio-0-31:

    指示 gpiochip0用于 GPIO0组、其起始引脚 ID 为0。 因此 GPIO0[23]引脚 ID 是0+23=23。

    对 GPIO4[8]使用相同的方法:

    GPIO4的基地址为0x48320000、其起始引脚 ID 为96、因此 GPIO4[8]引脚 ID 为96+8=104。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    感谢您对引脚编号映射计算的解释、现在我很清楚