跳到主要内容

DA14580_DSPS在接收L2CAP数据包划分为BT碎片时重置。

2个月前

DA14580_DSPS在接收L2CAP数据包划分为BT碎片时重置。

张贴了magnus.lovdahl ...25分 7回复
0旋转

你好

我有一个问题,其中DA14580在接收到分为片段的L2CAP数据时重置。第一帧只是L2CAP头的一部分,第二部分是标题的其余部分和属性协议数据。看图片。我不确定是根据BT协议吗?无论如何,DA14580不应重置。

DA14580充当外设角色,并且我使用PC上的BT芯片作为中央的PC程序。

附件是一个SODERA LE BT嗅探器迹线,显示了BT流量。

在DA14580_DSPS软件中有什么可以做的,以避免重置这个吗?

是根据规范以这种方式发送L2CAP片段数据吗?

此致

MAGNUSLÖVDAHL.

附件 尺寸
da14580 resets.png 112.25 KB.

2个月前

PM_DIALOG.

嗨magnuslövdahl,

谢谢你的帖子。请问您是否使用DSP(SPS_DEVICE)如对话框提供或您在源代码中完成了任何修改吗?此外,您正在使用的中央设备是什么?您可以用SPS_HOST应用程序复制吗?

谢谢,PM_DIALOG.

2个月前

magnus.lovdahl ... 25分

你好,谢谢你的回复,

是的,DSPS项目(V_5.150.2)有很大的变化,但我不认为这会影响这个问题。

我没有可能将您的SPS设备作为中规码使用,因此我无法测试。

正如我在重置发生的情况下写下我正在使用PC作为中央设备。中央设备SW是为许多平台编写的,所以我们可以从Mobiles或iPad运行它。从移动或iPad运行时,我们没有看到重置,我认为这是因为它们不会将L2CAP标题分为BT帧(请参阅第一次评论的图片),但PC确实如此。

我认为DSPS项目(V_5.150.2)因L2CAP标题被分开的小BT帧而重置。根据BT协议,我不确定是否合法。这是我的问题之一。

无论如何,即使它反对协议DA14580不应重置,它应该处理为错误,而不是重置。

第二个问题是,如果我可以以任何方式阻止这种重置。

希望您可以测试使用L2CAP标题划分的L2CAP层数据。

此致

MAGNUSLÖVDAHL.

2个月前

PM_DIALOG.

嗨magnuslövdahl,

谢谢你的评论。是否有可能附加整个嗅探器,以便我们可以去思考吗?

您提到DA14580重置。您能否在调试模式下运行它,并检查代码是否冻结到断言中,NMI或WDOG到期?我想检查什么是重置重置。我假设DA4580正在从Flash启动,因此在重置后立即开始使用。

我可以问它是否是基于DA14580的现有或即将推出的产品?

如果您正在启动新设计,我们将强烈建议进入DA14531或DA14585 / 586产品和SDK6.0.14,因为它更加提高。亚博电竞菠菜我们有很多代码示例和改进的文档,还有软件路线图支持。DA14580产品系列和SDK5没有任何软件路线图支持。

https://www.dialog-seminile.com/produ亚博电竞菠菜cts/connectivity/bluetooth-low-energy/products/da14531.

也有一个DA14531模块,即DA14531 SmartBond Tiny™模块!

DSP也可用于DA14531:

https://www.dialog-seminile.com/produ亚博电竞菠菜cts/dialog-serial-port-service-dsps.

谢谢,PM_DIALOG.

2个月前

magnus.lovdahl ... 25分

你好,

这是一个已与Mobil和平板电脑一起使用的现有产品。我们在一个阶段,我们计划为PC释放我们的“中央设备”SW。当我们使用PC时,我们看到了这些问题。

附加是具有此问题的嗅探文件的一部分。

让我解释一下。我们处于媒体模式,通过UART向DA14580读取从微型连接到DA14580的大量数据,通过BT向PC发送数据。有时PC通过在另一个方向上发送数据来确认传输。在这些PC之一期间,PC将L2CAP标题分成一个小BT片段,遵循27字节片段。DA14580崩溃。

错误发生在帧号184681中。PC发送L2CAP帧。5Byte“开始”帧,后跟27字节“延续”BT帧和DA14580崩溃。

在帧号184420的日志开始时,PC发送出正确的L2CAP帧。27Byte“开始”帧,后跟27字节“延续”BT帧。

我没有可能使用连接的仿真器调试DA14580,因此我在发生崩溃时从HardFault_HandlerC中发送UART数据。

这是它指向的,也可以从地址映射文件信息

R0 = 0x00082273

RWIP_HEAP_ENV_RET 0x00080F74数据1036

RWIP_HEAP_MSG_RET 0x00081380数据4108

dev_bdaddr 0x0008238c数据6

sys_startup_flag 0x00082392数据1

R1 = 0x00083000.

diss_state 0x00082426数据1

Descript 0x00082A20数据1502

__vectors 0x20000000数据4

__vectors_end 0x200000A0数据0

R2 = 0x00000052

R3 = 0x00000000.

R12 = 0x0000052.

lr = 0x00031ADB.

l2cc_pdu_pack 0x0003164D拇指代码

l2cc_pdu_unpack 0x000318f3拇指代码

l2cc_detect_dest 0x00031b2d thumb代码

SMPC_CHECK_PARAM 0x00031B95拇指代码

PC = 0x00033B36.

__aeabi_memcpy4 0x00033b21拇指代码

__aeabi_memcpy8 0x00033b21拇指代码

__aeabi_memset 0x00033b45拇指代码

__aeabi_memset4 0x00033b45拇指代码

PSR = 0x21000000.

此致

马格努斯

附件 尺寸
dsps_log.zip. 7.74 KB.

2个月前

PM_DIALOG.

嗨magnuslövdahl,

感谢您的问题描述,并用于附加嗅探器日志的一部分。让我检查一下,我会回复你。可能我需要在内部将其升级到团队中以查看它。

谢谢,PM_DIALOG.

2个月前

magnus.lovdahl ... 25分

你好,

我真的很高兴你想帮助我。

此致

马格努斯

2个月前

PM_DIALOG.

嗨马格努斯,

我们已经从论坛中脱机了,因此来自对话的某人将直接在您的注册电子邮件地址与您联系。

谢谢,PM_DIALOG.