嗨对话框,
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
设备:
嗨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.