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.

[参考译文] LP-AM243:尝试使用 R5F 和 PRU0创建多核(系统)应用程序...

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1393889/lp-am243-trying-to-create-multicore-system-app-with-r5f-and-pru0

器件型号:LP-AM243
主题中讨论的其他器件:SysConfig

工具与软件:

这是 这个问题的后续文章

我创建了一个新工作区、并导入了 system_freertos 示例。
我更新了 empty_am243x-lp_system_freertos"system.xml"文件以添加一个 PRU 内核。

接下来、我复制了 R5F 程序和 PRU (汇编)程序。
在设置正确的头文件链接并为 PRU 复制 linker.cmd 后、
我能够连接到 LP 目标、将程序加载到它们的内核中并运行。

我加载并运行 PRU 程序、然后加载并运行 R5F 程序。
(R5F 程序向 DMEM0写入数据、PRU 可以通过该数据通知 PRU 何时执行操作)

但是、当我尝试将二进制文件刷写到 OSPI 时、PRU 似乎根本没有运行。
是否缺少启用 PRU 内核的内容?

在 CCS 中、我只需点击绿色的"运行"箭头即可运行程序、但对于多核、我是否需要通过一些寄存器写入来连接 PRU?
是否有一个运行 PRU 的多核示例?我可以参考...?

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

    尊敬的 Keito:

    感谢您访问德州仪器(TI) E2E 支持论坛。

    我已获取您的意见并进行处理。 请等待一段时间再回来。

    此致、

    Tushar

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

    尊敬的 Keito:

    目前我们没有将 PRU 作为多核项目的一部分的示例。 创建系统工程时是否需要满足特定要求?

    使用 PRU 和 R5F 工程组合的另一种方法是使用 MCU+ SDK 中的空 PRU_IO 示例- examples_pru_empty  

    在这里、您只需刷写 R5F 应用程序、然后便可将 PRU 固件加载到内核中并开始内核执行。

    您也可以查看上述方法是否满足您的要求。 如果您还想继续系统项目方法、请告诉我。

    此致、

    Nitika

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

    Nitika,

    "我明白了。"

    使用 MCUSDK v902、我只导入了两个项目(空 pru0项目和 r5f FreeRTOS 项目)。
    我创建了 PRU 应用程序并进行了编译、生成了一个*。h 文件、其中包含 PRU 的二进制数据。
    系统会自动生成一个链接、以便 FreeRTOS 程序#include <...>打开此二进制数据。
    FreeRTOS 程序只需将其加载到 PRU 存储器中即可。

    由于某种原因 DebugP_LOG("");不打印任何内容...也不能进行键盘输入...
    有什么想法吗?

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

    您能否共享您的 R5F 项目以便我了解一下吗? 或者、如果无法做到、您能解释一下您在示例中要做什么吗?

    此致、

    Nitika

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

    嗨、Nitika、

    到目前为止、我一直在使用 MCUSDK901。
    在 SYSCFG 中、如果禁用"打印到 CCS"日志、API 会调用 DebugP_LOG ("...");实际上会将日志信息打印到 COM 端口。
    我正在使用它。

    但现在使用 MCUSDK902时、我注意到如果禁用打印到 CCS、则 不会再将任何内容打印到 COM 端口。
    (如果启用了打印到 CCS、我可以看到 DebugP_LOG ()打印正常)

    DebugP_LOG API 使得与 COM 端口的交互非常轻松...
    我想我需要了解如何使用 UART API...

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

    尊敬的 Keito:

    对于终端日志、您应该在 SysConfig 中选择"Enable UART Log"。 是否启用了此设置?

    此致、

    Nitika

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

    嗨、Nitika、  

    我明白了。 (Yes、Enable UART Log 已选择)。

    问题是、示例项目附带了一个*。c 文件、该文件会将固件加载到 PRU 内核。
    该代码调用 Drivers_open()、该函数是使用 DebugP_xxx API 调用 UART 所需的。

    但我复制了 R5F 项目*.c 文件、其中包括另一个 Drivers_open()和 Board_driversOpen()调用。
    (固件加载到 PRU 调用后、该函数会调用我的主工程函数)

    通过删除 R5F *.c 文件中的 Drivers_open()和 Board_driversOpen()调用、一切都正常。

    我想两次调用 Drivers_open()是不好的?