非常感谢附加的屏幕截图和调试固件。perform_reset()调用τheplatform_reset_func(),该平台()在ROM代码中实现。为什么您获得此断言的最可能原因是由于内存不足,因为您正在分配从未消耗的消息。例如,如果要分配通知消息,并且您有一个小的连接间隔,则邮件堆叠堆积,直到连接事件到达,但在连接事件到达之前,使用大的连接间隔耗尽内存。您可以增加连接间隔。可能,在改变TX_BUFFER_ITEM_COUNT时,每次连接后可能有某种内存泄漏,因为错误代码是reset_mem_alloc_fail。为此,我会建议您检查是否有任何挂起的消息,并确保您在处理消息时会收到消息,或者如果您正在分配它们应该被释放的数据。让我与你分享一个简单的例子。如果对ADC进行采样并分配消息,以便在有一个连接时将数据发送到通知后,设备最终将运行内存,并且如果设备运行过内存,则会导致设备重置。为避免platform_reset_func,我建议您通过在da1458x_config_advanced.h标题文件中定义db_heap_sz来增加堆大小。 Please let me know if this change figures your issue out.
嗨Lyadnov,
谢谢你的问题。请问代码崩溃的位置吗?请运行它调试模式。此外,您在DSP项目中完成了哪些修改?只有TX_BUFFER_ITEM_COUNT大小已更改?
谢谢,PM_DIALOG.
嗨,我检查DSPS项目没有任何变化,只有TX_BUFFER_ITEM_COUNT和高水印,请参阅屏幕附加。调试器启动时,我出现错误,请参阅Screen1附加。
嗨Lyadnov,
非常感谢附加的屏幕截图和调试固件。perform_reset()调用τheplatform_reset_func(),该平台()在ROM代码中实现。为什么您获得此断言的最可能原因是由于内存不足,因为您正在分配从未消耗的消息。例如,如果要分配通知消息,并且您有一个小的连接间隔,则邮件堆叠堆积,直到连接事件到达,但在连接事件到达之前,使用大的连接间隔耗尽内存。您可以增加连接间隔。可能,在改变TX_BUFFER_ITEM_COUNT时,每次连接后可能有某种内存泄漏,因为错误代码是reset_mem_alloc_fail。为此,我会建议您检查是否有任何挂起的消息,并确保您在处理消息时会收到消息,或者如果您正在分配它们应该被释放的数据。让我与你分享一个简单的例子。如果对ADC进行采样并分配消息,以便在有一个连接时将数据发送到通知后,设备最终将运行内存,并且如果设备运行过内存,则会导致设备重置。为避免platform_reset_func,我建议您通过在da1458x_config_advanced.h标题文件中定义db_heap_sz来增加堆大小。 Please let me know if this change figures your issue out.
谢谢,PM_DIALOG.
嗨,真的在增加db_heap_sz之后,所有工作都没有崩溃。非常感谢你!
嗨Lyadnov,
很高兴你识上你的问题,谢谢你接受我的答案。如果您有任何其他问题,请创建一个新的论坛线程!
此外,我建议您查看我们的新智能障碍设备。
https://www.dialog-seminile.com/produ雷电竞官网登录cts/connectivity/bluetooth-low-energy/products/da14531
谢谢,PM_DIALOG.