嗨对话框,
在集成算法库之后无法分配内存。
我们的算法仅需要总RAM 9KBytes(数据1.5K BSS 7.5K)。
设置以下两个参数后,问题仍然存在:malloc失败。
我附上了我的分析,请帮我检查更多。
谢谢。
嗨Xuguodong,
VapplicationMallocfailedhook()是FreeRos的挂钩。当没有足够的连续堆可用于尝试的内存分配时,此Hoot通知应用程序。我建议将FreeRTOS堆(CommentOTOL_HEAP_SIZE中的CONCURE_CONFIG_XXXXXXXXXXXX.H文件的大小提高到代码编译的最大号码。
谢谢,PM_DIALOG.
freertos堆的最大大小是多少(configtotal_heap_size)?
任务堆栈大小的最大大小是多少?
您可以使用您想要的堆大小。如果系统运行RAM,则链接器将发出错误。请参阅https://freertos.org/有关Freertos的更多信息。
将任务堆栈大小设置为> 1024 * 10,错误:未能分配内存。
你能附上截图吗?您正在使用的configtotal_heap_size是什么?
如下,如果任务堆栈> 10 * 1024,则内存无法分配。
/ **************************************************************************************************内存特定配置* /#define dg_configqspi_cached_optimal_retram_0_size_ae(64 * 1024)#define dg_configqspi_cached_ram_size_ae(32 * 1024)#define dg_configqspi_cached_retram_0_size_ae(96 * 1024)
#define dg_configqspi_cached_ram_size(56 * 1024)#define dg_configqspi_cached_retram_0_size(72 * 1024)#define dg_configqspi_code_size(256 * 1024)
OS_TASK_CREATE(“PXP Reporter”,/ *分配给任务的文本名称,只调试;内核不使用。* /pxp_reporter_task,/ *实现任务的函数。* /null,/ *传递给任务的参数。* /#if(dg_configdisable_background_flash_ops == 1)512,/ *分配给的字节数堆栈的任务。* /#别的#if zsens_fusion_algo.1024 * 10,/ *分配给的字节数堆栈的任务。* /#别的756,#万一#万一
#define dg_configqspi_cached_ram_size(56 * 1024)#define dg_configqspi_cached_retram_0_size(72 * 1024)#define dg_configqspi_code_size(256 * 1024)/ ************************************************************************************************** freertos特定配置* /#define os_freertos / *定义它以使用freertos * /#if(dg_configuse_soc)#f定义(debug_soc)#define configtotal_heap_size 12300 / *这是freertos total堆大小* /#别的// #define configtotal_heap_size 11200 / *这是freertos total堆大小* /#define configtotal_heap_size 20 * 1024 / *这是freertos total堆大小* /#万一#别的#define configtotal_heap_size 11000 / *这是freertos total堆大小* /#万一
系统仍然没有堆吗?
嗨Xuguodong,
VapplicationMallocfailedhook()是FreeRos的挂钩。当没有足够的连续堆可用于尝试的内存分配时,此Hoot通知应用程序。我建议将FreeRTOS堆(CommentOTOL_HEAP_SIZE中的CONCURE_CONFIG_XXXXXXXXXXXX.H文件的大小提高到代码编译的最大号码。
谢谢,PM_DIALOG.
嗨对话框,
freertos堆的最大大小是多少(configtotal_heap_size)?
任务堆栈大小的最大大小是多少?
谢谢。
嗨Xuguodong,
您可以使用您想要的堆大小。如果系统运行RAM,则链接器将发出错误。请参阅https://freertos.org/有关Freertos的更多信息。
谢谢,PM_DIALOG.
嗨对话框,
将任务堆栈大小设置为> 1024 * 10,错误:未能分配内存。
谢谢。
嗨Xuguodong,
你能附上截图吗?您正在使用的configtotal_heap_size是什么?
谢谢,PM_DIALOG.
如下,如果任务堆栈> 10 * 1024,则内存无法分配。
/ *************************************************************************************************
*内存特定配置
* /
#define dg_configqspi_cached_optimal_retram_0_size_ae(64 * 1024)
#define dg_configqspi_cached_ram_size_ae(32 * 1024)
#define dg_configqspi_cached_retram_0_size_ae(96 * 1024)
#define dg_configqspi_cached_ram_size(56 * 1024)
#define dg_configqspi_cached_retram_0_size(72 * 1024)
#define dg_configqspi_code_size(256 * 1024)
OS_TASK_CREATE(“PXP Reporter”,/ *分配给任务的文本名称,
只调试;内核不使用。* /
pxp_reporter_task,/ *实现任务的函数。* /
null,/ *传递给任务的参数。* /
#if(dg_configdisable_background_flash_ops == 1)
512,/ *分配给的字节数
堆栈的任务。* /
#别的
#if zsens_fusion_algo.
1024 * 10,/ *分配给的字节数
堆栈的任务。* /
#别的
756,
#万一
#万一
/ *************************************************************************************************
*内存特定配置
* /
#define dg_configqspi_cached_optimal_retram_0_size_ae(64 * 1024)
#define dg_configqspi_cached_ram_size_ae(32 * 1024)
#define dg_configqspi_cached_retram_0_size_ae(96 * 1024)
#define dg_configqspi_cached_ram_size(56 * 1024)
#define dg_configqspi_cached_retram_0_size(72 * 1024)
#define dg_configqspi_code_size(256 * 1024)
/ *************************************************************************************************
* freertos特定配置
* /
#define os_freertos / *定义它以使用freertos * /
#if(dg_configuse_soc)
#f定义(debug_soc)
#define configtotal_heap_size 12300 / *这是freertos total堆大小* /
#别的
// #define configtotal_heap_size 11200 / *这是freertos total堆大小* /
#define configtotal_heap_size 20 * 1024 / *这是freertos total堆大小* /
#万一
#别的
#define configtotal_heap_size 11000 / *这是freertos total堆大小* /
#万一
嗨Xuguodong,
系统仍然没有堆吗?
谢谢,PM_DIALOG.