和你一起终身学习,这里是程序员Android
经典好文推荐,通过阅读本文,您将收获以下知识点:
1、Camera 框架介绍:
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等性能配置;
2、Camera Bringup 需要配置的文件
(本文以hi1634q型号的前摄为例,平台是mt6789,kernel版本为5.10)
2.1、Device Config Files
修改时删除多余的 sensor driver name,只保留自己的即可;
/device/mediateksample/k6789v1_64
ProjectConfig.mk
image.png
/device/mediatek/mt6789
CameraConfig.mk
device-camera.mk
image.png
注意:CUSTOM_HAL_IMGSENSOR 、CUSTOM_HAL_SUB_IMGSENSOR 、CUSTOM_KERNEL_IMGSENSOR 、CUSTOM_KERNEL_SUB_IMGSENSOR 这四个必须都要指定 sensor name;不能遗漏!
image.png
/device/mediatek/common/kernel-headers
kd_imgsensor.h
指定 sensor name 和 sensor model id !这里一定要check不能出错!
image.png
2.2、Kernel Config Files
/kernel-5.10/arch/arm64/configs
mgk_64_k510_defconfig
修改时删除多余的 sensor driver name,只保留自己的即可;
image.png
/kernel-5.10/drivers/misc/mediatek/imgsensor/inc
kd_imgsensor.