一、高通Display硬件架构:

A、MDP

高通MSM8x25内部模块,主要负责显示数据的转换和部分图像处理功能理,如YUV转RGB,放大缩小、旋转等。MDP内部的MDP DMA负责数据从DDR到MDDI Host的传输。

B、MDDI

一种采用差分信号的高速的串行数据传输总线,只负责数据传输,无其它功能;其中的MDDI Hosat提供并行数据和串行数据之间的转换和缓冲功能。由于外面是VGA的屏幕,数据量较大,为了减少对EBI2总线的影响,传输总线使用MDDI,而非之前的EBI2。

C、MDDIBridge

由于现在采用的外接LCD并不支持MDDI接口,故需要外加MDDI转换器,即MDDI bridge,来把MDDI数据转换成RGB接口数据。目前我们主要用它把HOST端MDDI传递过来的显示数据和控制数据(初始化配置等)转换成并行的数据传递给LCD。

D、LCDmodule

主要是LCD Driver IC 和TFT Panel,负责把MDDI Bridge传来的显存中的图像示在自己的 Panel上。

二、高通Display软件架构

1.蓝色部分——用空间应用程序:包括Android应用程序以及框架和系统运行库,和底层相关的是系统运行库,而其中和显示相关的就是Android的Surface Manager, 它负责对显示子系统的管理,并且为多个应用程序提供了2D和3D图层的无缝融合。

2.绿色部分——HAL层:代码由copybit.cpp实现,应用程序直接操作其提供的接口。具体接口如下:

ctx->device.common.tag =HARDWARE_DEVICE_TAG;

ctx->device.common.version = 1;

ctx->device.common.module =const_cast<hw_module_t*>(module);

ctx->device.common.close =close_copybit;

ctx->device.set_parameter =set_parameter_copybit;

ctx->device.get = get;

ctx->device.blit = blit_copybit;

ctx->device.stretch = stretch_copybit;

ctx->mAlpha = MDP_ALPHA_NOP;

ctx->mFlags = 0;

ctx->mFD = open("/dev/graphics/fb0", O_RDWR,0);

3.红色部分——linux kernel层:其中和显示部分相关的就是Linux的FrameBuffer,它是Linux系统中的显示部分驱动程序接口。Linux工作在保护模式下,User空间的应用程序无法直接调用显卡的驱动程序来直接画屏,FrameBuffer机制模仿显卡的功能,将显卡硬件结构抽象掉,可以通过Framebuffer的读写直接对显存进行操作。用户可以将Framebuffer看成是显示内存的一个映像,将其映射到进程地址空间之后,就可以直接进行读写操作,而写操作可以立即反应在屏幕上。这种操作是抽象的,统一的。用户不必关心物理显存的位置、换页机制等等具体细节。这些都是由 Framebuffer设备驱动来完成的。

4.绿色部分——驱动层:该部分可以看作高通显卡的驱动程序,和高通显示部分硬件相关以及外围LCD相关的驱动都被定义在这边,比如上述的显卡的一些特性都是在这边被初始化的,同样MDP和MDDI相关的驱动也都定义在这里,这也是我们主要修改的部分。

