zoukankan      html  css  js  c++  java
  • Qualcom QMI系列-基本知识介绍(转)

    1 引言
    1.1 编写目的
           介绍Qualcom QMI 基本知识,API使用,设计原理,基于QMI的RemoteEfs(NV)分析
    1.2 阅读建议
           高通平台入门
    1.3 参考资料  
           Qualcom 文档和msm代码

    1.5 运行平台
           Android 4.4
    1.4 文档声明
      
    2,  缩略语介绍    QMI:         Qualcom Message Interface    

    MSM:          Mobile station mode    

    AP:           Application Procesor

    3, 总体描述     高通平台目前都是非对称多核心,最主要的是AP和Modem。

    两个处理器怎么进行通信呢,我们把AP和Modem当作两个主机,问题就变得了很简单,TCP/IP协议不是一种非常成功的进程间跨主机通信方式。高通没有采用这种方式,但是借鉴了TCP/IP的框架设计。

    它的框架是这样的,内核态:基于共享内存实现链路层,扩展协议域;用户态,封装出类似于socket函数的接口,用于用户态使用。

    而我所描述的QMI就是用户态使用的API接口,这些接口非常类似于socket,只要有个socket编程的经验的是会容易理解的。

    4,QMI框架介绍

    4.1 IDL 说明    

    Interface Define Language 有类似于C语言的语法,基本元素service和message。service 可以说是一个服务,每个服务有唯一的service id。

    当创建service的时候,其实就是类似于socket里面绑定的协议地址。每个服务可以包含很多message,根据message id进行区分。

    自己自定义一个服务很简单,定义test.idl,然后用perl qmi_idl_compiler.pl test.idl会生成test_api.h test_api.c这个需要客户端和服务端代码包含引用,高通这么做只是为了减少重复的开发工作。   

    4.2 QCCI说明    QMI common client Interface 其实就是封装客户端进行通讯的C库,主要是注册client,send/receive message

    4.3 QCSI说明    QMI common service Interface 其实就是封装服务端进行通讯的C库,提供服务注册,send/receive message,根据消息ID查找回调函数实现消息响应

    5,下篇介绍    API介绍说明,代码分析。

    6,对QMI了解有需求的,可以在评论里面注明。便于把QMI介绍清楚

  • 相关阅读:
    sparkSQL
    Spark分区实例(teacher)
    SparkCore的性能优化
    Linux 输出当前路径下某个文件的绝对路径
    bulid runnable jar file with dependencies
    bulid runnable jar file with dependencies and main class
    spring mvc 整合jsp和thymeleaf两个模板引擎
    解决Volley中的JsonObjectRequest jsonRequest参数无法被服务端读取的问题
    为volley的http请求添加自定义request header
    使用spring-boot-starter-data-jpa 怎么配置使运行时输出SQL语句
  • 原文地址:https://www.cnblogs.com/zxc2man/p/6243892.html
Copyright © 2011-2022 走看看