高通平台开发实践经验

本文以一个3GPP下MO call(mobile original call)为例,简述从上层到下层如何建立call。安卓架构很多人都有印象,从APP层到FrameWork层到HAL层再到Linux Kernel层。由于安卓有两个处理器,一个是AP(Application Processor),一个是BP(baseband processor),而通话主要由BP去处理,所以这里我们关注BP。

一、平台架构分析

图1 高通平台架构

一个正常的主叫通话经过以下顺序发送到网络:
UI(属于APP层)
Telephony(属于FrameWork层)
RIL.Java(属于FrameWork层)
RILD(属于HAL层)
QCRIL(高通设计实现的RIL处理机制,完成reqeust、response和modem indication)。
QMI(高通提供的与modem侧的接口)
AP和BP的通信通过共享内存
Call manager(也就是CM,modem还有许多其他的模块这里不作介绍)
NAS(Non-Access Stratum非接入层,业务建立、移动性管理等,通话问题主要关注NAS,OTA消息也是从NAS发出来的)
AS(Access Stratum接入层,无线资源控制和无线链路控制)
最后发往网络

二、OTA (over the air)信令流程

三、高通平台常见通话问题原因

通话问题一般分为手机问题和网络问题,绝大多数都是网络问题造成的,通话问题处理要综合QXDM log,modem 代码和协议。
手机问题:手机没有发某条消息

1,主要得看NAS,因为OTA就是从NAS发出来的,从NAS可以看到当前是否掉网,是否进行其他数据业务,是否进行位置区更新,从而判断是什么导致无法通话。

2,如果NAS报了什么异常,就得向上看qmi、RIL或者向下看AS层确定问题了。
网络侧问题:网络没有发某条消息

3,主要查看信号质量和信号强度就可以确定网络状态了。

高通平台抓取log
在高通平台上,通话问题处理常用高通工具QXDM抓取log,然后分析log找到问题

1.打开QPST查看手机连接状态

首先必须安装QPST和手机驱动。

QXDM 是通过 QPST 软件来统一管理端口连接,实现手机终端和 PC 用户图形界面的一个交互的功能的。

当我们通过 USB 延长线将手机的连接到电脑上后,如果已经正确安装该手机终端的 USB 驱动,那么就应该可以在“我的电脑(右键)->管理->设备管理器”中看到以下菜单。

首先打开设备管理器查看连接的状态。

4.连接手机,Options->Communications->traget port 下拉框选择当前活动的端口,从disconnect变成其他活动的com口,此处是com9

6,QXDM log保存 File->Save Items(CTRL + I),下次可以用File->Load Items(CTRL + L)打开,保存格式是ISF,如果想放弃已经抓到的log,那就点击File->New Item(ALT + I),开始新的log抓取,如果想保存在其他路径那就需要通过File->Item Store Settings来设置
7,注意:一般抓取log得用default logmask来抓取,否则有些log抓不全。

协议查找
在log分析中,如何查找协议呢?

/ 0/

SYS_SRV_DOMAIN_NO_SRV,

/**< No service. */

SYS_SRV_DOMAIN_CS_ONLY,

/**< Circuit switched only capable. */

SYS_SRV_DOMAIN_PS_ONLY,

/**< Packet switched only capable. */

SYS_SRV_DOMAIN_CS_PS,

/**< Circuit and packet switched capable. */

所以,reg_svc_domain = 3代表的是cs+ps域,cs是电路域,用来打电话、发信息的,ps是数据域,发彩信、数据连接的。

其实代码并不仅仅用来查找结构体,更多的是用来跟踪流程,毕竟log是从代码中打印出来的。

