TI工程师,你好
我的应用场景是这样的,手机扫描蓝牙信号,然后连接传送数据,CC2640R2F接收数据处理完了会给手机notify返回结果,然后手机端断开蓝牙连接。现在我遇到一个问题,刚才说的流程只要执行18次之后,手机再连接CC2640R2F就会出现死机。后面经过进一步调试发现,第19次连接之后会触发SBP_HCI_CONN_EVT_END_EVT事件,然后调用SimpleBLEPeripheral_sendAttRsp(),然后程序就死掉了,前面18次都不会触发该时间。
请问TI工程师,能讲解一下SBP_HCI_CONN_EVT_END_EVT和SimpleBLEPeripheral_sendAttRsp()方面的内容吗,为什么程序会挂掉。或者有没有相关的资料可以参考一下,谢谢
Alvin Chen:
关于Task events 处理请看:
Task Events:
dev.ti.com/…/the-application.html
user4944744:
回复 Viki Shi:
我用的是带oad的例程simple_peripheral_oad_offchip,连接间隔是默认的10ms
user4944744:
回复 Viki Shi:
你好,我把连接间隔改为100ms了还是一样。另外,我的程序有创建新的应用线程,不知道这个有没有影响。我把应用线程的业务功能屏蔽掉,能连接18次,如果把全部业务功能打开,只能连接2次程序就挂掉了
user4944744:
回复 Viki Shi:
好像确实是创建另一个线程导致的,我把自己创建的线程去掉就正常了,请问关于线程创建这块需要注意哪些地方
user4944744:
回复 Viki Shi:
跟自己创建的线程没关系,把线程关掉了,只是能跑得更久能连接的次数更多而已,最后程序都会死掉。我用的是simplelink_cc2640r2_sdk_1_35_00_33,是不是这个版本有缺陷