主题中讨论的其他器件:SysConfig
工具与软件:
您好!
我一直在尝试 从 PRU 向 Linux 用户空间发送高速扩展输入数据。
Remoteproc 和 RPMSG 对我来说工作正常、我可以将字符串从 PRU 发送到 Linux 上指定的 rpmsg 文件。
现在、我希望从 R31获取输入、并使用 rpmsg 将其发送出去。
我注意到、当我使用 Yocto Linux 引导 EVM 板并通过启动目标配置来连接调试器、并连接到 PRU 时、在加载固件并启动固件之后、R31寄存器在连接的输入信号下根本不会发生变化。
一个工程会启动"empty_am64x-evm_r5fss0-0_freertos_ti-arm-clang"示例、每个 GPIO PRU 在 SysConfig 中都配置为"Input"。
在 R5_0_0内核上启动该程序后、我为 PRU 加载另一个示例工程、该工程基本上不会执行任何操作、只会设置"ct_CFG.gpcfg0_reg = 0;"
通过偏置和恢复 PRU 项目、我可以读取 R31寄存器中的内容。 现在我得到预期的结果。
在 Linux 上使用 Remoteproc 运行 Msg_Echo_Interrupt 固件时、可从 PRU 软件支持包中运行"pru_SC720"示例、并添加类似以下内容: "ct_CFG.gpcfg0_reg = 0;"
我运行该固件的方法是将固件保存在板上(在/usr/lib/firmware 中)并将固件文件的名称保存在右侧 Pru Remoteproc (例如"echo 'firmwarename.out'> sys/class/remoteproc/remoteproc/firmware")、然后启动它并使用 cat 命令读取随后创建的 rpmsg_pru 文件。
然后我使用 CCS 连接到 PRU0_0内核、并暂停/恢复它以读取寄存器、但这次它保持在 0x40000000。
我是否遗漏了某些内容或者我是否可能未能设置标记?
非常感谢您的任何帮助!




