你好,
在下面的问题中,请您帮助我有一些线索:
我有一个核心和一个通过L2CAP通信的外围设备。外围设备正在向中央发送数据。如果通信的强度高于特定阈值,并且中央复位,则外围设备将被困在平台中,以原因reset_mem_alloc_fail在平台复位sdk中。我附上调试窗口屏幕截图。我有备用堆,没有内存泄漏。
我使用2M PHY使用251个DLE,连接间隔min:6,间隔最多:10,奴隶LAT:1
由于我增加了通信带宽,这也可以在没有中央断开的情况下发生。如果我降低带宽,问题会消失。我得到这个问题的门槛是大约200kbit / s。我使用10.0.8.105 SDK。
问候,
亚当
设备:
嗨vargaadam,
平台复位的根本原因是堆栈耗尽堆内存。您是否只在获得先前数据发送后立即发送数据?一旦写属性值完成,您应该收到BLE_EVT_GATTC_WRITE_COMPLETED。是否有可能提供嗅探器日志,以便在空中查看消息?
谢谢,PM_DIALOG.
你好,
我正在使用l2cap通信,而不是gatt。但是,没有,我不等待确认,基于错误消息我认为有人用完内存。问题是,有蓝牙单独的堆栈和堆吗?因为同时,我发现越来越多的dg_configble_stack_db_heap_size可以提供帮助。BLE堆栈缓冲我已发送的消息,直到实现了连接丢失?你能描述我这个宏吗?
问候,
嗨vargaadam,
dg_configble_stack_db_heap_size宏定义了BLE主机的属性数据库堆大小。如前所述,平台重置的最可能原因是堆栈耗尽堆内存。
谢谢,PM_DIALOG.