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.

[参考译文] SK-TDA4VM:A72和 DSP 内核 IPC 通信。

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1352314/sk-tda4vm-a72-and-dsp-core-ipc-communication

器件型号:SK-TDA4VM

大家好、

1.我们正在 A72和 C7x-DSP 内核之间实现 IPC。
2.使用 RPMsg 进行报文传递并为数据传输分配单独的 DDR 内存。  
3.我们能够分配512 MB 的 DDR 内存,其中 C7x-DSP 和 A72共享公共内存。  
 
  内存分配参考文档: developer_notes_memory_map.html

问题:  

4.我们希望实施 Linux 用户空间应用、以通过 DDR 存储器将数据从 A72发送到 C7x-DSP 内核。
  根据我们的理解、在用户空间 Linux 应用中可以使用两种方法来分配和取消分配 DDR 存储器。

  1. mmap (通用)
  2.使用 vision_app 的 DMA 堆缓存方法。 (建议的方法)

DMA 缓存堆方法:  

参考:psdk_rtos_auto_j7_06_00_00_00/vision_apps/apps/basic_demos/app_linux_arm_mem/main_linux_arm.c

我们可以有如下序列:

appCommonInit()  //此函数调用 appMemInit()并进行一些其他初始化

appMemAlloc()

appMemFree()

appCommonDeInit()

论坛链接:  

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/840627/tda4m-how-can-i-do-dynamic-memory-allocation-like-a-malloc-fuction-in-psdk

5.我们计划使用第二种方法(DMA 缓冲堆方法)。 如果使用相同的方法、您能否让我们来操作?如果是、如何移植 vision_app
 迁移到 Linux。  

6.我们举了几个例子,他们在7和7.1 SDK 上移植了 vision_app。 让我们知道、我们可以将该示例移植到9.1 SDK。

参考链接: https://e2e.ti.com/support/processors-group/processors/f/processors-forum/909695/faq-tda4vm-makefile-based-project-which-shows-a72-c7x-r5f-setup-along-with-ipc-and-buffer-passing-between-linux-rtos


请 仔细阅读、并提供必要的内容。  

谢谢。此致、
苏尼尔




   

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

    您好、Sunil:

    我已将其分配给视觉应用专家。

    此致

    M·塔伦

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

    感谢你的评分

    此致、
    苏尼尔  

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

    您好、Sunil:

    5. 我们计划使用第二种方法(DMA 缓冲堆方法)。 如果使用相同的方法、您能否让我们来操作?如果是、如何移植 vision_app
     迁移到 Linux。  [/报价]

    vision_apps 应用也是 Linux 用户空间应用。  

    在 SDK 9.1中、我们有一个来自 vision_apps 的 IPC 应用程序、位于路径 vision_apps/apps/utilities/app_IPC

    您可以根据自己的用例参考此应用。

    此致、

    尼基尔

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

    尊敬的 Nikhil:

    感谢您的答复。

    1.可以。我们能够从${PSDK_INSTALL_PATH}/SDK_Builder 文件夹构建视觉应用程序。  

    参考: 文件:///home/sunilap/ti/psdk_rtos/ti-processor-sdk-rtos-j721e-evm-09_01_00_06/vision_apps/docs/user_guide/BUILD_AND_RUN.html

    2.我们知道,  

      创建 vision_apps -j12

    上述 make 命令构建完整的视觉应用、但 我们希望排除用户空间应用并单独构建。
    我们希望将其与其他应用程序代码集成。  

    计划:    

         I. A72和 C7x-DSP 之间的 IPC。
           
           a. RPmsg:A72和 C7x 之间的消息传送。
           b. DMA 缓存方法(共享存储器):A72和 C7x 之间的数据交换。

          使用 DMA 缓冲方法将数据写入共享存储器(DDR)后、我们需要向 C7x 内核发送消息(RPmsg)以从共享存储器读取数据并进行处理。   

    因此、我们需要将 DMA 缓冲器用户空间视觉应用与 RPmsg 代码集成。

    请仔细阅读,让我们知道我们能继续吗?


    此致、
    苏尼尔  











     















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

    您好!

     vision_apps 应用程序  vision_apps/apps/utilities/app_IPC  完全相同。

     在 A72和 C7x 之间(也与 A72的其他内核)有一个 RPmsg 消息传递、创建的缓冲区也使用 dma-buf。  

    您可以运行 ./vx_app_arm_ipc.out  以执行此应用。

    此致、

    尼基尔

x 出现错误。请重试或与管理员联系。