我正在尝试获取微控制器使用 RAM 和闪存部分的百分比。 这是链接器文件.
(工具链:xPack for RISC-V,GCC-12.2) 当我使用第一个符号时:
.stack ORIGIN(RAM) + LENGTH(RAM) - __stack_size :
{
. = ALIGN(4);
PROVIDE(_susrstack = . );
. = . + __stack_size;
PROVIDE( _eusrstack = .);
} >RAM
我有 100% 的 RAM 使用率。
当我使用下一个符号时:
.stack :
{
. = ALIGN(4);
PROVIDE(_susrstack = . );
. = . + __stack_size;
PROVIDE( _eusrstack = .);
} >RAM
我有 3% 的 RAM 使用率。
但实际上我只是将堆栈移动到该部分内。
当我使用旧的 GCC 8.3 时——两种情况下一切正常。
我比较了 GCC 12.2 和 8.3 的 ld 与 '-print-memory-usage' 的输出。 行为不同。
在已用内存百分比计算期间,是否有任何方法可以忽略 .stack 和 .heap 部分? –