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.

[参考译文] AM6421:R5F0_0和 R5F1_0之间的共享存储器区域

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1512012/am6421-shared-memory-region-between-r5f0_0-and-r5f1_0

器件型号:AM6421
主题: SysConfig 中讨论的其他器件

工具/软件:

您好、

 背景:

           我们将  在 R5F0_0上使用 AM64x MCU SDK MCU_PLUS_SDK_am64x_09_02_00_50、 在 R5F1_0上使用工业通信 SDK ind_comms_sdk_am64x_09_02_00_15

          我们已以 256KB 大小的 DDR 0xA5000000.00表示这2个内核之间的共享存储器。

           在这个256 KB 中、我们有1)个用户共享内存大小: 0x38000 (229376字节)

                              2)日志共享内存大小:0x4000(16384 字节)

                              3) RTOS_N ORTOS_IPC_SH M_MEM 共享内存大小: 0x4000 (16384字节)

          我们使用的是 AM6421 SOC。

          我们希望在2个内核之间共享数据。

         我们已经在两个内核中以相同的序列和大小声明了不同大小的多个数据变量。

          特定大小/变量后、内核之间没有别名。 我们没有在两个内核的这些位置获得正确的数据。

    

         观察到编译两个内核后生成的映射文件时、会显示同一变量的不同地址位置

         以下是详细信息。

 SysConfig 中的 MPU r 区域

DDR 存储器区域

        

r5f0_0映射文件

R5F0_0  Mmemap
--------------
a5000000  Variable0
a5000188  Variable1                         
a50001f8  Variable2                      
a5000ce8  Variable3                     
a5000d08  Variable4                   
a5000d28  Variable5                    
a5000d48  Variable6                    
a5000d68  Variable7                         
a5005200  Variable8                         
a5026000  Variable9
a5026020  Variable10                   
a5026040  Variable11                 
a5026060  Variable12               
a5026080  Variable13      

R5F1_0  Memory Map
------------------
a5000000  Variable0
a5000188  Variable1                         
a50001f8  Variable2                      
a5000ce8  Variable3                     
a5000d08  Variable4                   
a5000d28  Variable5                    
a5000d48  Variable6                    
a5000d68  Variable7                       
a5005228  Variable8
a5026028  Variable9
a5026048  Variable11                 
a5005200  Variable12  
a5026068  Variable13 

R5F1_0 memmap

由于变量的地址不同、我们无法在两个内核中获取正确的数据。

请帮助我们解决问题。

谢谢你。

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

    您好、

        有关上述问题的任何更新。

         谢谢你。

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

    你好 Narasimha Rao,

    我看着你的查询,你可能会期待明天答复.

    此致、

    Anil.

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

    你好 Narasimha Rao,

    如果要在两个内核之间共享数据、必须在两个内核之间使用 IPC。

    已经有示例、您需要将这些 示例集成 到您的应用中。

    您不需要更改任何链接器设置、以下示例适用于您的应用。

    C:\ti\mcu_plus_sdk_am64x_10_01_00_32\examples\drivers\ipc\ipc_rpmsg_echo_linux

    如果您遇到任何问题、请告诉我。

    您能否确认是否在应用中使用 A53内核?

    此致、

    Anil.

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

    尊敬的 Anil:

          感谢您的答复。

        我们的问题是 R5F0_0和 R5F1_0之间使用共享内存。

       R5F0_0 -我们使用工业通信 SDK ind_comms_sdk_am64x_09_02_00_15

       R5F1_0我们使用 MCU_PLUS_SDK_am64x_09_02_00_50 。

       我们还将 A53内核与 Linux 配合使用。

        我们的问题是使用 R5F0_0和 R5F1_0共享存储器访问。

       在您的回复中、您提到了使用 MCU_PLUS_SDK_am64x_10_01_00_32。

        您是否可以为工业通信 SDK 提供相同版本的 SDK 10进行测试?

    谢谢你。

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

    你好 Narasimha Rao,

    在不集成 IPC 的情况下、我不确定应用中的两个 R5F 内核之间如何共享数据。

    要在两个内核之间实现数据通信、您必须在 MCU+SDK 中为两个内核集成提供的 IPC 示例。

    实现此目标的步骤:
    1.为两个 R5F 内核将 IPC 示例集成到工业应用中。
    2.确保 IPC 的 SysConfig 设置在两个核心工程中保持一致。
    3.使用 RPMessage_send () API 将数据从一个内核发送到另一个内核。
    4.在接收内核上,中断将通知消息已收到。
    5.在中断处理程序中,您可以读取和处理接收到的数据。

    MCU+SDK 提供的 IPC 示例已经演示了所有这些步骤。 您只需调整这些示例并将其集成到应用中即可。

    如果您在集成过程中需要帮助、请告诉我。

    如果第10个版本没有提供工业 SDK、则使用 MCU+SDK 第9个版本。

    以下链接有助于您了解 IPC 和 MCU+SDK 以及工业 SDK 下载选项。  

    https://www.ti.com/tool/download/MCU-PLUS-SDK -AM64X/11.00.00.15

    https://software-dl.ti.com/mcu-plus-sdk/esd/AM64X/11_00_00_15/exports/docs/api_guide_am64x/IPC_GUIDE.html

    https://www.ti.com/tool/download/INDUSTRIAL-COMMUNICATIONS-SDK AM243X-AM243X

    此致、

    Anil.

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

    尊敬的 Anil:

      感谢您的答复。

     我们已在内核之间使用 IPC Notify。 并能正常工作

       我会再详细说明问题所在。

      内核 R5F0_0 、我们使用 MCU SDK MCU_PLUS_SDK_am64x_09_02_00_50   

      内核 R5F1_0 -工业通信 SDK ind_comms_sdk_am64x_09_02_00_15 。

     您建议参考  https://www.ti.com/tool/download/AM64X/11.00.00.15中给出的示例 。MCU-PLUS-SDK

     但我们无法找到相同版本的兼容工业通信 SDK。

     您能给我们发送版本11工业通信 SDK 吗?

     谢谢你

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

    你好 Narasimha Rao,

    新版本的 Industrial SDK 仅在上述共享链接中提供、我无法单独共享它们。

       我会再详细说明问题所在。

      内核 R5F0_0 、我们使用 MCU SDK MCU_PLUS_SDK_am64x_09_02_00_50   

      内核 R5F1_0 -工业通信 SDK ind_comms_sdk_am64x_09_02_00_15 。

    [/报价]

    请帮助我了解您的问题。

    IPC Notify 正在工作、并且、在不同的 MCU+SDK 和工业版本下、IPC Notify 不工作?

    或  

    我仍然想知道您为什么更改了共享 用户共享存储器大小。

    您不应该更改 用户共享内存的大小 ,IPC  在内核之间使用 RTOS_N ORTOS_IPC_SH M_MEM。

    您是否正在写入直接存储器并且 IPC 会通知目标内核?

    还是使用 rpmsg_send API 在内核之间传输数据?

    请分享详细信息。 如何在内核之间共享数据?

    此致、

    Anil.