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.

[参考译文] TMS570LS1224:F021闪存 API TI-FEE 驱动程序堆使用情况

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/842737/tms570ls1224-f021-flash-api-ti-fee-driver-heap-usage

器件型号:TMS570LS1224
主题中讨论的其他器件:HALCOGEN

您好!

我刚刚从 Halcogen 为 TI-FEE 驱动器生成了代码、我注意到它向链接器命令文件中添加了.sysmem 段:

.sysmem    :{}>RAM


 F021闪存 API 还是使用堆的 TI-FEE 驱动器? 对于仅使用静态内存分配的安全应用、这不是一个问题吗?

此致、

R.

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

    Ritchie、您好!

    首先、它不限于闪存 API 或 FEE 驱动器、由 Halgogen 生成的任何示例代码在  命令文件中都包含此代码(.sysmem 映射到 RAM)。

    sysmem 段为动态内存分配保留空间。 此空间由动态内存分配例程使用,例如 malloc()、calloc()、realloc()或 new()。 如果 C/C++程序不使用这些函数、编译器不会创建.sysmem 段。

    因此、如果现在您查看生成的存储器映射文件 (*。map)并搜索.sysmem、您将无法找到任何真正的文件、这意味着它尚未被积极使用。

    希望这对您有所帮助。

    此致、

    周德伟

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

    >首先,它不限于闪存 API 或 FEE 驱动程序,由算法生成的任何示例代码在  命令文件中都包含此代码(.sysmem 映射到 RAM)。

    这不是真的。 在 Halcogen ->"Driver Enable"选项卡中启用 FEE 驱动器之前、sys_link.cmd 没有.sysmem 段。 我再次检查了它、以确保这一点。 启用其他驱动程序不会将.sysmem 行附加到链接器命令文件中。

    >.sysmem 段为动态内存分配保留空间。 此空间由动态内存分配例程使用,例如 malloc()、calloc()、realloc()或 new()。 如果 C/C++程序不使用这些函数、编译器不会创建.sysmem 段。

    我的程序未使用动态内存分配、因此我不希望在链接器命令文件中使用此段。

    >因此,如果现在您查看生成的内存映射文件 (*.map)并搜索.sysmem,就不能找到任何真正的文件,这意味着它没有被积极使用。

    这是一条有用的建议。 实际上、存储器映射文件中没有.sysmem 段、因此这是该段是否已使用的最终指标。

    无论如何、在启用 FEE 驱动器时添加未使用的段对我来说是一个错误、因此如果修复该错误、那将会更好。

    此致、

    Ritchie

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

    Ritchie、

    您使用的 HALCoGen 是什么版本? 我正在使用4.7.1、并且尝试为570LS1224创建一个新项目、在禁用所有驱动程序的情况下、我将.sysmem 映射到 RAM。

    此致、

    周德伟

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

    我的版本是:04.07.01。 我的项目是针对 TMS570LS1224PGE_FreeRTOS 的。  

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

    Ritchie、

    谢谢。 现在我复制了它。 下面是摘要。

    1) 1)对于不可用的 RTOS、.sysmem 始终包含在.cmd 文件中、即使 所有驱动程序都已禁用;

    2) 2)对于免费 RTOS、仅当启用 FEE 驱动器时、.system 才会包含在.cmd 文件中。

    但我想、现在您还可以、因为您根本不使用.sysmem。 我将关闭此 E2E 主题。

    此致、

    周德伟

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

    好的、感谢您的努力。

    此致、

    Ritchie