主题中讨论的其他器件:SysConfig
工具与软件:
我们创建了一个具有多个接口的项目、对于内核的利用方式有一些疑问。 考虑hello_world_r5fss0-0_freertos_ti-arm-clang.out映像—此映像是否仅加载到 R5FSS0-0 执行多少任务、还是也由所有其他内核执行?
如果由所有其他内核执行、这是最佳方法、还是为每个内核刷写单独的映像是更好的方法? 您能建议遵循的最佳方法吗?
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.
工具与软件:
我们创建了一个具有多个接口的项目、对于内核的利用方式有一些疑问。 考虑hello_world_r5fss0-0_freertos_ti-arm-clang.out映像—此映像是否仅加载到 R5FSS0-0 执行多少任务、还是也由所有其他内核执行?
如果由所有其他内核执行、这是最佳方法、还是为每个内核刷写单独的映像是更好的方法? 您能建议遵循的最佳方法吗?
尊敬的 Perumalsamy:
感谢你伸出手,并高兴地让你开始在这里。
我们的大多数 SDK 示例都是使用单核上下文设计的、因此在工程文件"_r5fssX-Y_"中指定了该名称。
这些示例将根据项目配置中的"context"参数将.out 文件加载到指定的内核中,并运行到 main()。

但是、用户还可以从"Debug "threads"视图(在 CCS Theia/CCS20中)或"Cores"视图(CCS 12.x)中选择给定内核、导航到 Run 功能区选项并选择 Load、Load Program... 将同一.out 文件加载到备用内核中。
我们还提供一个"系统"示例、此示例旨在用作多核应用的起点。 包含指向以下示例的链接。
EXAMPLES_EMPTY.html - https://dev.ti.com/tirex/explore/node?node=A__AExIg7plmtGPqlTDR0GPTg__com.ti.MCU_PLUS_SDK_AM263X__aBmeCqF__LATEST
请注意、此处的上下文设置为"系统"、这表示工程在多个内核上执行、而不是在单个定义的内核上执行。
有关多核/系统应用调试步骤的其他信息、请访问下面的链接。
使用 CCS 调试多核器件 - https://software-dl.ti.com/ccs/esd/documents/ccs_multi-core-debug.html
最佳使用方法将取决于您的系统/应用要求。
在开发阶段、根据需要为每个内核加载代码可能会更容易。 一旦消除了每个内核所需的代码、您就可以转换为使用 TI multicore-elf 工具来生成单个映像、该映像会将独特的功能映射到每个内核/上下文。
GitHub - TexasInstruments/multicore-elf:这是多核 elf python 工具的官方 TI 存储库、可通过输入 elfs 生成多核 elf 映像。
希望这能提供您所需的信息、并乐意回答任何可能出现的后续问题。
此致、
Zackary Fleenor
您好、Perumalsamy、
1)
在这种情况下、任务只能在上运行 R5FSS0-0 或者会在所有内核之间共享。 [报价]我不明白这句话。 您能否在这里提供一个简要的图表来描述系统/应用的预期? 内核、任务、外设等。。。
2)这是可能的,但二进制必须在其中一个(或两个?)上运行 两个内核的实例、并在系统工程配置中被指定为这样的内核。 在更好地理解 Q1的要求后、我们可能能够详细说明。
此致、
Zackary Fleenor
您好、Perumalsamy、
根据您当前的描述、所有任务将在 R5FSS0-0上执行。 我建议构建一个包含所有任务(和预期优先级/执行时间)的系统图、然后将函数分布在2个或4个内核上。 这只是一个快速入门建议。
R5FSS0-0:主机内核-分配/管理系统级任务执行
R5FSS0-0:COMMS Core1 -处理 RGMII + I2C 通道
R5FSS1-0:常见问题2 -句柄 CAN + SPI/UART
R5FSS1-1:COMMS Core3 -处理 SPI + UART/I2C
R5FSS0-0仍然是主机/控制内核、但会将二进制文件加载到每个内核中以用于其指定的功能。
CPU 带宽的分配和任务的优先级都取决于最终应用和系统要求。
您可以利用邮箱和 Spinlock IPC (处理器间通信)模块来维护各种外设和内核之间的数据流。
这是否有助于为多核利用率/预期提供更好的定义?
此致、
Zackary Fleenor
您好!
1)是的,这是绝对可能的。 请访问下面的链接、我们将介绍存储器配置工具以及共享存储器区域的方法。
Memory Configurator - Shared Memory Region Configuration
2)共享存储器最常见的用途是在器件片上 SRAM 中使用、因此可以分配高达2MB 的空间、但根据功能和安全要求、通常有多个分区。 每个定义的存储器区域都可以通过提供适当的 MPU 配置来实现访问控制(这也在上面链接的页面中进行了介绍)。 正确利用 SysConfig 内存配置器工具将确保在定制实现中遵守任何内部限制/要求。
此致、
Zackary Fleenor