器件型号: SK-AM62P-LP
您好、
我正在开发一个测试应用程序、允许用户从命令行配置其中一个 PWM 模块。不过、我不知道从用户空间修改 PWM 配置的方法是什么、除了使用我听说已弃用并替换为字符器件的 sysfs。
由于在设备目录中没有任何 PWM 的条目、这是否意味着需要一个内核模块来创建一个字符设备、然后由 ioctl() 用来在用户空间中配置和启用 PWM、或者是否已经提供了另一种方法、我应该采用这种方法?
谢谢您、
Oliver
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
您好、
我正在开发一个测试应用程序、允许用户从命令行配置其中一个 PWM 模块。不过、我不知道从用户空间修改 PWM 配置的方法是什么、除了使用我听说已弃用并替换为字符器件的 sysfs。
由于在设备目录中没有任何 PWM 的条目、这是否意味着需要一个内核模块来创建一个字符设备、然后由 ioctl() 用来在用户空间中配置和启用 PWM、或者是否已经提供了另一种方法、我应该采用这种方法?
谢谢您、
Oliver
您好、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]。