中央锁门断开连接

3个帖子/ 0个新
最后发表
pnndra
离线
最后看到:3年1个月前
加入:2014-06-17 10:05
中央锁门断开连接

亲爱的先生们,
我们遇到了sps_host的代码问题(项目DA14580_DSPS_3.150.2___13_2_2015)。我们正在做的是添加一些定时器,运行后台任务,应该可以存活下来的断开连接。如果我们保持代码不变,当断开事件出现时,函数app_disconnect_func(文件app_task.c)会重置(参见下面的代码片段)系统状态,我们再也不会得到事件:

app_reset_app ();//链路丢失(timer timeout) //重置更高的层

//重置环境**这很重要,否则profile att数据库将不会重新启动**
memset (&app_env 0 sizeof (app_env));

//初始化数据库中添加的第一个服务的next_prf_init值
app_env。next_prf_init = APP_PRF_LIST_START + 1;

如果我们将此注释掉,系统会在断开或重新连接时随机崩溃(硬故障处理程序)。

有没有办法重置应用程序而不杀死其他计时器?
另外,如何测试主机代码的连接/断开连接?我们有同样的感觉,也可能发生同样的崩溃重置一切。

关键词:
设备:
pnndra
离线
最后看到:3年1个月前
加入:2014-06-17 10:05
你好,

你好,
今天我们已经测试了原始的sps_host代码。在几次连接/断开事件后,代码像我们的代码一样崩溃了。在堆栈中进行检查,在崩溃之前,代码位于地址0x322be,根据映射文件可能是ke_malloc函数的地址。知道问题出在哪里吗?

提前感谢并致以良好的问候

MT_dialog
离线
最后看到:三个月三个星期前
工作人员
加入:2015-06-08 34
嗨pnndra,

嗨pnndra,

app_reset_app()发送一个GAPM_RESET ?你设置的定时器是内核定时器吗?如果是这种情况,那么如果重置BLE堆栈,计时器将被取消。如果你
希望计时器保持他们的状态重置后,你可以尝试使用硬件计时器(bare in mind,他们不操作时,设备处于睡眠模式)。也
RESET后,不要重置环境并开始配置文件初始化,系统重新启动,并应该获得GAMP_CMP_EVT,重启完成
处理程序将重新配置您的设备,当这完成时,您的设备将在app_on_set_dev_config_complete()中开始实例化数据库。的环境
不重置(重置后的代码不经过app_init),所以如果需要,您必须这样做。对于DSPS中央不要求或实施任何
重置操作(SDK5 dsp),因此不执行此类操作的测试。SDK3 dsp在断开连接后实现复位,我们没有任何报告的问题。

我已经改变了DSPS设备与计时器,从主机连接事件2秒后发出一个断开连接,我看不到任何问题在SDK5连接和断开超过3小时,每5秒,设备连接和断开正常没有崩溃的主机。

由于MT_dialog