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/AM5728:编译 CMEM 测试应用程序

Guru**** 2595805 points


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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/586436/linux-am5728-compiling-the-cmem-test-application

器件型号:AM5728

工具/软件:Linux

我们正在尝试编译并执行一个已知的运行中的 Linux-DSP-RTOS 多核应用、其中 Linux 应用程序和 DSP RTOS 配套应用程序都利用 CMEM 库来共享大容量缓冲区。 我们看到有一个 GateMPApp、它似乎具有 Linux 和 DSP RTOS 的配套器件、请参阅下面的内容。

/home/user01/ti/ipc_3_44_00_00/linux/src/tests/GetMPApp.c - Linux 端应用程序

/home/user01/ti/ipc_3_44_00_00/packages/ti/ipc/tests/gatempapp.c - DSP 的 RTOS 端应用

使用面向 AM572x IDK EVM 的 Linux RT 处理器 SDK 环境编译 GateMPApp 时遇到问题。 这包括编译 Linux GateMPApp.c 和与 gatempapp.c TI RTOS DSP 程序相关的 RTOS。 问题似乎是 Makefile 未尝试编译这些源文件。 似乎有一些环境变量或编译器变量需要根据/home/user01/ti/ipc_3_44_00_00/linux/src/tests 中 Makefile.am 的以下摘录进行定义、例如 CMEM 和 DRA7XX、

如果是 DRA7XX
#在此处添加平台特定 bin 应用程序
 bin_programs +=
IF CMEM
 bin_programs += GateMPApp
字节序
IF KDIR
如果是 DRM
 bin_programs += mmrpc_test
字节序
字节序
其他

(笑声) 等等

默认应用程序编译良好、例如 MessageQApp。 我们如何编译 GateMPApp?

此外、还有其他示例更易于编译、这些示例展示了如何在 Linux 和 RTOS 之间共享大缓冲区?

谢谢

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    软件团队已收到通知。 他们将在这里作出回应。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、网络处理器、

    您可以按照 此处的说明进行操作

    更新 products.mak 并构建 GateMPApp。

    该线程() 也可以帮助您创建自己的 CMEM 应用程序。


    此致、

    Garrett

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

    我们将在上面介绍您的帖子。

    我将查看嵌入在 ti-processor-sdk-linux-rt-am57xx-evm-03.02.00.05目录结构中的 CMEM API。 在目录中、

    /opt/ti/ti-processor-sdk-linux-rt-am57xx-evm-03.02.00.05/board-support/extra-drivers/cmem-mod-4.12.00.00 +gitAUTOINC+d6d3e84c84/

    看起来 API 库没有在套件中或在其他位置进行预编译? 我将尝试编译它。
    谢谢
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Netrover、

    您是对的- CMEM 未在套件中预编译。
    您可以在此处从其复制中克隆 CMEM: http://git.ti.com/ipc/ludev、请参阅 processors.wiki.ti.com/.../CMEM_Overview

    此致、
    Garrett
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我在该主题中尝试了该示例。 在收到以下消息后、app_host 执行内核转储。

    --------------------------------------------------
    root@am57xx-EVM:~/tests/cmemhost #./app_host DSP1
    -->主要:
    ->Main_main:
    --> App_create:
    CMEM_init 成功
    MessageQ_Params_init
    MessageQ_create
    app_host:./../../hlos_common/src/utils/MultiProc.c:79:MultiProc_getName:断言`id <_MultiProc_cfg.numProcessor'失败。
    已中止(转储内核)
    --------------------------------------------------

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

    我修复了 MultiProc_getName 错误、这似乎是因为我链接了.a 库、而不是.so 库来实现 tiipc、tiipcutils 和 titranspropstampmsg。

    发布的示例 bitbucket.org/.../cmem.git在我将原始'ex02_MessageQ'替换为该示例时起作用、目前仅为主机和 DSP1编译。 我使用"ti-processor-sdk-linux-rt-am57xx-evm-03.02.00.05"中的顶级 make 'ti-ipc'来更新'ex02_MessageQ'的'.../IPC_3_44_00_00/examples'。

    现在、我有一个正在运行的 CMEM 示例、我可以使用该示例了解如何使用 cmemk.ko 模块来保留存储器或设备树方法。

    感谢您的帮助!