当给ble_app_peripheral超过13字节的GATT写请求时,设备停止

⚠️
大家好. .感谢来到论坛。令人兴奋的消息!我们现在正在转移到新的论坛平台的过程中,它将提供更好的功能,并包含在主对话网站。所有的帖子和账号已经迁移。我们现在只接受新论坛的流量-请发布任何新的帖子在//www.wsdof.com/support.我们会在接下来的几天修复bug /优化搜索和标记。
3个帖子/ 0个新帖子
最后发表
dhrishi
离线
最后看到:3年2个月前
加入:2017-02-10 09:56
当给ble_app_peripheral超过13字节的GATT写请求时,设备停止

你好,

我想用Dialog外设处理来自中央的大尺寸GATT写请求。我的应用程序面临一些问题。所以尝试使用标准的ble_app_peripheral应用程序。

设备:DA14580
SDK: 5.0.4
应用:ble_app_peripheral

为此,我使用ble_app_peripheral,并在其中做了一个更改:

#定义DEF_CUST1_CTRL_POINT_CHAR_LEN 1
取而代之的是
#定义DEF_CUST1_CTRL_POINT_CHAR_LEN 14

我用它编译了应用程序。我使用nRF应用程序作为中心,并尝试向控制点特性写入14字节。
代码到达这里并停止:

if ((GetWord16(SYS_STAT_REG) & DBG_IS_UP) == DBG_IS_UP
__asm(“BKPT # 0 \ n”);

观察:
1.如果DEF_CUST1_CTRL_POINT_CHAR_LEN设置为13,并且我从nRF应用程序写入13(或更少)字节,那么它工作正常,没有问题。
2.如果DEF_CUST1_CTRL_POINT_CHAR_LEN设置为14,并且我从nRF应用程序写入13(或更少)字节,那么它工作正常,没有问题。
3.如果DEF_CUST1_CTRL_POINT_CHAR_LEN设置为大于14的值(比如20),并且我从nRF应用程序中写入14(或更多)字节,那么设备会停止(如上所示)

您能告诉我有什么问题吗?这应该在SDK中,对吧?

或者我错过了什么。发生这种情况的可能性应该是最小的,因为在len = 13和写入13个字节时,一切都是一样的。它只是在13字节之后有一个问题。

谢谢,
Hrishikesh

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

嗨dhrishi,

其user_custs1_ctrl_wr_ind_handler中的memcpy()使设备停止,我想,580年最终hardfault, _Handler,如果你删除memcpy没事(显然当你写作超过13字节覆盖重要数据)手臂不喜欢,那为什么它hardfault处理程序。

由于MT_dialog

dhrishi
离线
最后看到:3年2个月前
加入:2017-02-10 09:56
请忽略这个。这是一个

请忽略这个。这是我们在执行方面的问题。谢谢你的支持