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.

[参考译文] RTOS/TMDSEVM6678:多核 C6678上的多任务处理

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/664046/rtos-tmdsevm6678-multitasking-on-multicore-c6678

器件型号:TMDSEVM6678

工具/软件:TI-RTOS

尊敬的所有人:

我是 TI 开发工具和处理器的新手。 因此、请原谅这个可能是非常初级的问题。 我将在 EVM-6678 Code Composer Studio v7.4上构建一个应用

主要问题: 如果我构建一个 SYS/BIOS 应用程序、其中包含5个任务并将其加载到 C6678的所有内核上、SYS/BIOS 内核是否会在8个内核中的5个内核上动态调度5个任务。 如果是、我能否获取任何任务当前正在执行的 Core ID。 请指导我查看与 CCS v7.4相关的更新文档。  

2.我是否可以混合使用 SYS/BIOS 应用程序以使用 OpenMP。 上述任务之一是否可能使用 OpenMP 结构在 C6678的4个内核上并行执行循环。 提供任何此类示例代码并提供更新的文档。 请提供指导。   

此致

哈拉什

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    团队将收到通知。 他们将直接在此处发布反馈。

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

    否、除非您根据内核 ID 手动加载/计划任务到内核、否则 SYS/BIOS 内核不会将任务动态调度到内核。

    是 OpenMP 是您已经探索过的一个选项。 您可以配置主内核的索引和运行时可用的内核数、例如
    VAR OpenMP = xdc.useModule('ti.runtime.ompbios.OpenMP');
    OpenMP*主 CoreIdx = 0;
    OpenMP* = 3;
    请在此处查看详细信息: downloads.ti.com/.../configuring_runtime.html

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

    您好、Garrett

    感谢您快速提供信息。 我还需要了解一件事。 我的应用程序是否可以混合使用以下两种任务:SYS/BIOS 任务和其中一些任务使用 OpenMP 来加速执行某些数字运算例程。 我将就此稍作阐述。 我的应用具有一组需要大量处理的模块。 我想通过使用 OpenMP 来加快这些速度。 该应用程序还具有一组协调模块、需要定期执行、执行非常小的活动、例如通过以太网或 UART 发送/接收某些数据、或从某些传感器捕获一些数据、然后进入睡眠模式。 我希望将这些任务作为传统的 SYS/BIOS 任务运行、因为我喜欢 TI 为调度、Task_sleep、任务间通信、NDK 等提供的支持 正在构建这样一个应用。 请建议。 我完全不知道怎么去做。

    此致

    哈拉什

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    你好。 我制作了一个基于"Nimu_emacClientExample"的项目、并使用 openmp 示例将 omp 功能集成到其中。 因此在 main()函数中创建了任务,在某些任务中使用 OpenMP 进行处理。 因此、core0负责发送/接收数据、而其他内核则用于在需要时进行处理。 如果是您所说的情况、那么是的、这是可能的。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    感谢 Sergey 的出色积极回答。 这减轻了我的大量压力。 这就是我的目标。 我曾尝试提出过这样的申请,但没有解决。 如果您能在这方面为我提供一些指导、那将会很有帮助。 我将 CCS v7.4与 TMDSEVM6678搭配使用。 正如我所理解的、

    答:我需要创建一个 SYS/BIOS 应用

    b.向项目添加 OpenMP 支持

    c.修改配置文件以包含 OpenMP 要求

    d.创建新平台以包含 OpenMP 支持。

    请告诉我是否遗漏了任何内容。 或者我完全关闭。 请提供指导。 谢谢

    此致

    哈拉什

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

    是的、都是正确的。 我的步骤:

    1.创建一个工作项目"Nimu_emacClientExample"。

    2. 在项目属性中写入预定义符号:SoC_6678、DEVICE_C6678、USE_BIOS

    3.创建新平台(基于 ti.runtime.openmp.platforms.evm6678")。

    4.修改*。cfg (实际上它是"client.cfg 和"omp_config.cfg "中的一个混合变量)。

    5.在项目属性中激活 OpenMP 的编译器支持。

    6.在  main()中的 BIOS_start()之前创建新任务。

    7.在创建的任务中使用 omp。

    *我的配置(由于使用 OpenMP 库时不兼容、旧的 SYS/BIOS 和 XDCtools)

    • CCS v7.3
    • 编译器 TI v8.2.2
    • SYS/BIOS 6.46.5.55
    • XDCtools v3.32.1.22
    • IPC v3.46.2.04
    • NDK v2.25.1.11
    • OpenMP v2.6.2.00
    • PDK v2.0.7
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    非常感谢 Sergey。 我终于能够把事情放在一起、并获得具有 SYS/BIOS 和 OpenMP 支持的应用。 我从一个新的 CCS RTOS 典型项目开始。 已按照建议的步骤操作、应用程序已启动。

    我想为尝试类似应用程序的所有其他人指出、默认软件包版本用于此目的。

    CCS v7.4

    编译器 v8.2.2

    SYS/BIOS 6.52.00.12

    XDCtools 3.50.4.43

    IPC v3.47.0.0

    OpenMP v2.6.2.1

    PDK v2.0.8.

    我再次感谢社区 和谢尔盖先生的帮助。

    此致

    哈拉什。