亲爱的Dialog支持人员,
我已经用DA14580将DA14583物联网SDK移植到Murata ZY。
主要是我改变了GPIO任务,到目前为止,大多数事情都按预期进行。
但是,当与物联网应用程序连接,然后迫使传感器超出范围时,传感器将变得无响应,必须发出重置/电源循环。
在UART调试接口中,我无法观察事件后面的消息,尤其是DBG_MSG(“断开连接\r\n”);
从断开连接时的用户
不会出现(UART debug工作正常并显示其他消息)。
我不知道是否修改了任何可能导致这种行为的例程。
你能帮我追查这个问题吗?
致以最诚挚的问候
约翰内斯
设备:
其他发现:
1我注意到了
gapc\断开\u指示\u处理程序
超出范围时不执行(但当我在IoT应用程序中手动单击“断开连接”时执行)。你好,约翰内斯先生,
请您澄清一下您的问题是什么,因为当您手动单击IoT应用程序的“断开连接”时,gapc\u disconnect\u ind\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. The
gapc\断开\u指示\u处理程序
是我调查的第一个函数。我比较了“常规断开”和“超出范围断开”的情况。
请让我知道哪些是正确的功能,我应该调查,以找出它冻结。
约翰内斯
你好,约翰内斯先生,
你能不能在调试模式下运行固件,热连接调试器,并尝试找出代码被卡住的地方?
谢谢,下午好
嗨,PM\U对话,
不幸的是,我从未运行过JTAG/SWD(另请参见https://support.dialog-semiconductor.com/comment/20501#comment-20501).
我希望你能描述一下SDK中的行为,比如说断开连接后的行为和超出范围的行为,这样我就有机会只使用UART进行调查,而不使用调试器。
致以最诚挚的问候
约翰内斯
尊敬的PM\U Dialog,
我正在调试SWD。
请参阅所附的截图中的代码似乎停止。
我能提供更多的信息吗?
致以最诚挚的问候
约翰内斯
你好,约翰内斯先生
发生wrap\u platform\u reset()的最明显原因是内存分配失败,这意味着软件中存在内存泄漏,您在某处分配数据,但从未释放它们(您可以在函数的参数error中验证这一点,它应该是reset\MEM\u ALLOC\u FAIL)。为您的应用程序选择最佳堆时,您应该尝试通过更改da1458x\u config\u advanced.h文件中堆的大小。内存分配没有错,但这取决于您试图分配多少内存,显然您试图分配的内存比可用的内存多,并且您得到了该断言。请确保固件卡在wrap\u platform\u reset()中好吗?
谢谢,下午好
嗨,PM\U对话,
事实上,错误是RESET\u MEM\u ALLOC\u FAIL。
我在最初的物联网项目中添加了很少的代码,主要是为了处理另外两个LED。
我使用的是延长睡眠,因此堆大小应该自动计算,对吗?那么,我可以修改什么?
当我执行代码并强制BT超出范围时,调试器将在wrap\u platform\u reset()中停止,yes。
约翰内斯
我修改了堆的大小in da1458x_scatter_config.h:
现在我再也看不到这个问题了。
尽管如此,我想知道如何确定适当的价值。“1024”是怎么选出来的?
如何测试堆大小是否足以满足应用程序的需要?
约翰内斯
你好,约翰内斯先生,
很高兴你解决了问题。没有任何具体的方法来确定适当的值。堆大小的值应该通过实验来确定。
谢谢,下午好