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.

[参考译文] [TDA4VM] SDK8.5、如何在 MCU1_0 (R5F)到 MPU1_0 (A72)之间使用 IPC

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1228577/tda4vm-sdk8-5-how-to-use-ipc-between-mcu1_0-r5f-to-mpu1_0-a72

主题中讨论的其他器件:TDA4VM

您好、TI

我想在 TDA4VM SDK 8.5中的 MCU 域和主域之间进行 IPC 通信。
不过、在 MCUSW 示例中、无法进行 IPC 通信。
因此、需要一个可能在 mcusw 上 mcu1_0 (R5F)和 mpu1_0 (A72)之间运行的 IPC 通信示例。
在 SDK 8.5 FreeRTOS 中、请告诉我在 lds 文件中设置到 TCMB 区域的文件、如果主函数要求设置 entry_point、请告诉我是否包含该文件或如何设置该文件。

此致、

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

    您好!

    请访问常见问题解答 https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1201356/faq-tda4vm-does-sdk8-5-mcal-cddipc-supports-communication-with-a72-running-linux。

    您可以对 MCU 1_0执行相同的操作、与常见问题解答中对 MCU2_1执行的操作相同。  

     在 SDK 8.6中可以看到同样的内容。

    SDK 8.5中有 PDK IPC 示例、其将 MCU1_0与 MPU1_0进行通信。MCUSW IPC 通信的示例可能在 mcu1_0 (R5F)和 mpu1_0 (A72)之间的 mcusw 之间运行、预计将是即将发布的版本的一部分。

    此致

    M·塔伦

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

    您好、Tarun

    我对尝试应用补丁感兴趣、正如您在帖子(https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1201356/faq-tda4vm-does-sdk8-5-mcal-cddipc-supports-communication-with-a72-running-linux)中提出的那样、但我似乎没有权限。

    此请求与我一段时间前做的帖子相关: e2e.ti.com/.../tda4vm-cdd_ipc_app_rc_linux-in-mcu1_0-to-communicate-with-linux-on-mpu1_0-a72-is-not-compilable

    您能给我吗?

    非常感谢

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

    您好、Pablo、

    您可以刷新页面并重试吗? 我们刚刚重新上传了补丁。

    此致
    卡尔蒂克

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

    你好。 现已推出。

    对于您的评论、SDK 8.6内容以及补丁内容、我有一些疑问。

    在这篇文章中、您说:"您可以实施 相同 步骤与常见问题解答中针对 MCU2_1所做的步骤相同。 "但在帖子中、我创建了((https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1201356/faq-tda4vm-does-sdk8-5-mcal-cddipc-supports-communication-with-a72-running-linux)。)您在 SDK 8.5中说"cdd_ipc_app_RC_linux 没有达到预期 它已经过修改、可用于 SDK 8.6。 在 SDK 8.6中、带 A72的 MCU2_1运行良好、并且 类似产品 适用于 MCU1_0。"。

    我已安装了 SDK 8.6、并且 在 MCU2_1中尝试了 CddIPC 并且运行正常。

    检查内容, 8.6中对8.5的更改与您提供的修补程序有关。

    就像在我的文章中,你不建议(像在这个) 实现相同的 MCU 1_0 (相似的),我感到困惑... 是否值得按照修补程序/SDK8.6中 MCU2_1的更改来尝试为 MCU1_0修改8.6、或者除了 SDK 9.0中提供的内容外、我还需要其他任何东西?

    对于 mcu1_0、我应进行的一些更改、请注意:

    1.-将 cdd_IpcCfg.c 和.h 复制到 mcu1_0文件夹、 如 MCU2_1补丁中所做的那样。 这些文件已存在于8.6中的 MCU2_1中

    2.-修改规则。make 以包括编译变量 cdd_ipc_linux_build。 没有什么可做的。

    3.- R5_MPU_freertos.c 的更改已包含在8.6中。 没有什么可做的。

    4.- ipc_virtio.c 更改已包含在8.6中。 没有什么可做的。

    5.- CddIpcAppRProcLinux.c 和.h 更改已包含在8.6中。 没有什么可做的。

    6.- IpcTrace.c 和.h 更改 已包含在8.6中。 没有什么可做的。

    7.- CddIpcRProcLinux makefile 更改 已包含在8.6中。 没有什么可做的。

    8.-如果是 CddIpcAppStartup.c 文件、 mcu1_0不存在此文件。 我是否应该按原样复制它?  

    9.-如果是 CddIpcR5Mpu.c 文件、 mcu1_0不存在此文件。 我应该按原样复制吗? 如果不能按原样复制、在没有深入了解的情况下对该区域的代码进行更改似乎很棘手。

    您是否可以提供8.6的补丁来解决 MCU1_0上的 CddIPCLinux 通信问题?

    我真的很感谢这方面的支持。

    非常感谢!

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

    您好、Pablo、

    n 此帖子"您可以实施 相同 步骤与常见问题解答中针对 MCU2_1所做的步骤相同。 "但在帖子中、我创建了((https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1201356/faq-tda4vm-does-sdk8-5-mcal-cddipc-supports-communication-with-a72-running-linux)。)您在 SDK 8.5中说"cdd_ipc_app_RC_linux 没有达到预期 它已经过修改、可用于 SDK 8.6。 在 SDK 8.6中、带 A72的 MCU2_1运行良好、并且 类似产品 可针对 MCU1_0进行调整。".

    我的意图是、默认 SDK 8.5不支持与 A72进行 CDD IPC 通信的功能。 当您在常见问题解答中应用补丁时、您可以与 A72进行 CDD IPC 通信。

    SDK 8.6默认情况下具有 CDD IPC 与 A72通信的功能。

    您可以使用 SDK 8.6举例说明带有 A72的 CDD IPC 通信 MCU1_0。

    关于我应该对 mcu1_0:
    进行的更改的一些注意事项

     我们为 MCU2_1启用了 CDD IPC MCAL。 AUTOSAR 可通过使用 Vector 的解决方案从任何 R5内核运行。 我们的补丁展示了它将如何用于 MCU2_1、类似的对应于 MCU1_0。

    但我们无法测试 MCU1_0的补丁、因为我们没有从 MCU1_0运行以下两个上下文的操作系统:

    1) SciServer 服务 Linux,如果没有它就无法工作

    2) CDD IPC 测试检查消息到 Linux

    这是 MPU 和 R5F 内核之间 CDD IPC 通信的当前状态。 您可以获取该补丁并将其移植到 MCU1_0、然后在 Vector 的堆栈和 Linux 运行的情况下在 MCU1_0上运行它。

    已针对 CDD IPC 通信 MCU1_0与 A72的示例提出了内部传票、预计这将是即将发布的版本的一部分、该团队正在进行相关工作。

    此致

    M·塔伦

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

    谢谢 Tarun。

    在我们等待使用 CDD 和 Linux 从 MCU1_0直接连接期间、Linux 将在售后版本中提供

    内部票据已针对 CDD IPC 与 A72通信 MCU1_0的示例提出,预计这将是即将发布的版本的一部分,该团队正在处理此问题。

    我们已经制定了一种权变措施、将 MCU1_0与 MCU2_1以及 MCU2_1与 A72进行通信。

    为了评估通信延迟、我们要使用全局系统计时器来获取在 MCU1_0中发送 IPC 并在 A72中获取 IPC 的时间戳。  

    我当时想的是 DMSC 可以提供的任何资源计时器、该计时器始终处于运行状态(实际上、 也可以使用 MCU1_0、但不清楚是否可以访问 MCU1_0和 A72的任何计时器)。

    您能给我们  一些建议、以找到在系统中获取全局时间戳来评估该延迟的可行方法吗?

    非常感谢

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

    您好 Pablo:

    可使用 GTC (64位计数器)。 当您在 A72上使用 Linux 时,它将启用 GTC,您可以从 GTC_CNTCV_LO (0xA90008)和 GTC_CNTCV_HI (0xA9000C)寄存器获取时间戳。

     从 0xA90008读取并以200MHz 的频率分频的64位计数器将提供时间戳。

    此致

    M·塔伦

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

    我正在使用 utils appLogGetGlobalTimeInUsec() for Linux (app_log_linux.c)和 RTOS (app_log_rtos.c),工作正常。

    非常感谢!