计算堆和保留的RAM

2个帖子/ 0新
最后一篇
阿林
离线
最后一次露面:4年2周前
加入:2016-09-30 07:23
计算堆和保留的RAM

嗨对话框,

1。
我的自定义应用程序基于多链路演示。
在SDK 1.0.6堆大小
#define configtotal_heap_size 13312 / *这是freertos total堆大小* /
在SDK 1.0.8.1中堆大小是
#define configtotal_heap_size 9216 / *这是freertos total堆大小* /

为什么这两个SDKS中有不同的尺寸对于同一项目?如何计算自定义应用程序的堆大小?

2。
SDK需要多少保留的RAM?

谢谢
arm

设备:
mt_dialog.
离线
最后一次露面:2个月2周前
职员
加入:2015-06-08 11:34
嗨Arminl,

嗨Arminl,

1.较旧的SDK上的额外堆大小是由于1.0.8执行的额外优化,从而减少了SDK的免费RTOS堆用。关于如何计算堆,这是通过配置具有大堆的系统,然后通过在执行最终应用程序时测量堆比率使用来凭经验完成。Freertos提供了监视堆用的方法,如XportgetFreeheapsize(),这将返回剩余未分配的堆空间的总量,也可以检查XportgetMinimimimimimimimumFreeHeapSize()。此外,在BLE_ADV演示中还有一个实现堆监视,通过定义DG_CONFIGTRACK_OS_HEAP,并且基本上强制将系统断言,如果任何任务超过特定量的堆使用量,则会迫使系统断言。

2.在保留的RAM中存储像堆(消息/环境/ DBHEAP)一样的BLE堆栈的所有必需品,保留的变量和SDK等的功能,当然当然是免费的RTOS的堆,没有精确的我可以提及的空间量,但是您可以通过将RTOS堆定义为0并检查.map文件并在保留空间中添加内存量,或者您可以检查.map文件并只需减去OS堆大小从保留RAM的总大小。例如,在BLE_ADV演示中,保留数据的数量约为48K。

谢谢mt_dialog.