接觸高通平台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 架構整體流程暫時介紹着麼多,後續繼續添加。