linux下camera驱动分析_高通CamX(驱动部分)

  最近要上新平台了,默默看了下,哦豁,大发,Camera代码架构大改,跟之前相差了十万八千里,vendor下面的代码基本上用C++重写,之前放在HAL下面的代码也已经放在vendor下面了,现在除了kernel的代码是C写的,其它基本上走向了C++,而且下面的编译脚本和配置很多已经使用xml和Python控制,目前来看,以后C用的地方越来越少,C++,java,Python和可扩展标记语言将会在驱动上是趋势。由于架构的改动,实际上等于是重新撸一遍。(以下内容部分来自网络,部分来自本人工作中遇到的问题,仅供自娱自乐,欢迎查漏补缺)

1.概述

高通平台Camera HAL,android P之前,大部分采用的是Qcamera和mm-camera的架构,这个一个放在android hardware目录下,一个放在vendor proprietary mm-camera目录下,做高通平台的基本上对这个很熟悉了,为了更精细化控制底层硬件(sensor/ISP等),同时方便手机厂商自定义一些功能,高通搞出了CamX-CHI架构,基本上跟之前的架构没得一点毛的关系了,它将一些高度统一的功能性接口抽离出来放在CamX中,将可定制化的部分放在CHI中,供不同的厂商进行修改,实现各自独有的特色功能,这样设计的好处就是,即便对CamX不是很了解,依然可以很方便的加入自定义的功能,降低平台的耦合性,以供开发者更好的使用高通平台。

     先对CamX架构做一个直接的描述,如下图:

d88995f020505059ac647fde9f144514.png

CamX的代码主要放在Z:\Code\EDA61K\LA.UM.8.15\LINUX\android\vendor\qcom\proprietary\camx和Z:\Code\EDA61K\LA.UM.8.15\LINUX\android\vendor\qcom\proprietary\chi-cdk目录下,来看camX目录下的主要分布:

bf0489c878102619de2d3edd622158fb.png

core目录:用于存放camx的核心实现模块,其中还包含了主要用于实现HAL3接口的HAL目录,以及负责与CHI交互的chi目录。

csl目录:用于存放主要负责camx与cameradriver通信的模块,为camerax提供了统一的cameradriver控制接口。

hwl目录:用于存放自身具有独立运算能力的硬件node,该部分node受csl管理。

swl目录:用于存放自身并不具有独立运算能力的,必须依靠CPU才能实现的node

chi-cdk目录有如下:

     这部分的目录跟camera相关的主要在:

Z:\Code\EDA61K\LA.UM.8.15\LINUX\android\vendor\qcom\proprietary\chi-cdk\oem\qcom如下路径:

47cf8c5cb24ec9ccd72ae340ccc88a19.png

是不是跟之前的高通默认架构很像:

topology目录:用于存放用户自定义的Usecase xml配置文件(具体干啥的我还不知道)

a

  • 1
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值