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

⚠️
大家好. .感谢来到论坛。令人兴奋的消息!我们现在正在转移到新的论坛平台的过程中,它将提供更好的功能,并包含在主对话网站。所有的帖子和账号已经迁移。我们现在只接受新论坛的流量-请发布任何新的帖子在//www.wsdof.com/support.我们会在接下来的几天修复bug /优化搜索和标记。
11个员额/ 0个新员额
最后发表
gme_johannes
离线
最后看到:18小时6分钟前
加入:2017-12-22 10:09
村田ZY与物联网SDK5锁定后超出范围

亲爱的对话框支持,

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

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

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

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

设备:
gme_johannes
离线
最后看到:18小时6分钟前
加入:2017-12-22 10:09
Additionall发现:

Additionall发现:

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

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

嗨gme_johannes,

请问您的问题是,当您手动点击“断开”与物联网应用程序时,gapc_disconnect_ind_handler是什么问题?这和超出范围有关系吗?

谢谢,PM_Dialog

gme_johannes
离线
最后看到:18小时6分钟前
加入:2017-12-22 10:09
嗨PM_Dialog,

嗨PM_Dialog,

由于我不知道在追踪错误的地方开始,我随机搜索了与断开连接相关的函数调用的代码,并将UART调试输出放到了它们是否被执行。这gapc_disconnect_ind_handler是我研究的第一个函数。
我比较了“常规断开”和“常规断开”两种情况。"超出范围断开"。

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

BR约翰内斯

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

嗨gme_johannes,

你能不能在调试模式下运行固件,加载调试器,试着找出代码卡住的地方?

谢谢,PM_Dialog

gme_johannes
离线
最后看到:18小时6分钟前
加入:2017-12-22 10:09
嗨PM_Dialog,

嗨PM_Dialog,
不幸的是,我从来没有让JTAG/SWD运行https://support.dialog-semiconductor.com/comment/20501#comment-20501)。
我希望您能向我描述一下SDK中的行为如下和超出范围的断开,这样我就有机会只用UART来研究它,但没有调试器。
致以最亲切的问候
约翰内斯

gme_johannes
离线
最后看到:18小时6分钟前
加入:2017-12-22 10:09
亲爱的PM_Dialog,

亲爱的PM_Dialog,
我和社警进行了调试。
请见附件截图,代码似乎停止。
我能提供更多的信息吗?

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

PM_Dialog
离线
最后看到:1天17小时前
工作人员
加入: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
离线
最后看到:18小时6分钟前
加入:2017-12-22 10:09
嗨PM_Dialog,

嗨PM_Dialog,

实际上错误是RESET_MEM_ALLOC_FAIL。

我在原来的IoT项目中添加了很少的代码,主要是处理两个led。

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

BR约翰内斯

gme_johannes
离线
最后看到:18小时6分钟前
加入:2017-12-22 10:09
我修改了堆大小

我在da1458x_scatter_config中修改了堆大小:

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

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

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

BR约翰内斯

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

嗨gme_johannes,

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

谢谢,PM_Dialog