敬启者,
我们对SPS_HOST的代码有问题(Project DA14580_DSPS_3.150.2 ___ 13_2_2015)。我们正在做的是添加一些运行背景任务的定时器,并且应该在断开连接。如果我们留下代码,当断开事件进入时,函数app_disconnect_func(file app_task.c)重置(请参阅下面的代码片段)系统状态,我们再也找不到事件:
app_reset_app();//链接丢失(定时器超时)//重置更高的图层
//重置环境**这很重要,因为否则配置文件ATT数据库将不会重新启动**
Memset(&app_env,0,sizeof(app_env));
//初始化第一个服务的Next_prf_Init值以添加在数据库中
app_env.next_prf_init = app_prf_list_start + 1;
如果我们在断开连接或重新连接时,我们将在此注释OUT OUT OUT OUT OUT OUT OUT OUT OUT ORMALLY(硬故障处理程序)崩溃。
是否有任何方法可以在不杀死其他定时器的情况下重置应用程序?
此外,测试是如何连接主机代码的连接/断开?我们有感觉,即在重置一切时也可能发生同样的崩溃。
关键词:
设备:
大家好,
今天我们已经测试了原始的SPS_HOST代码。几乎没有连接/断开连接事件后,代码崩溃了与我们的代码相同。检查堆栈中,崩溃前的代码在地址0x322be处,根据地图文件可能是ke_malloc函数的地址。任何问题可能是什么?
谢谢,提前和最好的问候
嗨pnndra,
app_reset_app()发送GAPM_RESET?您设置的定时器是内核定时器?如果是这种情况,如果重置BLE堆栈,则取消计时器。如果你
想要在重置后保持状态的定时器,您可以尝试使用硬件定时器(裸体铭记,当设备处于睡眠模式时,它们不会运行)。还
重置后,不要重置环境并启动配置文件初始化,系统重新启动并应获取重新启动完成的Gamp_cmp_evt,以此
处理程序您的设备将重新配置,并且当完成时,设备将开始在App_On_set_dev_config_complete()中实例化数据库。环境
不重置(重置后代码未通过app_init),以便如有必要,您必须执行此操作。关于DSP中央不需要或实现任何内容
重置操作(SDK5 DSP)因此没有针对这种操作默认的测试。SDK3 DSP在断开连接后实现重置,我们没有任何报告的问题。
我已经改变了DSP设备的计时器,在与主机的连接事件中源2秒后发出断开连接,我无法在3小时内看到SDK5连接和Disconnectig上的任何问题,每5秒,设备正确连接和断开连接崩溃主人。
谢谢mt_dialog.