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.

[参考译文] SK-AM62P-LP:在 RT Linux 中从用户空间应用配置 PWM 模块

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1615391/sk-am62p-lp-configuring-a-pwm-module-from-a-user-space-application-in-rt-linux

器件型号: SK-AM62P-LP

您好、

我正在开发一个测试应用程序、允许用户从命令行配置其中一个 PWM 模块。不过、我不知道从用户空间修改 PWM 配置的方法是什么、除了使用我听说已弃用并替换为字符器件的 sysfs。

由于在设备目录中没有任何 PWM 的条目、这是否意味着需要一个内核模块来创建一个字符设备、然后由 ioctl() 用来在用户空间中配置和启用 PWM、或者是否已经提供了另一种方法、我应该采用这种方法?

谢谢您、

Oliver

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

    您好、

    线程所有者将在 2 月 17 日的一周内停止工作。 如果您在这周内没有收到更新、请 ping 通该线程。

    感谢您的耐心。

    此致、
    Harshith

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

    您好、Oliver、

    据我所知、您应该仍然能够使用 sysfs 接口与 PWM 进行交互(尽管我尚未测试最近的 SDK)。

    您是否能够按照 Linux SDK 的 PWM 驱动程序文档中的说明按预期更改 PWM?
    https://software-dl.ti.com/processor-sdk-linux/esd/AM62PX/latest/exports/docs/linux/Foundational_Components、Kernel_Drivers Kernel/Kernel/PWM.html

    请注意、GPIO 控件已不再采用 sysfs 接口。 您可以在此处查看更新的 GPIO 指南:
    https://software-dl.ti.com/processor-sdk-linux/esd/AM62PX/latest/exports/docs/linux/Foundational_Components、Kernel_Drivers Kernel/Kernel/GPIO.html 

    此致、

    Nick

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

    您好、Nick、

    您是否能够按照 Linux SDK PWM 驱动程序文档中的说明按预期更改 PWM?

    我可以像文档所说的那样在命令行中配置 PWM。 我主要想知道是否有建议的编程方法(例如,“linux-devkit" sysroot“ sysroot 中包含的特定库、shell 脚本等)。

    请注意、GPIO 控件已从 sysfs 接口上移开。

    这是否意味着可以通过 GPIO 接口配置 PWM?

    此致、

    Oliver

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

    您好、Oliver、

    sysfs = GPIO 吗?  

    编号 sysfs 提供了一个与驱动程序交互的接口、然后各个驱动程序可以与 GPIO 硬件或 PWM 硬件交互。 我附上了 AI 生成的摘要、其中提供了更多背景信息[1]

    TI 对于控制 PWM 模块是否有其他建议?  

    实际上、这取决于您的用例、一般来说、我希望您能比我更了解您的用例。

    请记住、Linux 是不确定的、并且与 R5F 内核相比、Linux 响应输入的延迟确实更高(即使运行 RT Linux)。 有关其他注意事项、请参阅我的 AM62Px Multicore Academy 文章“操作系统“:
    https://dev.ti.com/tirex/explore/node?isTheia=false&node=A__AeQyGefrI7qyqGJR.b2hjA__AM62P-ACADEMY__fp5YxRM__LATEST

    因此、如果您需要在实时约束条件下以精确的时序调整 PWM 或进行响应、那么从 R5F 控制 PWM 可能是设计的更合适之选。

    此致、

    Nick

    [1]

    Linux sysfs 接口是一个虚拟文件系统、它通过分层目录结构(通常在/sys 下)将内核对象、驱动程序和设备信息公开给用户空间、允许程序通过读取和写入属性文件来与外设交互、而无需自定义内核驱动程序或系统调用。 此接口提供了一种通过简单的文件操作来配置、控制和查询硬件设备的标准化方法。

    Linux sysfs 接口是一种虚拟文件系统、它提供了一种从用户空间与内核对象和驱动程序交互的方法、设备信息通常通过路径(如,和[1])下的目录和属性文件公开/sys/class//sys/bus//sys/devices/。 它允许程序和脚本通过读取和写入这些属性文件与外设交互、从而实现硬件器件的配置和控制、而无需自定义内核驱动程序或系统调用[2]。

    例如、GPIO 器件通过/sys/class/gpio[3]提供、PWM 器件通过/sys/class/pwm[4]提供、计数器器件通过/sys/bus/counter/devices/[5]提供。 用户可以通过将配置值写入属性文件(例如设置计数器上限值或启用器件)来控制外设行为、并通过从这些文件中读取(例如读取当前计数值或器件名称)来查询器件状态[6]。