星闪发送函数在无天线、大包发送时触发内存错误导致系统重启

Viewed 52

当Server设备(3863)拔掉天线,通过 ssaps_notify_indicate函数发送1470字节数据包时,系统触发 PANIC_BTH_MEMORY错误并重启。有天线时一切正常。

一、复现步骤:

  1. 硬件准备

Server: 小熊派3863开发板

Client: 3873开发板

连接: Server与Client建立星闪连接

天线: Server拔掉天线,Client带天线

  1. 软件配置

MTU: 1500 (已配置最大)

传输模式: 可靠传输

包大小: 1470字节

  1. 操作步骤

建立星闪连接

Server调用 ssaps_notify_indicate 发送1470字节数据

立即触发崩溃

二、打印的bug:

APP[panic]:id:58, code:0x5e2, call:0x329703

Flash Init Fail! ret = 0x80001341

三、查看APP[panic]:id:58为

PANIC_BTH_MEMORY

四、请问这是怎么回事呢?

1 Answers

有可能是1470会在几个连接间隔中发出去,如果信号不好,有其中一个连接间隔没有把数据发出去,就会造成协议栈的堆积溢出。

如果信号好的情况就不会有这个现象了,直接把FIFO中的数据发送出去了

当然这也仅是猜测。

好哒,大概我也这样觉得,那这个时候调整连接间隔会不会好些?PANIC_BTH_MEMORY这个内存不足是指协议栈的内存不足吗,还是control核或者是host核的内存不足呢?