村田ZY与物联网SDK5在超出范围后锁定

⚠️
大家好. .谢谢你来到论坛。令人兴奋的消息!我们现在正在转移到新的论坛平台,它将提供更好的功能,包含在主对话网站中。所有岗位和账户都已迁移。我们现在只接受新论坛的流量-请在上面发布任何新帖子//www.xmece.com/support.我们将在未来几天修复bug /优化搜索和标记。
11个帖子/ 0个新帖子
最后发表
gme_johannes
离线
最后看到:1个月1个星期前
加入:2017-12-22 10:09
村田ZY与物联网SDK5在超出范围后锁定

亲爱的对话框支持,

我已经将DA14583物联网SDK与DA14580移植到Murata ZY。
我主要是改变了GPIO分配,到目前为止,大多数事情都按照预期工作。

然而,当连接到物联网应用,然后迫使传感器超出范围,它变得无响应,必须发出复位/电源循环。
在UART调试界面中,我无法观察到事件之后的消息,特别是DBG_MSG(“断开连接\ r \ n”);user_on_disconnect不会出现(UART调试工作正常,并显示其他消息)。

我不知道已经修改任何例程可能导致这种行为。
你能帮我追踪这个问题吗?

致以最亲切的问候
约翰内斯

设备:
gme_johannes
离线
最后看到:1个月1个星期前
加入:2017-12-22 10:09
Additionall发现:

Additionall发现:

1.我注意到gapc_disconnect_ind_handler当超出范围时不会执行(但当我手动点击物联网应用中的“断开”时)。

PM_Dialog
离线
最后看到:18小时11分钟前
工作人员
加入:2018-02-08 11:03
嗨gme_johannes,

嗨gme_johannes,

请您澄清您的问题是什么,因为当您手动单击“断开”从物联网应用时,gapc_disconnect_ind_handler ?这和超出范围有关系吗?

谢谢,PM_Dialog

gme_johannes
离线
最后看到:1个月1个星期前
加入:2017-12-22 10:09
嗨PM_Dialog,

嗨PM_Dialog,

因为我不知道从哪里开始跟踪这个bug,所以我随机搜索了与断开连接相关的函数调用的代码,并将UART调试输出放到了代码中,以查看它们是否被执行。的gapc_disconnect_ind_handler是我研究的第一个函数。
我将“经常断开连接”的情况与。"超出射程,断开连接"。

请让我知道哪些是我应该调查的合适的函数,以找出它在哪里冻结。

BR约翰内斯

PM_Dialog
离线
最后看到:18小时11分钟前
工作人员
加入:2018-02-08 11:03
嗨gme_johannes,

嗨gme_johannes,

您可以在调试模式下运行固件,热连接调试器并尝试找到代码卡住的地方吗?

谢谢,PM_Dialog

gme_johannes
离线
最后看到:1个月1个星期前
加入:2017-12-22 10:09
嗨PM_Dialog,

嗨PM_Dialog,
不幸的是,我从未得到JTAG/SWD运行(参见https://support.dialog-semiconductor.com/comment/20501#comment-20501).
我希望您能描述我在SDK following和超出范围的断开连接的行为,这样我就有机会只与UART调查它,但没有调试器。
致以最亲切的问候
约翰内斯

gme_johannes
离线
最后看到:1个月1个星期前
加入:2017-12-22 10:09
亲爱的PM_Dialog,

亲爱的PM_Dialog,
我在运行SWD时进行了调试。
请见附件的截图,那里的代码似乎停止。
我能提供更多的信息吗?

致以最亲切的问候
约翰内斯

附件:
PM_Dialog
离线
最后看到:18小时11分钟前
工作人员
加入:2018-02-08 11:03
嗨gme_johannes

嗨gme_johannes

最明显的原因,wrap_platform_reset()发生是由于内存分配失败,这意味着有一个内存泄漏你的软件,你分配数据的地方和你永远不会释放他们(您可以验证在函数的参数错误,应该RESET_MEM_ALLOC_FAIL)。为您的应用程序选择最优堆,您应该通过改变da1458x_config_advanced.h文件中的堆大小来进行试验。内存分配没有问题,但这取决于你要分配多少内存,显然你要分配比可用内存更多的内存,你得到了这个断言。请确保固件被卡在wrap_platform_reset()中?

谢谢,PM_Dialog

gme_johannes
离线
最后看到:1个月1个星期前
加入:2017-12-22 10:09
嗨PM_Dialog,

嗨PM_Dialog,

实际上错误是RESET_MEM_ALLOC_FAIL。

我在最初的IoT项目中添加了很少的代码,主要是为了处理另外两个led。

我正在使用EXTENDED SLEEP,这样堆大小应该自动计算,对吗?那么,我可以修改什么?
当我执行代码并强制超出BT的范围时,调试器将在wrap_platform_reset()中停止,是的。

BR约翰内斯

gme_johannes
离线
最后看到:1个月1个星期前
加入:2017-12-22 10:09
我已经修改了堆大小

我已经修改了da1458x_scatter_config.h中的堆大小:

// #define DB_HEAP_SIZE(1536 + 12) //定义heap_size

现在我不觉得有什么问题了。
尽管如此,我还是想知道如何确定合适的值。“1024”是如何被选中的?

如何测试堆大小是否足以满足我的应用程序?

BR约翰内斯

PM_Dialog
离线
最后看到:18小时11分钟前
工作人员
加入:2018-02-08 11:03
嗨gme_johannes,

嗨gme_johannes,

很高兴你解决了自己的问题。没有任何特定的方法来确定适当的值。堆大小的值应该通过实验来决定。

谢谢,PM_Dialog