接触高通平台camera不长时间,了解的不够深入,下面个人所了解内容的是基于高通平台的camera,有的地方能描述不一定会很清楚,以后会慢慢补充!
一 框架介绍
Package -> Framwork -> JNI -> Camera.cpp -> CameraClient -> Cameraservice -> HAL ->Kernel. 软件不停的改进和变化,整体框架不会有太大的变化。
二 各层的结构图
具体可查看各层之间备注中中已给出相关路径。
三 kernel层camera模块初始化逻辑图。
暂时只是分析了kernel层。
kernel启动后,后调用kernel/drivers/media/platform/msm/camera_v2/sensor/msm_sensor_init.c内的
msm_sensor_init_module函数,主要功能
子设备初始化 v4l2_subdev_init。
填充 msm_sensor_init 结构体。
注册msm_sd_subdev
执行v4l2的操作函数 v4l2_subdev_fops
然后会调用到kernel/drivers/media/platform/msm/camera_v2/sensor/msm_sensor_driver.c
主要解析dts相关的参数
v4l2相关和 i2c的相关设置
在就调到kernel/drivers/media/platform/msm/camera_v2/sensor/msm_sensor.c
获取cci subdev。
上下电,匹配id。
四 HAL层使能逻辑图
五 camera preievw 的使能逻辑图
六 数据流
camera 拍照,预览,录像的数据流程框架。 具体流程有待查看。
camera 框架整体流程暂时介绍着么多,后续继续添加。