Thread 中讨论的其他器件:TDA4VH
工具/软件:
尊敬的 TI:
我们在 MCU R5F 上运行 FreeRTOS 应用。
MCU 域 R5F 具有1M
我想了解 SRAM 的使用情况。
如何获取 SRAM 使用信息?
要了解更多信息,我也能了解 CPU 的使用情况吗?
非常感谢
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.
尊敬的 Daniel:
Unknown 说:如何获取 SRAM 使用信息?
MCU SRAM 的使用实际上取决于应用程序固件、并取决于应用程序如何使用该存储器。 s/w 中没有任何内容可以告知您使用了多少 SRAM。
您的 FreeRTOS 应用是否使用 MCU SRAM? 您可以查看链接器映射文件以了解详情。
Unknown 说:有关详细信息、我也能知道 CPU 的使用情况吗?
请看一下 OSAL LoadP 模块。 请参阅 PDK API 指南中的 LoadP API。
此致
Suman
亲爱的 苏曼
谢谢你。
您是说我们无法知道 SW 代码使用的存储器(SRAM 或 DDR)吗?
"您的 FreeRTOS 应用是否使用 MCU SRAM?"
我对这个问题感到困惑。
我的理解是默认使用 SRAM
FreeRTOS 不能使用 SRAM?
我使用 ipc_echo_testb_freeRTOS
您可以 在 linker_r5f_freertos_common.inc/linker_r5f_mcu1_0_btcm_freertos.lds/memory_map_defines.inc 上查看 pdk_j721s2_10_01_00_25\packages\ti\drv\ipc\examples\common\j721s2\freeRTOS
非常感谢
尊敬的 Daniel:
您的意思是我们不知道软件代码对内存(SRAM 或 DDR)的使用情况吗?
您是否遇到了使用了多少 MCU SRAM 或者是否使用了 MCU SRAM 的问题?
我的理解是默认使用 SRAM
没有默认值。
FreeRTOS 无法使用 SRAM?
应用程序中的 SRAM 使用与所使用的 RTOS 无关。 FreeRTOS 只是一个操作系统、存储器使用情况由您的应用程序链接器文件决定。
我使用 ipc_echo_testb_freertos
该固件使用 BTCM 和 DDR、但不使用 MCU SRAM。
此致
Suman
尊敬的 Daniel:
1. 如何检查内存使用情况?
您可以从固件的映射文件中了解您的一般利用率。
如何设计使用 SRAM 内存?
没有什么特别的需要。 您可以使用链接器命令文件将段放入 MCU SRAM。
请注意、R5 SPL 或 SBL 也能完全在 MCU SRAM 中运行、并且它本身负责加载 MCU1_0固件。 因此、您的 MCU1_0应用中可能没有 MCU SRAM 的完全可用性。
使用 SRAM 是否优于使用 DDR?
SRAM 作为片上存储器、肯定能为您提供比 DDR 更好的性能、但整个固件可能无法装入可用的 SRAM 中。
您将在 MCU1_0内核上运行什么软件栈?
此致
Suman
亲爱的苏曼
感谢您的回复。
您是否意味着我们可以通过检查 FIH_ADAS_FREERTOS_mcu1_0_RELEASE.xer5f.map 文件来知道应用使用多少 RAM 大小?
"R5 SPL 或 SBL 也在 MCU SRAM 中完全运行"
是否意味着 R5F SPL (tiboot3.bin)使用 SRAM 的一部分、因此使用 MCU1_0应用程序。 无法完全使用 MCU SRAM?
如何检查 R5F SPL 使用的大小?
可以在应用程序(tispl.bin)运行后发布的吗
您将在 MCU1_0内核上运行什么软件栈?
包括 IPC/CAN/闪存、其中集成 ADAS 库
非常感谢
随附 filee2e.ti.com/.../fih_5F00_adas_5F00_freertos_5F00_mcu1_5F00_0_5F00_release.xer5f.map.txt
尊敬的 Daniel:
您是否意味着我们可以通过检查 FIH_ADAS_FORertos_mcu1_0_release.xer5f.map 文件来了解应用使用多少 RAM 大小?
是的。 链接器命令文件通常指定不同的存储器段、编译器映射文件将显示这些段中的利用率。
您是否意味着 R5F SPL (tiboot3.bin)使用 SRAM 的一部分、因此 MCU1_0应用程序。 无法完全使用 MCU SRAM?
是的、正确。 一旦 MCU1_0固件开始执行、您可能会将引导加载程序使用的部分用作堆栈或堆、但不能用作可加载段、因为引导加载程序是加载 MCU1_0应用程序的部分、它最终会自行损坏。
如何检查 R5F SPL 使用了多少个大小?
请在 U-Boot 构建文件夹中查找生成的映射文件或从您的 SPL ELF 文件。
在应用程序(tispl.bin)运行后可以发布
是的、一旦 R5 SPL 超出范围(MCU1_0应用程序固件开始执行时)、该区域就可用。
包含 IPC/CAN/Flash、其中集成 ADAS 库
根据操作系统和驱动程序栈以及您将在 MCU1_0应用程序中运行的其他应用程序代码、MCU SRAM 可能不够。 您可能必须使用 TCM + MCU SRAM + DDR 的组合。
此致
Suman
亲爱的苏曼
感谢您的答复
"您可能必须组合使用 TCM + MCU SRAM + DDR"
它是否 仅由链接器 lds 文件设计?
我是否需要将 memory_map_ddr.cmd 配置为 common\j721s2\freeRTOS?
我想尽可能使用 SRAM。
您能帮助查看 FIH_ADAS_FREERTOS_mcu1_0_release.xer5f.map.txt、
我可以使用什么大小(TCM + MCU SRAM + DDR)?
"是的、一旦 R5 SPL 超出范围(MCU1_0应用程序固件开始执行时)、该区域就可用。"
您是说我不在乎 SPL 大小、因为我可以在 MCU1_0固件启动后重复使用它吗?
我混淆了"不是可加载段、因为引导加载程序是加载 MCU1_0应用程序的段"
您是否意味着它只能用于"堆栈或堆"
关于 SPL 模式下的"ipc_echo_testb_freertos" runig 示例。
它是否仅在 SRAM 下运行 SPL、是否仅在 DDR 下运行 FreeRTOS?
您是否有 使用 SRAM 运行 FreeRTOS 固件的示例 ?
请查看 linker_r5f_freertos_common.inc 和 memory_map_defines.inc 的 common\j721s2\freeRTOS。
这是否意味着 FW 保留512MB DDR?
#define DDR0_RESERVED_START 0x80000000
#define DDR0_RESERVED_SIZE 0x20000000 /* 512MB */
非常感谢
尊敬的 Daniel:
它是否 仅由链接器 lds 文件设计?
是的。 您正在构建的链接器 cmd 文件和程序段完全由客户决定。
我是否需要将 memory_map_ddr.cmd 配置为 common\j721s2\freeRTOS?
这是 IPC_ECHO_TEST 示例固件专门使用的链接器命令文件。
请参阅 9.9.了解和更新 RTOS SDK 文档中的 SDK 内存映射开发人员手册、该手册提供了 TDA4VH SoC 中用于运行视觉栈的所有多个处理器的详细信息。
[引述 userid="603914" url="~/support/processors-group/processors/f/processors-forum/1495081/tda4al-q1-sram-how-to-check-sram-usage/5749139 #5749139"]您能帮助查看 FIH_ADAS_FREERTOS_mcu1_0_release.xer5f.map.txt、
我可以使用什么大小(TCM + MCU SRAM + DDR)?
[/报价]这使用 BTCM 和 DDR。 请查看 您的中已使用和未使用的列 内存配置( 定义为统一的链接器命令、用于查看系统中所有固件的总体系统存储器映射)。 下的运行原点和加载原点列 段分配映射 部分显示了用于各种固件部分的具体地址。
这些都是与链接器相关的基本项、如果您不了解链接器 cmd 文件、您可能需要使用谷歌搜索。
您是否意味着我不在乎 SPL 大小、因为我可以在 MCU1_0固件启动后重复使用它?
是的
您是否表示它只能用于"堆栈或堆"
是的
它是否仅使用 SRAM 运行 SPL、是否仅使用 DDR 运行 FreeRTOS?
是的。 它也使用 BTCM。
您是否有 使用 SRAM 运行 FreeRTOS 固件的示例 ?
否
[引述 userid="603914" url="~/support/processors-group/processors/f/processors-forum/1495081/tda4al-q1-sram-how-to-check-sram-usage/5749139 #5749139"]这是否意味着 FW 保留512MB DDR?
#define DDR0_RESERVED_START 0x80000000
#define DDR0_RESERVED_SIZE 0x20000000 /* 512MB */
不是真的,这只是表明这是不被任何固件使用. 将其保留在 HLOS/Linux 上。
此致
Suman
PS:您可以突出显示回复并使用"报价"更好地评论特定陈述。
亲爱的苏曼
这是使用 BTCM 和 DDR
我不知道如何计算
您能否帮助计算此固件的总使用量?
仅适用于"stack or heap
在 MCU 编程下、
开发人员不经常使用 malloc 函数、对吧?
堆没有使用或非常多,对吧?
运行FreeRTOS 固件使用 SRAM
如果我要在基于 ipc_echo_test 示例的 FreeRTOS 应用下使用 SRAM、
您有任何要实施的评论吗?
感谢您的大力帮助
尊敬的 Daniel:
我不知道如何计算
您能否帮助计算此固件的总使用量?
[/报价]您可以从存储器映射中推断这些内容。 请浏览映射文件的存储器配置部分的"已使用"部分。
name origin length used unused attr fill ---------------------- -------- --------- -------- -------- ---- -------- MCU_R5F_TCMB_VECS 41010000 00000040 00000040 00000000 X MCU_R5F_TCMB 41010040 00007fc0 00000a48 00007578 X ... ... MCU1_0_IPC_DATA a0000000 00100000 00000000 00100000 RWIX MCU1_0_EXT_DATA a0100000 00100000 00080090 0007ff70 RWIX MCU1_0_R5F_MEM_TEXT a0200000 00100000 00000000 00100000 RWIX MCU1_0_R5F_MEM_DATA a0300000 00100000 00000000 00100000 RWIX MCU1_0_DDR_SPACE a0400000 00c00000 002078f7 009f8709 RWIX顺便说一下、这些是有关链接器和了解映射文件的非常基本的问题。 你可能想要谷歌和理解这些基础知识。
[/quote][/quote]开发人员不经常使用 malloc 函数、对吧?
堆没有使用或非常多,对吧?
[/报价]正确、这是安全软件的典型和预期情况。 设计遵循
但是、您还有共享 DDR 缓冲器(如 OpenVx 用例中)、这些缓冲器可能分配在 A72端并与其他处理器共享。
[/quote]如果我要在基于 ipc_echo_test 示例的 FreeRTOS 应用下使用 SRAM、
您有任何要实施的评论吗?
[/报价]您可以调整链接器命令文件以在不同的段之间移动。
请注意、与 DDR 相比、SRAM 存储器较小、因此您可能无法将所有内容都装入 MCU SRAM。 IPC_ECHO_TEST 只是一个示例、您的操作生产固件使用可能会有很大不同。
此致
Suman