主题中讨论的其他器件:HALCOGEN
您好!
我刚刚从 Halcogen 为 TI-FEE 驱动器生成了代码、我注意到它向链接器命令文件中添加了.sysmem 段:
.sysmem :{}>RAM
F021闪存 API 还是使用堆的 TI-FEE 驱动器? 对于仅使用静态内存分配的安全应用、这不是一个问题吗?
此致、
R.
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.
您好!
我刚刚从 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