高通Display架构相关推荐

  1. linux驱动由浅入深系列:高通sensor架构实例分析之一

    点击打开链接 本系列导航: linux驱动由浅入深系列:高通sensor架构实例分析之一(整体概览+AP侧代码分析) linux驱动由浅入深系列:高通sensor架构实例分析之二(adsp驱动代码结构 ...

  2. linux驱动由浅入深系列:高通sensor架构实例分析之三(adsp上报数据详解、校准流程详解)

    本系列导航: linux驱动由浅入深系列:高通sensor架构实例分析之一(整体概览+AP侧代码分析) linux驱动由浅入深系列:高通sensor架构实例分析之二(adsp驱动代码结构)

  3. 高通ims架构android,深度揭密高通4/5G移动基带消息系统和状态机

    背景 本技术分析文章通过对高通的4/5G移动基带系统进行深入逆向工程提示其内部消息通信机制以及核心架构设计逻辑,本文的研究基于高通的4G基带MDM9707以及5G基带模块sdx55的固件之上分析完成, ...

  4. 高通 Camx 架构了解下(二)

    和你一起终身学习,这里是程序员Android 经典好文推荐,通过阅读本文,您将收获以下知识点: 一.Android Hal3回顾 二.Qcom Hal3 CamX架构 三.Qcom Hal3 Camx ...

  5. 高通camera架构讲解

    转自:http://www.cnblogs.com/thjfk/p/4086001.html Camera原理:外部光线穿过lens后,经过color filter滤波后照射到sensor面上,sen ...

  6. 关于高通CAMX架构下的AE调试的总结

    我于2021年夏开始学习camera tuning,至今大半年的时间了,做了一个8M的前置摄像头的调试.有些简单的调试心得与君分享,随着学习和工作的深入,还会持续更新这篇博文.若发现描述的不对的地方, ...

  7. 【转载】Camera安卓源码-高通mm_camera架构剖析

    https://blog.csdn.net/hbw1992322/article/details/75259311 版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.cs ...

  8. [Android][sensor]高通SEE架构下adsp平台的sensor低功耗原理

    早期 sensor挂载在Ap侧处理,驱动生成对应设备节点给上层上报数据.sensor需要一直处于工作状态,导致很多场景系统不能进入深度休眠,产生功耗问题. MTK平台 采用sensorhub.基于低功 ...

  9. 高通SDX62平台 MBIM搜网、查询信号等功能异常

    高通SDX62平台 MBIM搜网.查询信号等功能异常 1. 问题描述 按照高通SDX62平台产品规格,其支持RMNET.ECM.RNDIS.PPP.MBIM等拨号:但经测试,发现MBIM拨号功能正常, ...

最新文章

  1. mysql分表规则(转)
  2. 【环境搭建003】UBUNTU + ECLIPS + ANDROID 嵌入式系统编译环境搭建遇到的稀奇古怪的问题集合
  3. C#实现浮动和多标签窗体解决方案---使用Dockpanel
  4. python cookie池_Python爬虫scrapy框架Cookie池(微博Cookie池)的使用
  5. 12-matlab简单读excel
  6. 不用找了,基于 Redis 的分布式锁实战来了
  7. VBA collection函数回传
  8. matlab ctradon函数,Radon变换入门matlab CT原理
  9. CSS Bulma 框架
  10. 使用计算机需要准备硬件和什么,2017年计算机硬件知识参考试题
  11. Spring源码系列(十二)Spring创建Bean的过程(二)
  12. 微信小程序开发技术预研分析报告
  13. Python -- Matplotlib:设置画布大小和子图个数
  14. Linux如何新建用户
  15. 中软国际java 笔试 面试题
  16. 计算完全最短路径的Floyd算法
  17. nRF52832 — 提高蓝牙BLE的数据传输速率
  18. 2023最新SSM计算机毕业设计选题大全(附源码+LW)之java校园花卉销售系统ef5ox
  19. Learning How to Learn(二)
  20. 学习学习再学习-作者:李笑来

热门文章

  1. 中秋节前能跟客户聊的!
  2. 【MySQL】根据数据表中日期字段查询某个月每一天的数据量?查询数据表中所有日期每天的数据量?近三天每天数据量?
  3. 利用FME计算椭球面积
  4. vue自定义弹窗dialog,vue 点击遮罩层功能区以外的地方关闭遮罩层
  5. 资料汇总更新|软件安装包、书籍、源码、技术文档、手册……
  6. HIDS-ebpf-0
  7. 基于java的网上鲜花销售系统,基于JAVA的鲜花销售管理系统MVC开发,免费分享
  8. mysql导出一个数据库的结构及遇到的问题
  9. linux 类似winscp_linux 类似 winscp
  10. winsxs探索之sxstrace错误跟踪工具