你好,
我想用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
设备:
嗨dhrishi,
其user_custs1_ctrl_wr_ind_handler中的memcpy()使设备停止,我想,580年最终hardfault, _Handler,如果你删除memcpy没事(显然当你写作超过13字节覆盖重要数据)手臂不喜欢,那为什么它hardfault处理程序。
由于MT_dialog
请忽略这个。这是我们在执行方面的问题。谢谢你的支持