集成算法库后分配内存失败

⚠️
你好。。谢谢你来到论坛。令人兴奋的消息!我们现在正在迁移到新的论坛平台,该平台将提供更好的功能,并包含在主对话网站中。所有员额和帐户都已迁移。我们现在只接受新论坛的流量-请在//www.wsdof.com/support. 我们将在未来几天内修复bug/优化搜索和标记。
9个员额/0个新员额
最后一篇文章
徐国栋
离线
最后一次见到:4个月4周前
加入:2020-06-04 13:34
集成算法库后分配内存失败

嗨,对话,

集成算法库后分配内存失败

我们的算法只需要总ram 9KB(数据1.5k bss 7.5k)。

设置以下两个参数后,问题仍然存在:Malloc fail。

  1. 设定将总堆大小从11200配置为25*1024.
  2. 当OS_任务_创建时,将堆栈从756设置为1024*22。

我附上了我的分析,请帮我检查更多。

谢谢

附件:
设备:
PM_对话框
离线
最后一次见到:2天7小时前
工作人员
加入:2018-02-08 11:03
徐国栋你好,,

徐国栋你好,,

VAApplicationAllocFailedHook()是FreeRTOS的一个钩子。当没有足够的连续堆可用于尝试的内存分配时,此提示会通知应用程序。我建议将FreeRTOS堆的大小(custom_config_XXXX.h文件中的configTOTAL_heap_size)增加到代码编译的最大值。

谢谢,下午好

徐国栋
离线
最后一次见到:4个月4周前
加入:2020-06-04 13:34
嗨,对话,

嗨,对话,

FreeRTOS堆的最大大小(configTOTAL\u heap\u size)是多少?

任务堆栈的最大大小是多少?

谢谢

PM_对话框
离线
最后一次见到:2天7小时前
工作人员
加入:2018-02-08 11:03
徐国栋你好,,

徐国栋你好,,

可以使用任意大的堆大小。如果系统内存不足,链接器将发出错误。请参阅https://freertos.org/有关FreeRTOS的更多信息。

谢谢,下午好

徐国栋
离线
最后一次见到:4个月4周前
加入:2020-06-04 13:34
嗨,对话,

嗨,对话,

将任务堆栈大小设置为>1024*10,错误:将发生分配内存失败。

谢谢

PM_对话框
离线
最后一次见到:2天7小时前
工作人员
加入:2018-02-08 11:03
徐国栋你好,,

徐国栋你好,,

你能附上一张截图吗?您使用的配置总堆大小是多少?

谢谢,下午好

徐国栋
离线
最后一次见到:4个月4周前
加入:2020-06-04 13:34
如下所示,如果任务堆栈>10

如下所示,如果任务堆栈>10*1024,则内存分配失败。

/*************************************************************************************************\
*内存特定配置
*/
#定义dg_配置QSPI_缓存_优化_恢复_0_大小_AE(64*1024)
#定义dg_配置QSPI_缓存_RAM_大小_AE(32*1024)
#定义dg_configQSPI_CACHED_RETRAM_0_SIZE_AE(96*1024)

#定义dg_配置QSPI_缓存_RAM_大小(56*1024)
#定义dg_配置QSPI_缓存_重新传输0_大小(72*1024)
#定义dg_配置QSPI_代码_大小(256*1024)

OS_TASK_CREATE(“PXP Reporter”/*分配给任务的文本名称,例如
只调试;内核不使用*/
pxp_reporter_task,/*实现该任务的函数*/
NULL,/*传递给任务的参数*/
#如果(dg_配置禁用_后台_闪存_操作==1)
512,/*要分配给
任务的堆栈*/
#否则
#如果ZSENS_FUSION_ALGO
1024*10,/*要分配给
任务的堆栈*/
#否则
756,
#恩迪夫
#恩迪夫

徐国栋
离线
最后一次见到:4个月4周前
加入:2020-06-04 13:34
/****************************

/*************************************************************************************************\
*内存特定配置
*/
#定义dg_配置QSPI_缓存_优化_恢复_0_大小_AE(64*1024)
#定义dg_配置QSPI_缓存_RAM_大小_AE(32*1024)
#定义dg_configQSPI_CACHED_RETRAM_0_SIZE_AE(96*1024)

#定义dg_配置QSPI_缓存_RAM_大小(56*1024)
#定义dg_配置QSPI_缓存_重新传输0_大小(72*1024)
#定义dg_配置QSPI_代码_大小(256*1024)
/*************************************************************************************************\
*FreeRTOS特定配置
*/
#定义OS_FREERTOS/*定义此选项以使用FREERTOS*/
#如果(dg_配置使用_SOC)
#如果已定义(调试_SOC)
#定义configTOTAL_HEAP_SIZE 12300/*这是FreeRTOS的总堆大小*/
#否则
//#define configTOTAL_HEAP_SIZE 11200/*这是FreeRTOS的总堆大小*/
#定义configTOTAL_HEAP_SIZE 20*1024/*这是FreeRTOS的总堆大小*/
#恩迪夫
#否则
#定义configTOTAL_HEAP_SIZE 11000/*这是FreeRTOS的总堆大小*/
#恩迪夫

PM_对话框
离线
最后一次见到:2天7小时前
工作人员
加入:2018-02-08 11:03
徐国栋你好,,

徐国栋你好,,

系统是否仍然耗尽堆?

谢谢,下午好