⚠️
嗨,...感谢您来论坛。令人兴奋的消息!我们现在正在进入我们的新论坛平台,将提供更好的功能,并包含在主对话框网站中。所有帖子和帐户都已迁移。我们现在只接受新论坛上的流量 - 请发布任何新线程https://www.dialog-semicondiondiondumon.com/support.。我们将在未来几天修复错误/优化搜索和标记。
8个帖子/ 0新
最后一篇文章
prasanth.velliy ...
离线
最后一次露面:1年11个月前
加入:2016-02-18 12:18
断开问题

嗨对话框

嗨对话框

我有一个DA1458C作为中央设备使用DSPS主项目,DA14583充当从属(6)使用DSPS从项目。

我的用例是中央将连接到一个从站,接收数据,一旦收到的数据,从user_sps_client_data_rx_ind_handler(con_id)断开从从机(app_easy_gap_disconnet(con_id)),然后在user_on_disconnection()中我添加了user_scan_start(),所以新的站开始扫描连接(在时间主机上只连接到一个从站),从奴隶一旦从主机断开连接,从而将进入Expered Sleep模式。

我已经运行了主代码而无需连接到任何奴隶......我发现没有问题..

我把所有6个奴隶放入1分钟的睡眠时间,我的问题是经过一段时间的一段时间,像12-18小时的执行大师被绞死......我调试了代码,代码停止在Wrap_platform_reset()...

在主侧,我已经禁用了延伸和深睡眠......因为这个堆配置将更少..它会影响吗???

还有什么可能是这个问题?

谢谢 ..

设备:
mt_dialog.
离线
最后一次露面:2个月3周前
职员
加入:2015-06-08 11:34
嗨prasanh,

嗨prasanh,

如果设备运行且设备在12-18小时后,设备会触及平台重置,这意味着代码中存在内存泄漏,最可能在每个连接或交易中发生的内存分配以及它从未释放,所以最终您正在运行内存和WRAP_PLATFORM_RESET()发生。通过增加堆,即使您正在增加它,即使您是否会增加它,也不会那么多帮助,最终会在更长的时间内耗尽。

谢谢mt_dialog.

prasanth.velliy ...
离线
最后一次露面:1年11个月前
加入:2016-02-18 12:18
嗨对话框

嗨对话框

感谢你的回复..

分配的内存将由内核自动释放,后,指针已发送到Ke_msg_send()。如果未发送消息,则必须使用KE_MSG_FREE()显式释放它。

在DSPS主代码中只有一次KE_MSG_FREE()使用......如何使用它来解决我的问题?

在user_sps_host.c => user_on_connection => user_gattc_exc_mtu_cmd()中停止后,user_gattc_exc_mtu_cmd()中...
如何解决此Wrap_platform_reset()问题??

谢谢...

mt_dialog.
离线
最后一次露面:2个月3周前
职员
加入:2015-06-08 11:34
嗨prasanh,

嗨prasanh,

如上所述,在您的应用程序中,每次连接后,应该有一些内存泄漏捕获(当Wrap_platform_reset()发生时确保错误代码是reset_mem_alloc_fail),您将不得不调试这一点以便找到它没有通用方法,可以允许您找到它。检查您在自定义期间发送的消息是否已完成(因为这在原始中央不发生),并确保您正在消耗您在处理消息时获得的消息或者您是分配他们应该释放的数据。

谢谢mt_dialog.

prasanth.velliy ...
离线
最后一次露面:1年11个月前
加入:2016-02-18 12:18
嗨对话框

嗨对话框
我通过调试错误代码进行了测试了,在注释所有ARCH_PRINTF()内存问题之后,在注释之后无法发生故障。

仍在脱离问题存在,
我的用例是中央将连接到一个从站,接收数据,一旦收到的数据,从user_sps_client_data_rx_ind_handler()函数调用的从站(app_easy_gap_disconnet(con_id)断开连接),在此奴隶将断开连接并转到睡眠状态

/ *******************************从代码************************************* /
void user_on_disconnect(struct gapc_disconnect_ind const * param)
{
// default_app_on_disconnect(param);
ARCH_PRINTF(“设备断开\ r \ n”);
// if(console_print){
// / **************************** UART打印fucntion *************************************** /
// uart_init(uart_baudrate_115k2,3);
// uart_flow_off();
// uint8_t something2 [] = {“user_disconnected \ n”};
// uart_write((uint8_t *)某事物2,sizeof(something2),null);
// uart_finish_transfers();
// / *************************************************************************************** /
//}

app_easy_gap_adverteSe_Stop();
ARCH_BLE_EXT_WAKEUP_ON();

wrbl_env2.sensor_read_time_1 = app_easy_timer(6000,wak_up_sm);// 1000 - > 10s

}

/ ********************************************************************************************************** /

/ *********************主侧***************************************************************************** /

如果从属副侧面的副侧面gapc_disconnect_ind_handler() - > app_on_diconnection - > user_on_disconnection()将被叫...

但是在长期运行user_on_disconnection()没有被称为...问题可能是问题???请帮助

谢谢对话

mt_dialog.
离线
最后一次露面:2个月3周前
职员
加入:2015-06-08 11:34
嗨prasanh,

嗨prasanh,

我将坚持到点注释出ARCH_PRINTF()时,当使用ARCH_PRINTF()实用程序打印太多的数据时,您实际地分配数据,并且当设备将打印时,将打印太多数据。如果您经常调用ARCH_PRINTF(),则分配太多内存,如果设备未达到打印点,则内存分配将失败。但据我所知,即使你没有看到这种情况发生这个设备仍然断开连接,但我无法理解你正试图描述的是什么,所以请你澄清一下吗?

谢谢mt_dialog.

prasanth.velliy ...
离线
最后一次露面:1年11个月前
加入:2016-02-18 12:18
嗨对话框

嗨对话框

感谢你的回复..

主站正在向从站发送断开连接请求,一旦从站断开连接的指示将被发送到Master,Master将接收断开连接指示并调用user_on_disconnect()....

master <-------------------------------------------------------------------------------------->奴隶
- >断开连接,停止广告 - >进入睡眠
Master < - < - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 脱离展示------------------------>发送断开连接指示掌握
Master < - disconnect Ind收到---------- <--------------
大师<---

有些时候Master没有收到指示,所以user_on_disconnection()没有被叫,(但我可以看到从站断开连接并进入睡眠),,在某些延迟(6 - 7分钟)user_on_disconnection()被调用后,然后常常运行time user_on_disconnect被叫user_on_system_powered()继续运行

在user_on_disconnection()我是启动user_scan_start(),如果这不被称为master将不会扫描新设备....

谢谢

mt_dialog.
离线
最后一次露面:2个月3周前
职员
加入:2015-06-08 11:34
嗨prasanh,

嗨prasanh,

所以要获得更清晰的pitcure,在有问题的情况下,user_on_disconnect会在主站上调用(你得到断开连接指示),但从从设备发送断开连接请求时,不是那么好吗?如果是这种情况,那么大多数可能在从站发出断开连接之前,链接丢失,并且链接从超时超时终止,而不是因为主站的断开命令发送,因为主站“认为”链接仍然有效。在发生问题时检查主站点的断开回调并检查堆栈返回的原因是否发生了什么。

谢谢mt_dialog.