非常感谢附上的截图和调试固件。Τhe platform_reset_func()由platform_reset()调用,这是在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,
谢谢你的问题。你能指出代码在哪里崩溃吗?请在调试模式下运行。另外,你们对DSPS项目做了哪些修改?只改变TX_BUFFER_ITEM_COUNT大小?
谢谢,PM_Dialog
嗨,我检查DSPS项目没有任何改变,只有TX_BUFFER_ITEM_COUNT和高水印,见屏幕附件。我在调试器启动期间有错误,请参阅screen1附加。
嗨Lyadnov,
非常感谢附上的截图和调试固件。Τhe platform_reset_func()由platform_reset()调用,这是在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
Hi,真的增加DB_HEAP_SZ后,所有工作没有崩溃。非常感谢!
嗨Lyadnov,
很高兴你解决了你的问题,谢谢你接受我的答案。如果您有任何其他问题,请创建一个新的论坛帖子!
此外,我建议您看看我们的新Smartbond设备。
//www.wsdof.com/雷电竞官网登录products/connectivity/bluetooth-low-energy/products/da14531
谢谢,PM_Dialog