1.关键字

      OpenHarmony 3.2modem;使能;vendor;芯片适配

 

2.问题描述

  2.1运行环境

      --- 系统版本:OpenHarmony 3.2(以该版本为基线)

      --- 应用软件:modem适配so库,厂商的modem开源库

 

  2.2 问题现象

    测试机主叫挂断通话后会在通话界面卡顿5-10秒才回到主页

 

  2.3 测试步骤

  (1)插入sim卡,拨打电话。

  (2)电话拨通后,挂断电话。

  (3)挂断页面卡顿5-10s后才回主页。

 

3.问题原因

拨通电话后进行挂断操作,发现上层经过Vendor层下发HangUp挂断指令,执行延迟了5-10s的问题,主要原因是上层下发操作指令,经过Vendor层其指令执行是“串行”,会排队向Modem层下发AT指令,而在HangUp挂断指令在Vendor层执行之前,已被另外的ActivatePdpContext开启蜂窝指令阻塞了,直到ActivatePdpContext开启蜂窝指令执行完成后,Vendor层才开始正式执行HangUp挂断指令,最终导致挂断延迟问题。

 

4.解决方案

针对原Vendor层“串行”下发指令请求的问题,将其修改为“并行”下发指令请求来解决这个两个指令间阻塞的问题。具体操作过程是,当上层下发ActivatePdpContext开启蜂窝的指令请求时,经过Vendor层,为其单独新创建一个线程2,而当HangUp挂断指令请求下发时,走原线程1,这个两个线程“并行”下发指令请求,从而解决这两个指令间可能存在的阻塞问题。

5.验证结果:

修改为并行”下发指令请求的方案后,ActivatePdpContext开启蜂窝指令会单独走新开线程2测试机主叫挂断通话后未出现卡顿5-10秒,从而验证该方案的可行性和有效性。

 

6.关联问题

https://laval.csdn.net/6532048062a5f12832bbb801.html

 

Logo

社区规范:仅讨论OpenHarmony相关问题。

更多推荐