2个月前
DA14580_DSPS在接收L2CAP数据包划分为BT碎片时重置。
张贴了magnus.lovdahl ...25分 7回复你好
我有一个问题,其中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个月前
你好,谢谢你的回复,
是的,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个月前
嗨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个月前
你好,
这是一个已与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个月前
嗨magnuslövdahl,
感谢您的问题描述,并用于附加嗅探器日志的一部分。让我检查一下,我会回复你。可能我需要在内部将其升级到团队中以查看它。
谢谢,PM_DIALOG.
2个月前
嗨magnuslövdahl,
谢谢你的帖子。请问您是否使用DSP(SPS_DEVICE)如对话框提供或您在源代码中完成了任何修改吗?此外,您正在使用的中央设备是什么?您可以用SPS_HOST应用程序复制吗?
谢谢,PM_DIALOG.