高通平台开发实践经验相关推荐

  1. 高通平台开发环境搭建、编译、烧录(android5.1以上系统)

    高通平台开发环境搭建.编译.烧录(android5.1以上系统) 以MSN8937为例 1. 安装Ubuntu(12.04LTS以上稳定版本)     安装过程中必须以根用户登录或使用sudo获取ro ...

  2. 高通平台开发工具大全, 百分之九十的工具都可以下载

    高通平台开发工具大全, 百分之九十的工具都可以下载 高通骁龙(Qualcomm Snapdragon)是全球领先移动处理器芯片生产厂商,高通旗下骁龙处理器产品划分为四大阶级:骁龙800.骁龙600.骁 ...

  3. 高通平台开发系列讲解(外设篇)高通平台Camera摄像头驱动移植

    文章目录 一.高通平台摄像头软件框架 二.相关代码目录 三.驱动移植 3.1.新增camera节点 3.2.配置相关的GPIO 沉淀.分享.成长,让自己和他人都能有所收获!

  4. 高通平台开发板学习教程

    这一部分要求了解芯片的内部架构,启动模式,启动过程中代码执行的顺序等. 一.处理器的核心 1.APPS :运行Android 2.RPM:主要用于低功耗应该 3.Modem:高通自有指令集处理器,处理 ...

  5. 高通平台开发系列讲解(AI篇)高通神经网络处理引擎 SNPE SDK架构

    文章目录 一.SNPE开发环境 二.SNPE SDK 文件结构 三. SNPE架构 四.SNPE运行特性 沉淀.分享.成长,让自己和他人都能有所收获!

  6. 高通平台开发系列讲解(USB篇)Linux Android USB软件架构

    文章目录 一.高通平台USB软件架构 二.USB 设备侧软件组成 2.1.OTG driver 2.2.Device controller driver 2.3.Gadget framework 2. ...

  7. 高通平台开发系列讲解(外设篇)高通Camera软件架构

    文章目录 一.高通Camera软件架构 1.1.Camera App 1.2.Camera Framework 1.3.Camera Service 1.4.Camera Provider 1.5.C ...

  8. 高通平台开发系列讲解(USB篇)DWC3控制USB速率

    文章目录 一.设备树 二.相关结构体 三.最大速率设置 四.当前速率设置 沉淀.分享.成长,让自己和他人都能有所收获!

  9. 高通平台开发系列讲解(充电篇)充电管理芯片PM7250B详解

    文章目录 一.PM7250B硬件组成 二.充电功能 沉淀.分享.成长,让自己和他人都能有所收获!

最新文章

  1. window下使用虚拟机安装Linux操作系统CentOS
  2. 【必看】如何向女朋友解释TCP的三次握手和四次挥手
  3. blockly和Java交互_blockly 基础学习(一)
  4. 【转】谈谈c#中异步编程模型的变迁**
  5. python3.4安装pygame_python 3.4.3 安装pygame
  6. 计算机组装策划案,产品策划书格式
  7. 国产特斯拉Model Y已开始向欧洲用户交付
  8. C语言字符数组练习题
  9. 常见系统中文字体的英文名
  10. ckfinder php 配置,PHP中Ckeditor Ckfinder配置图片上传功能
  11. Android平台音视频RTMP推送|GB28181对接之动态水印设计
  12. 《捉妖记》的命格解析
  13. Python之斐波那契
  14. 我的世界服务器配置推荐,搭建我的世界服务器教程
  15. 如何修改Win10窗口底色/背景颜色/护眼模式?
  16. pcs for linux7下载,centos7上实现corosync V2 + pacemaker + pcs | crmsh备忘录
  17. 生物仿生细胞膜包裹药物|人源肝癌细胞HepG2细胞膜|普鲁士蓝纳米介晶细胞膜|纳米红细胞膜负载丹参酮IIA磺酸钠
  18. 苹果a15处理器相当于骁龙多少 苹果a15处理器性能
  19. 机器学习:PM2.5预测问题 (基于Sklearn Pandas)
  20. MySQL数据库作业设计之豆瓣音乐

热门文章

  1. 典型的SPI控制器的结构
  2. 嵌入式Linux系统编程学习之二十三 System V 共享内存机制
  3. vc可以实现对话框里显示html文档内容,也可以显示word内容吗,VC6中使用CHtmlView在对话框控制中显示HTML文档...
  4. 兰州大学c语言课程作业答案,兰州大学11春学期《C语言程序设计》第1次作业答案...
  5. linux 查tls模块,TLSSLed · Kali Linux Tools Documents · 看云
  6. Elasticsearch Java API四种实现方式
  7. 爬虫爬取实例与乱码的处理
  8. SDUT 2141 【TEST】数据结构实验图论一:基于邻接矩阵的广度优先搜索遍历
  9. 绝对精辟!10分钟让你全面了解当前世界金融危机
  10. window.postMessage 跨窗口,跨iframe javascript 通信