DSPS问题,没有ble连接

⚠️
大家好. .谢谢你来到论坛。令人兴奋的消息!我们现在正在转移到新的论坛平台,它将提供更好的功能,包含在主对话网站中。所有岗位和账户都已迁移。我们现在只接受新论坛的流量-请在上面发布任何新帖子//www.xmece.com/support.我们将在未来几天修复bug /优化搜索和标记。
4个职位/ 0个新
最后发表
kurbylee
离线
最后看到:3年7个月前
加入:2014-11-05分
DSPS问题,没有ble连接

嗨,对话框
背景:
硬件:da14580<==uart==>传感器;只有rx和tx,没有rts和其他连接;
软件:需求方
sdk504;
app_default_sleep_mode = ARCH_SLEEP_OFF;
# undef CFG_UART_HW_FLOW_CTRL

我的传感器将通过uart_sps将数据传输到da14580:
1>如果可以通过DSPS应用连接到手机,似乎所有功能都是可以的;
2>如果没有ble连接,传感器不断发送数据,ble(14580芯片)会down和复位,特别是大量来自感知的数据。

我的要求:
1>传输uart数据从感官到手机时,有连接;
2>本地处理da14580中没有连接时的数据;

我使用app_easy_timer从缓冲区user_ble_pull数据,过程如下所示
1 > timerId = app_easy_timer (INTL timer_cb)
2 > timer_cb
{user_ble_pull(假,真);
timerId = app_easy_timer (INTL timer_cb);

3 > user_ble_pull
{…
...
如果(ke_state_get (TASK_APP) > = APP_SECURITY) user_send_ble_data (p_data、长度);
其他my_proc (p_data、长度);
...
...

问题:
由于有时检测数据量大,因此easytimer的INTL约为2*10ms、4*10ms或6*10ms等。
有时候,数据少的时候一切都好;
但海量数据带来了问题
1 >丢失一些数据;
2>重复数据被提取;
3 >芯片自动复位

我尝试了一些方法
1 > # undef CFG_UART_SW_FLOW_CTRL
2>change INTL of timer;
3>no use easytimer and put my_proc in user_peripheral _push();
4在my_proc中添加或删除一些func;

但我不能完美地解决问题时,没有ble连接;
你能提供一些建议来解决这些问题吗?
谢谢! !

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

嗨kurbylee,

既然你不使用h/w流控制,你应该使用s/w流控制和无睡眠,以避免丢失数据。我不能完全理解您所面临的问题,从我的理解是,当没有连接时,设备从传感器读取数据,在某个点上设备会重置(我的理解是正确的吗?)既然是这样我可以假定该设备的原因是得到重置由于内存不足(因为发生这种情况,我能理解,当你有很多的数据),试着把一个断点wrap_platform_reset()和通过这个函数检查如果弗兰克-威廉姆斯。

由于MT_dialog

kurbylee
离线
最后看到:3年7个月前
加入:2014-11-05分
谢谢你的回复。

谢谢你的回复。
我的现象就像:https://support.dialog-semiconductor.com/forums/post/dialog-smartbond-bl..。——软件/ rxbufferitemcount-size-increase

我通过2线(uart_sps_rx和tx)直接连接da14580到PC,。当没有ble连接时,我将数据从pc传输到da14580,其他什么也不做。当数据很小的时候,一切都好。
但是当数据很大时,例如50字节/10ms,da14580将自动重置。

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

嗨kurbylee,

有相当多的事情可以导致设备自动重置,如前所述,从你的报告,我只能假设为什么这是发生的,是由于内存不足,例如,如果您从传感器获得数据,并分配消息以便在有一个连接时发送数据,设备最终将耗尽内存,如果设备耗尽内存,这将导致设备重置。

由于MT_dialog