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.

[参考译文] Linux/processor-SDK-AM335X:PRU 实践实验室

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/588907/linux-processor-sdk-am335x-pru-hands-on-labs

器件型号:PROCESSOR-SDK-AM335X

工具/软件:Linux

您好!

我正在使用适用于 BeagleBone Black 的处理器 SDK Linux。 完成所有配置后、我启动了用于 PRU 控制的 PRU 动手实验。  

我只想知道、我是否可以在没有 PRU Cape 的情况下关注所有实验? 在我构建第一个 toggle_led 项目时、复制了文件系统 lib/固件目录中的.out 文件并启动了 BeagleBone。 没有发生任何事情。

我不熟悉这一点、所以请耐心等待、如果我做了一些错误、请告诉我。

谢谢。

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

    请阅读: processors.wiki.ti.com/.../PRU_Training:_Hands-on_Labs
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Biser、

    感谢您的回复。

    我已经告诉过我正在关注您在上面的链接中提供的 PRU_Training Hands_ON_LAB。

    我还使用 CCS 构建了第一个项目。 但我没有使用 XDS 仿真器进行调试。 我将生成的.out 文件复制到文件系统的 rootf/boot/lib/firmware。

    然后我启动了 BeagleBone、但 LED 不会切换。  

    我是否应该更改引脚多路复用配置?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    此示例依赖于 PRU Cape。 PRU GPO 未连接到 BBB 板上的任何用户 LED。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Biser、

    很抱歉、我没有提供完整信息、我认为在 PRU 动手实验的第一个项目中配置为输出的寄存器 R30是 BeagleBone 上 P9接头的第31个引脚、因此我在该引脚上连接了外部 LED。 但这并没有亮起。  

    如果我没有犯任何错误、那么我肯定无法关联引脚多路复用。 您能为我建议正确的编程外部引脚选择方法吗?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    可能会发生的情况是、该引脚配置为不同的功能(引脚多路复用)。 这是 SPI1_SCLK、它连接到 BBB 上的 HDMI 转换器。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    好的、

    我明白了。

    最后一件事。 我正在使用 PRU 动手实验"使用 PRU GPO 切换 LED "的项目1。 有一个寄存器 R30被用作直接输出、我怀疑它是 BeagleBone P9接头的第31个引脚。 我还需要处理其他事项吗? 我缺少什么?

    请为我提供将 BeagleBone 中的特定引脚"P9_31"切换为 PRU 的命令行步骤。

    我只想让一些人有信心在不使用 CCS 的情况下使用 PRU。

    这对我会很有帮助。

    谢谢。

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

    Rahul、

    实验1-3预计使用 CCS 和仿真器来运行示例。 在这些示例中、CCS 使用 GEL 脚本配置引脚多路复用。

    从实验4开始、您不再需要 CCS 或仿真器、您可以使用上述尝试使用的方法。 我认为您可能错过的步骤是修改 Linux 器件树文件、以便配置引脚多路复用以匹配 PRU Cape: http://processors.wiki.ti.com/index.php/PRU_Training:_Hands-on_Labs#Modify_Device_Tree_Files_to_Account_for_PRU_Cape 使用的引脚

    以下是 PRU Cape 的原理图、您可以在其中找到电路板: https://www.ti.com/seclit/df/tidr938/tidr938.pdf

    Jason Reeder

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好 Jason、
    谢谢。
    感谢您的澄清。 我的步骤是-
    1) 1)完成了在修改建议的设备树时遵循的步骤。
    2) 2)复制了我在项目1中构建的.out 文件、在文件系统的 lib/固件文件夹中进行"LED 切换"。
    3) 3)根据"同步"步骤之前的步骤创建了符号链接。
    4) 4)将 SD 卡推回 BeagleBone。 我认为 LED 应该开始切换。

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

    您是否执行了实验4的所有步骤? 您需要重建固件以包含 Linux 驱动程序所需的 resource_table 头文件: processors.wiki.ti.com/.../PRU_Training:_Hands-on_Labs

    如果从实验练习1获取.out 文件,则当 RemoteProc Linux 驱动程序找不到资源表时,将出现加载失败。

    Jason
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    是的、我遵循了完整的实验4。 我还构建了包含 resource_table 的固件。 当我启动 BeagleBone 时、我发现 RemoteProc 驱动程序处于联机状态。 无错误。 我只是想知道我的步骤是否错误、一旦确认、我就会再次尝试。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    听起来一切都很好。 您是否已将 LED 连接到 Cape 使用的相同引脚?

    是否可以将完整引导日志作为附件发布在此处?

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

    e2e.ti.com/.../-log-files.zip

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、PFA。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我使用 BeagleBone P9接头的第31个引脚连接了 LED。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我在您的引导日志中没有看到任何错误。 此外、引脚 P9-31连接到 PRU R30[0]、PRU Cape 上的 PRU R30[0]连接到蓝色 LED。 该部件看起来也是正确的。

    您确定是否已将电路板使用的 DTB 替换为您重建的 DTB、其中包含 PRU Cape dtsi 文件? 您是否确定已从实验练习1重建 PRU 固件以包含 resource_table 头文件、然后也将其替换到器件的文件系统中。 如果是、您可能需要检查您的电路、因为这两个更改将加载 PRU 固件、从而切换引脚 P9-28、P9-29、P9-30和 P9-31。

    您能否发布以下命令的输出:
    LS -LA /lib/firmware
    LS -LA /lib/firmware/pru
    LS -la /boot/

    Jason Reeder
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    LS -LA /lib/firmware
    共计400
    drwxr-xr-x 6 root 4096 Apr19 00:39。
    drwxr-xr-x 9 root 4096 Mar 3002:54 ..
    rw-r--r-- 1根根根 73 03月30日02:32 am335x-bone-scale-data.bin
    rw-r--r-- 1根根根 3月17日30日02:32 am335x-evm-scale-data.bin
    -rw-r--r-- 1 root 用户217280 Mar 30 02:32 AM335x-pm-firmware.elf
    lrwxrwxrwx 1根根根 4月13日19:39 AM335x-pru0-FW -> LED_TOGL.OUT
    rw-r--r-- 1根根根 3月41日30日02:32 am43x-evm-scale-data.bin
    -rw-r--r-- 1根根根34828年4月18日15:11 led_toggl.out
    drwxr-xr-x 2 root 4096 Mar 3005:19 PRU
    -rw-r--r-- 1根根根27904 APR 18 17:58 PRU_HALT.OUT
    -rw-r--r-- 1 root root 74876 APR 18 17:51 PRU_RPMsg_Echo _Interrupt1.out
    drwxr-xr-x 2 root 4096 Mar 3005:20 ti-connectivity
    drwxr-xr-x 2 root 4096 Apr18 15:53 Tigon
    drwxr-xr-x 2 root 4096 Mar 3002:48 ti-pruss


    LS -LA /lib/firmware/pru
    共计196
    drwxr-xr-x 2 root 4096 Mar 3005:19。
    drwxr-xr-x 6 root 4096 Apr19 00:39。
    -rw-r--r-- 1 root root 28320 Mar 30 02:57 PRU_Halt.out
    -rw-r--r-- 1 root root 75724 Mar 30 02:57 PRU_RPMsg_Echo_Interrupt0.out
    -rw-r--r-- 1 root root 75724 Mar 30 02:57 PRU_RPMsg_Echo_Interrupt1.out


    LS -la /boot/
    共计3436
    drwxr-xr-x 2 root 4096 Apr19 00:41。
    drwxr-xr-x 22 root 4096 Apr18 18:03。
    lrwxrwxrwx 1根根根 4月28日19:41 AM335x-bonebblack.dTB -> AM335x-bonebblack-prucape DTB
    rw-r--r-- 1 root root 37660 APR 19 00:40 AM335x-bonebr-prucape.dtb
    -rwxr-xr-x 1根根根,3463400年4月18日15:51 zImage
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我将再次检查连接。 还将在考虑所有因素的情况下再次重建项目。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好 Jason、
    我完成了实验5和实验6。 我现在可以通过 Remotproc 驱动程序通信访问 PRU。 我必须在实验4中犯了一些错误。 我将再次这样做。 感谢您的支持。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好!
    是否还有 PWM 生成和 UART 通信的实验示例?