工具/软件:TI-RTOS
你(们)好。
我正在项目中使用 LaunchPAD-XL。
基本上、我使用 TI-RTOS 函数创建一个包含103个字符元素的动态数组:
memory_calloc( NULL,(SizeT)103,0,NULL );
执行某项操作后、我将使用以下命令删除动态阵列:
memory_free (NULL、memoryPointer、(SizeT) memorySize);
为了确保阵列被删除、我在 Memory_calloc 和 Memory_free 之前打印堆信息。
我意识到以下功能:
void OS_MemoryHeapInfoPrint (void)
{
Memory_Stats 统计数据;
Memory_getStats (NULL、&stats);
/* totalSize—堆的总大小(以 MADU 为单位)。
totalFreeSize—堆中可用存储器的当前大小(以 MADU 为单位)
largestFreeSize—当前最大连续自由块(在 MADU 中)*/
UART_PRINT ("[RTOS] TOTAL:%d - Free:%d - BISTAL:%d\r\n"、stats.totalSize、stats.totalFreeSize、stats.largestFreeSize);
}
在 UART 上、我看到堆可用存储器持续减少。
在 UART 上进行第一次迭代时、我看到:
[RTOS]总计:32768 -免费:25800 -最大值:25800
/*分配和免费*/
[RTOS]总计:32768 -免费:25344 -最大值:25344
在多次迭代之后、我看到:
[RTOS]总计:32768 -免费:13032 -最大值:13032
/*分配和免费*/
[RTOS]总计:32768 -免费:12576 -最大值:12576
为什么堆大小减小?
感谢您的帮助!