高通平台开发实践经验
高通平台开发实践经验
本文以一个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是从代码中打印出来的。
高通平台开发实践经验相关推荐
- 高通平台开发环境搭建、编译、烧录(android5.1以上系统)
高通平台开发环境搭建.编译.烧录(android5.1以上系统) 以MSN8937为例 1. 安装Ubuntu(12.04LTS以上稳定版本) 安装过程中必须以根用户登录或使用sudo获取ro ...
- 高通平台开发工具大全, 百分之九十的工具都可以下载
高通平台开发工具大全, 百分之九十的工具都可以下载 高通骁龙(Qualcomm Snapdragon)是全球领先移动处理器芯片生产厂商,高通旗下骁龙处理器产品划分为四大阶级:骁龙800.骁龙600.骁 ...
- 高通平台开发系列讲解(外设篇)高通平台Camera摄像头驱动移植
文章目录 一.高通平台摄像头软件框架 二.相关代码目录 三.驱动移植 3.1.新增camera节点 3.2.配置相关的GPIO 沉淀.分享.成长,让自己和他人都能有所收获!
- 高通平台开发板学习教程
这一部分要求了解芯片的内部架构,启动模式,启动过程中代码执行的顺序等. 一.处理器的核心 1.APPS :运行Android 2.RPM:主要用于低功耗应该 3.Modem:高通自有指令集处理器,处理 ...
- 高通平台开发系列讲解(AI篇)高通神经网络处理引擎 SNPE SDK架构
文章目录 一.SNPE开发环境 二.SNPE SDK 文件结构 三. SNPE架构 四.SNPE运行特性 沉淀.分享.成长,让自己和他人都能有所收获!
- 高通平台开发系列讲解(USB篇)Linux Android USB软件架构
文章目录 一.高通平台USB软件架构 二.USB 设备侧软件组成 2.1.OTG driver 2.2.Device controller driver 2.3.Gadget framework 2. ...
- 高通平台开发系列讲解(外设篇)高通Camera软件架构
文章目录 一.高通Camera软件架构 1.1.Camera App 1.2.Camera Framework 1.3.Camera Service 1.4.Camera Provider 1.5.C ...
- 高通平台开发系列讲解(USB篇)DWC3控制USB速率
文章目录 一.设备树 二.相关结构体 三.最大速率设置 四.当前速率设置 沉淀.分享.成长,让自己和他人都能有所收获!
- 高通平台开发系列讲解(充电篇)充电管理芯片PM7250B详解
文章目录 一.PM7250B硬件组成 二.充电功能 沉淀.分享.成长,让自己和他人都能有所收获!
最新文章
- window下使用虚拟机安装Linux操作系统CentOS
- 【必看】如何向女朋友解释TCP的三次握手和四次挥手
- blockly和Java交互_blockly 基础学习(一)
- 【转】谈谈c#中异步编程模型的变迁**
- python3.4安装pygame_python 3.4.3 安装pygame
- 计算机组装策划案,产品策划书格式
- 国产特斯拉Model Y已开始向欧洲用户交付
- C语言字符数组练习题
- 常见系统中文字体的英文名
- ckfinder php 配置,PHP中Ckeditor Ckfinder配置图片上传功能
- Android平台音视频RTMP推送|GB28181对接之动态水印设计
- 《捉妖记》的命格解析
- Python之斐波那契
- 我的世界服务器配置推荐,搭建我的世界服务器教程
- 如何修改Win10窗口底色/背景颜色/护眼模式?
- pcs for linux7下载,centos7上实现corosync V2 + pacemaker + pcs | crmsh备忘录
- 生物仿生细胞膜包裹药物|人源肝癌细胞HepG2细胞膜|普鲁士蓝纳米介晶细胞膜|纳米红细胞膜负载丹参酮IIA磺酸钠
- 苹果a15处理器相当于骁龙多少 苹果a15处理器性能
- 机器学习:PM2.5预测问题 (基于Sklearn Pandas)
- MySQL数据库作业设计之豆瓣音乐
热门文章
- 典型的SPI控制器的结构
- 嵌入式Linux系统编程学习之二十三 System V 共享内存机制
- vc可以实现对话框里显示html文档内容,也可以显示word内容吗,VC6中使用CHtmlView在对话框控制中显示HTML文档...
- 兰州大学c语言课程作业答案,兰州大学11春学期《C语言程序设计》第1次作业答案...
- linux 查tls模块,TLSSLed · Kali Linux Tools Documents · 看云
- Elasticsearch Java API四种实现方式
- 爬虫爬取实例与乱码的处理
- SDUT 2141 【TEST】数据结构实验图论一:基于邻接矩阵的广度优先搜索遍历
- 绝对精辟!10分钟让你全面了解当前世界金融危机
- window.postMessage 跨窗口,跨iframe javascript 通信