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

⚠️
你好。。谢谢你来参加论坛。令人兴奋的消息!我们现在正在移动到我们的新论坛平台,将提供更好的功能,并包含在主对话网站的过程。所有帖子和账号都已迁移。我们现在只接受新论坛上的流量-请在//www.xmece.com/support. 我们将在未来几天内修复bug/优化搜索和标记。
11个职位/0个新职位
最后一篇文章
约翰内斯先生
离线
最后一次见到:4天7小时前
已加入:2017-12-22 10:09
村田ZY与物联网SDK5锁定后超出范围

亲爱的Dialog支持人员,

我已经用DA14580将DA14583物联网SDK移植到Murata ZY。
主要是我改变了GPIO任务,到目前为止,大多数事情都按预期进行。

但是,当与物联网应用程序连接,然后迫使传感器超出范围时,传感器将变得无响应,必须发出重置/电源循环。
在UART调试接口中,我无法观察事件后面的消息,尤其是DBG_MSG(“断开连接\r\n”);断开连接时的用户不会出现(UART debug工作正常并显示其他消息)。

我不知道是否修改了任何可能导致这种行为的例程。
你能帮我追查这个问题吗?

致以最诚挚的问候
约翰内斯

设备:
约翰内斯先生
离线
最后一次见到:4天7小时前
已加入:2017-12-22 10:09
其他发现:

其他发现:

1我注意到了gapc\断开\u指示\u处理程序超出范围时不执行(但当我在IoT应用程序中手动单击“断开连接”时执行)。

PM\U对话框
离线
最后一次见到:5天6小时前
工作人员
已加入:2018-02-08 11:03
你好,约翰内斯先生,

你好,约翰内斯先生,

请您澄清一下您的问题是什么,因为当您手动单击IoT应用程序的“断开连接”时,gapc\u disconnect\u ind\u处理程序?这和超范围有关吗?

谢谢,下午好

约翰内斯先生
离线
最后一次见到:4天7小时前
已加入:2017-12-22 10:09
嗨,PM\U对话,

嗨,PM\U对话,

因为我不知道从哪里开始跟踪wn the bug, I have searched the code randomly for function calls related to disconnections, and have put UART debug outputs to see whether they are executed. Thegapc\断开\u指示\u处理程序是我调查的第一个函数。
我比较了“常规断开”和“超出范围断开”的情况。

请让我知道哪些是正确的功能,我应该调查,以找出它冻结。

约翰内斯

PM\U对话框
离线
最后一次见到:5天6小时前
工作人员
已加入:2018-02-08 11:03
你好,约翰内斯先生,

你好,约翰内斯先生,

你能不能在调试模式下运行固件,热连接调试器,并尝试找出代码被卡住的地方?

谢谢,下午好

约翰内斯先生
离线
最后一次见到:4天7小时前
已加入:2017-12-22 10:09
嗨,PM\U对话,

嗨,PM\U对话,
不幸的是,我从未运行过JTAG/SWD(另请参见https://support.dialog-semiconductor.com/comment/20501#comment-20501).
我希望你能描述一下SDK中的行为,比如说断开连接后的行为和超出范围的行为,这样我就有机会只使用UART进行调查,而不使用调试器。
致以最诚挚的问候
约翰内斯

约翰内斯先生
离线
最后一次见到:4天7小时前
已加入:2017-12-22 10:09
尊敬的PM\U Dialog,

尊敬的PM\U Dialog,
我正在调试SWD。
请参阅所附的截图中的代码似乎停止。
我能提供更多的信息吗?

致以最诚挚的问候
约翰内斯

附件:
PM\U对话框
离线
最后一次见到:5天6小时前
工作人员
已加入:2018-02-08 11:03
你好,约翰内斯先生

你好,约翰内斯先生

发生wrap\u platform\u reset()的最明显原因是内存分配失败,这意味着软件中存在内存泄漏,您在某处分配数据,但从未释放它们(您可以在函数的参数error中验证这一点,它应该是reset\MEM\u ALLOC\u FAIL)。为您的应用程序选择最佳堆时,您应该尝试通过更改da1458x\u config\u advanced.h文件中堆的大小。内存分配没有错,但这取决于您试图分配多少内存,显然您试图分配的内存比可用的内存多,并且您得到了该断言。请确保固件卡在wrap\u platform\u reset()中好吗?

谢谢,下午好

约翰内斯先生
离线
最后一次见到:4天7小时前
已加入:2017-12-22 10:09
嗨,PM\U对话,

嗨,PM\U对话,

事实上,错误是RESET\u MEM\u ALLOC\u FAIL。

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

我使用的是延长睡眠,因此堆大小应该自动计算,对吗?那么,我可以修改什么?
当我执行代码并强制BT超出范围时,调试器将在wrap\u platform\u reset()中停止,yes。

约翰内斯

约翰内斯先生
离线
最后一次见到:4天7小时前
已加入:2017-12-22 10:09
我修改了堆的大小

我修改了堆的大小in da1458x_scatter_config.h:

//#define DB_HEAP_SIZE(1024+12)#define DB_HEAP_SIZE(1536+12)

现在我再也看不到这个问题了。
尽管如此,我想知道如何确定适当的价值。“1024”是怎么选出来的?

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

约翰内斯

PM\U对话框
离线
最后一次见到:5天6小时前
工作人员
已加入:2018-02-08 11:03
你好,约翰内斯先生,

你好,约翰内斯先生,

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

谢谢,下午好