ke_malloc之后wrap_platform_reset.

⚠️
嗨,...感谢您来论坛。令人兴奋的消息!我们现在正在迁至我们的新论坛平台,将提供更好的功能,并包含在主对话框网站中。所有帖子和帐户都已迁移。我们现在只接受新论坛上的流量 - 请发布任何新线程https://www.dialog-seminile.com/support.。我们将在未来几天修复错误/优化搜索和标记。
6个帖子/ 0新
最后一篇
贝克尔
离线
最后一次露面:2年4个月前
加入:2016-05-24 08:58
ke_malloc之后wrap_platform_reset.

你好,

我尝试修改ble_app_perizalal示例。我想使用DSP代码的一部分进行串行通信。在文件user_buffer.c中有函数user_buffer_create(...)。
执行行后:
缓冲 - > data_ptr = ke_malloc((long)(缓冲 - > buffer_size)* sizeof(uint8_t),ke_mem_non_retention);
执行停止使用WRAP_PLATFORM_RESET。
我认为内存分配有问题。
你有解决方案吗?

此致
伯尼昂

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

嗨贝克尔,

内存分配没有任何问题,但它取决于您尝试分配多少内存,显然您正试图分配更多内存而不是可用的内存,并且您可以获得该断言。作为参考的DSP设置了不同大小的堆中,以便管理缓冲区的分配,检查da1458x_config_advanced.h文件并检查msg_heap_sz和non_ret_heap_sz的值,如果这些定义不存在sdk将应用a显然不足以实现默认值。

谢谢mt_dialog.

贝克尔
离线
最后一次露面:2年4个月前
加入:2016-05-24 08:58
嗨mt_dialog,

嗨mt_dialog,

我已经更改了Msg_heap_sz和non_ret_heap_sz的值,在dsps中使用相同的值。我也试图将malloc大小降低到值10。但错误是相同的。是否可以检查保留保留存储器的大小?如果某些定义是错误的,则有条件编译可能有问题。

谢谢
伯尼昂

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

嗨贝克尔,

ke_malloc,仅从保留存储器中保留存储器,为环境的堆,消息和数据库(eacp_env_area,heap_msg_area和heap_db_area)存储在保留存储器中,非保留堆存储在Sysram中,您可以检查您构建的应用程序的.map文件中的那些堆的大小。如果您尝试分配10个字节的大小,并且您最终会在失败分配断言中,那么也许在您的实现中存在内存泄漏。在ble_app_peripheral上测试了ke_malloc,分配了2048个字节(堆大小中的正确模式)并没有问题。

谢谢mt_dialog.

贝克尔
离线
最后一次露面:2年4个月前
加入:2016-05-24 08:58
嗨mt_dialog,

嗨mt_dialog,

你是如何在ble_app_peripheral上测试ke_malloc的?你把ke_malloc放在哪里?我认为呼叫ke_malloc有问题。如果我使用malloc保留空间,那么它就可以了。

谢谢伯恩

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

嗨贝克尔,

我扩展了堆才能适合分配的空间,并在user_app_adv_start()中调用ke_malloc。

谢谢mt_dialog.