Qualcomm 蓝牙耳机FAQ(3):解决QCC300x 挂断电话立马关机,耳机会死机情况

关键字 :QualcommQCC300x

在QCC3005 的项目中,很容易测试到死机的现象。

复现方法:

在通话过程中触发挂断电话的事件,0.5s内马上关机,就会出现死机现象(复现机率达到50%)。
panic 在如下函数的SinkGetScoHandle处。


void connectionHandleSyncDisconnectReq(const CL_INTERNAL_SYNC_DISCONNECT_REQ_T *req)
{
/* Send a SCO disconnect request to BlueStack */
MAKE_PRIM_T(DM_SYNC_DISCONNECT_REQ);
prim->handle = PanicZero(SinkGetScoHandle(req->audio_sink));;
prim->reason = (uint16)req->reason;
VmSendDmPrim(prim);
}

 

解决方法:

You can try to modify the code as below: 
void connectionHandleSyncDisconnectReq( 


const CL_INTERNAL_SYNC_DISCONNECT_REQ_T *req 


/* Send a SCO disconnect request to BlueStack */ 
MAKE_PRIM_T(DM_SYNC_DISCONNECT_REQ); 
+if(SinkGetScoHandle(req->audio_sink)) 
+{ 
prim->handle = PanicZero(SinkGetScoHandle(req->audio_sink));; 
prim->reason = (uint16)req->reason; 
VmSendDmPrim(prim); 
+ } 

 

Another way is to do the reset when the panic occur. 

或者设置芯片PANIC后,芯片进行重置。



★博文内容均由个人提供,与平台无关,如有违法或侵权,请与网站管理员联系。

★文明上网,请理性发言。内容一周内被举报5次,发文人进小黑屋喔~

评论