尊敬的 TI 团队:
在我们的应用中、有一些时间关键型操作、并且应该与 R5F (FreeRTOS)内核一起执行。 由于延迟是一个问题、我们正在探索从 TCM (TCMA &B)存储器执行程序和数据(而不使用 MSRAM 或 DDR)的可能性。 我们需要在启动时从 A53 Linux 将二进制文件加载到 TCM 中。 是否有任何与 TCM 使用相关的示例? 如果不能、请给出一些指导原则?
谢谢你
Chris
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.
尊敬的 TI 团队:
在我们的应用中、有一些时间关键型操作、并且应该与 R5F (FreeRTOS)内核一起执行。 由于延迟是一个问题、我们正在探索从 TCM (TCMA &B)存储器执行程序和数据(而不使用 MSRAM 或 DDR)的可能性。 我们需要在启动时从 A53 Linux 将二进制文件加载到 TCM 中。 是否有任何与 TCM 使用相关的示例? 如果不能、请给出一些指导原则?
谢谢你
Chris
Chris、您好!
您所要做的就是正确设置链接器命令文件、以确保将数据存储在本地 TCM 中、而不是存储在 R5F 子系统之外的存储器地址中。
另外要注意的是、为了让 R5F 二进制文件由 Linux 加载、R5F 项目中必须有一个放置在 DDR 中的资源表。 如需更多信息、请参阅此常见问题解答(目前仍在进行中、因此如果有任何问题、请告知我): https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1193620/faq-am62x-am64x-how-to-allow-linux-to-load-m4f-r5f-firmware-by-adding-a-resource-table
可参考的最简单的 MCU+ 示例可能是 examples/ipc/ipc_rpmsg_echo_linux/am64x-evm/r5fs1-0_freertos/ti-arm-clang/linker.cmd
放置在 DDR (资源表除外)中的每个段都可以通过如下更改移动到 TCM 存储器:
/* This is rest of code. This can be placed in DDR if DDR is available and needed */
GROUP {
.text: {} palign(8) /* This is where code resides */
.rodata: {} palign(8) /* This is where const's go */
/* } > DDR_1 */
} > R5F_TCMB0
只需确保您放置在 TCM 存储器中的代码实际适用!
此致、
Nick