MTK Camera HAL到驱动的流程总结一

286511bb8b742b69a5362a8860a4be2f.gif

和你一起终身学习,这里是程序员Android

经典好文推荐,通过阅读本文,您将收获以下知识点:

一、架构介绍
二、Camera Open流程(Hal-Sensor)
三、Sensor Search流程

一、架构介绍

1.1 Camera的框架分为Kernel部分和Hal部分

Kernel部分:

image sensor driver——负责具体型号的sensor的id检测,上电,以及在preview、capture、初始化、3A等等功能设定时的寄存器配置;
ISP driver——通过DMA将sensor数据流上传;
Hal部分:

imageio——主要负责数据buffer上传的pipe;
drv——包含imgsensor和isp的hal层控制;
feature io——包含各种3A等性能配置;
来看一张图,大致来了解一下Camera的整体架构。

outside_default.png

1.2 MiddleWare(MW)层

ICameraProvider——向上暴露的接口调用,实现是在CameraProvider中;
Device@3.2ICameraDevice——用于Camera Service去操作各个Camera device的操作,实现在CameraDevice3中;
Device@3.2ICameraDeviceSession——Camera会话的接口;
ICameraDeviceCallBack——底层对上层的CallBack接口;
CameraDeviceManager——用于管理CameraDevice,包括查找,打开,关闭等。

1.3 Pipeline介绍

PipelineModel是HAL3核心架构,对上需要开放对Pipeline创建 / 操作的API,对下需要建立Pipeline / 管理Pipeline的生命周期。
PipelineModel会针对不同的场景创建不同的Pipeline和HWNode,HWNode向下传输APP层的命令,向上传递图形数据。

P1Node——pipeline的root node,input app命令,output raw data to P2CaptureNode and P2StreamNode;
P2CaptureNode——转换raw data to yuv,Support scale/crop;
P2StreamingNode——和P2CaptureNode功能类似;
JPEGNode——Convert YUV to Jpeg;
FDNode——Generate the FD information;

二、Camera Open流程(Hal-Sensor)

在APP层调用openCamera后会调用的CameraDevice层,最后调用到driver中,整体的调用流程如下:

outside_default.png

先从CameraDevice3SessionImpl的open函数分析。

//vendor/mediatek/proprietary/hardware/mtkcam3/main/hal/device/3.x/device/CameraDevice3SessionImpl.cppauto ThisNamespace::open(
    const ::android::sp<V3_4::ICameraDeviceCallback>& callback) -> ::android::status_t{
    auto pDeviceMana
一、 手机CAMERA的物理结构: ........................................................................................ - 4 - 二、 CAMERA的成像原理: ................................................................................................. - 4 - 三、 CAMERA常见的数据输出格式:.................................................................................. - 5 - 四、 阅读CAMERA的规格书(以TRULY模组OV5647_RAW为例): ........................... - 6 - 五、 CAMERA的硬件原理图及引脚 ..................................................................................... - 7 - 1、 电源部分:.................................................................................................................... - 7 - 2、 SENSOR INPUT部分: ................................................................................................... - 7 - 3、 SENSOR OUTPUT部分: ............................................................................................... - 7 - 4、 I2C部分:SCL,I2C时钟信号线和SDA,I2C数据信号线。 .................................. - 7 - 六、 MTK平台CAMERA驱动架构: .................................................................................. - 8 - 七、 MTK平台CAMERA相关代码文件(以下代码均为MTK6575平台): .................... - 9 - 1、 CAMERASENSOR驱动相关文件 .................................................................................... - 9 - 2、 SENSOR ID 和一些枚举类型的定义 ............................................................................. - 9 - 3、 SENSOR供电 .................................................................................................................. - 9 - 4、 KERNEL SPACE的SENSORLIST,IMGSENSOR模块注册 ............................................... - 9 - 5、 USER SPACE的SENSORLIST,向用户空间提供支持的SENSORLIST ......................... - 10 - 6、 SENSOR 效果调整的接口 ............................................................................................ - 10 - 八、 CAMERA模块驱动、设备与总线结构: ..................................................................... - 11 - A) 驱动的注册: .................................................................................................................. - 11 - B) 设备的注册: .................................................................................................................. - 11 - C) 总线的匹配: .................................................................................................................. - 12 - 九、 CAMERA驱动工作流程: ............................................................................................- 13 - 十、 CAMERA驱动添加、调试流程:.......
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序员Android

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值