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.

[参考译文] TDA4AL-Q1:[SRAM]如何检查 SRAM 使用情况

Guru**** 2392905 points


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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1495081/tda4al-q1-sram-how-to-check-sram-usage

器件型号:TDA4AL-Q1
Thread 中讨论的其他器件:TDA4VH

工具/软件:

尊敬的 TI:

我们在 MCU R5F 上运行 FreeRTOS 应用。

MCU 域 R5F 具有1M

我想了解  SRAM 的使用情况。

如何获取  SRAM 使用信息?

要了解更多信息,我也能了解 CPU 的使用情况吗?

非常感谢

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

    尊敬的 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

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

    亲爱的苏曼

    我想知道我的应用程序会使用哪些存储器大小

    1.如何检查内存使用情况?

    我似乎有一些错误的概念。

    获得您的信息后、

    如何设计使用 SRAM 存储器?

    使用 SRAM 是否优于使用 DDR?

    我们的 ADAS 应用需要高速和高性能用法。

    您的建议是什么?

    非常感谢

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

    尊敬的 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

    顺便说一下、这些是有关链接器和了解映射文件的非常基本的问题。 你可能想要谷歌和理解这些基础知识。

    开发人员不经常使用 malloc 函数、对吧?

    堆没有使用或非常多,对吧?

    [/报价]

    正确、这是安全软件的典型和预期情况。 设计遵循  

    但是、您还有共享 DDR 缓冲器(如 OpenVx 用例中)、这些缓冲器可能分配在 A72端并与其他处理器共享。

    如果我要在基于 ipc_echo_test 示例的 FreeRTOS 应用下使用 SRAM、

    您有任何要实施的评论吗?

    [/报价]

    您可以调整链接器命令文件以在不同的段之间移动。

    请注意、与 DDR 相比、SRAM 存储器较小、因此您可能无法将所有内容都装入 MCU SRAM。 IPC_ECHO_TEST 只是一个示例、您的操作生产固件使用可能会有很大不同。

    此致

    Suman

    [/quote]
    [/quote][/quote]