MSM8909 平台camera移植
原文地址:http://blog.chinaunix.net/uid-7213935-id-5749314.html
一.硬件分析
在调试的时候,一定要拿到电路图,模组规格书,SENSOR IC datasheet。
下面是主 camera 电路图:
由上面电路图我们看样看出,此模组有以下主要线路:
1.电源:结合 OV8856 的 datasheet 可知,AVDD:2.8;IOVDD:1.8;DVDD:1.2V;
2.控制讯号:RESET,POWERDOWN;
3.通讯讯号:IIC 通讯,CLK,DATA;
4.数据通讯:一组 MIPI CLK 信号,4 组 MIPI data 信号;
5.其他信号:MCLK,ID_PIN,GND。
副 CAMERA 和主 CAMERA 的电路图类似,差别在于,副 CAMERA MIPI 通讯组多寡而
已,同时控制信号 RESET 和 POWERDOWN 则是单独控制的。IOVDD 和 AVDD 一般都是固
定的而有些模组的 DVDD 是有差别的,比如 OV 的高像素 SENSOR 一般是 1.2V,而格科微低
像素 SENSOR 的电压为 1.8V,极少数为 2.8V;所以在调试的时候一定要先确认这个电压,否
则输出不了头像。
另外由电路图和模组规格书上可知还包括其他两部分(单独电路图省略):
聚焦马达:电压 AF _VDD:2.8V;使能 AF_EN;
闪光 FLASH: CAM_FLASH;
二. 软件代码整合
如何添加 camera 模组
Camera 驱动代码的添加主要是两个部分,一个是 kernel 层,一个是 vendor 层。
1.Kernel 部分
主要是配置 dts 文件,供 msm_sensor.c 读取。
a. 确认配置 menuconfig
在 qcom 平台上,已经弱化了 menuconfig,但是有的也需要配置下,如各种传感器等等。对
于 camera 部分,主要检查以下配置既可:
CONFIG_MEDIA_CAMERA_SUPPORT=y
CONFIG_MEDIA_RADIO_SUPPORT=y
CONFIG_MEDIA_CONTROLLER=y
CONFIG_VIDEO_V4L2_SUBDEV_API=y
CONFIG_VIDEOBUF2_MSM_MEM=y
CONFIG_V4L_PLATFORM_DRIVERS=y
CONFIG_MSMB_CAMERA=y
b.dts 部分
dts 的配置,调试部分会有详细说明。
2.Verdor 部分
而实质性的代码一般都放在 vendor 下,这部分是高通自己实现的 daemon 进程和 kernel 层
以及 hal 层进行通讯的框架代码;另一部分是效果代码。
a. 配置 config 文件:
vendor\qcom\proprietary\common\config\device-vendor.mk
b.添加适配 string
模组之间都是通过名称是适配的,所以名称的选取和一致性就尤为重要。
在此文件中,对应 camera probe 加载:
vendor\qcom\proprietary\mm-camera\mm-camera2\mediacontroller\modules\sensors\module\sensor_init.c
#define BOARD_SENSORS
“ov8856”,
#endif
在此文件中,对应 camera probe 加载:
vendor\qcom\proprietary\mm-camera\mm-camera2\mediacontroller\modules\sensors\module\sensor_init.c
#define BOARD_SENSORS
“ov8856”,
#endif
boolean sensor_init_probe(module_sensor_ctrl_t *module_ctrl)
{
……
for (i = 0; i < ARRAY_SIZE(sensor_libs); i++) {
ret = sensor_probe(sd_fd, sensor_libs[i]);
……
}
c.sensor,actuator 基本驱动配置以及效果参数文件
三 .驱动调试dts 配置
在 msm.c 和 msm_sensor.c 中,高通已经帮我们写好了软件架构,一般不用修改代码,主
要是配置 dts 文件:msm8909-camera_sensor-skuc.dtsi。
sensor_lib_t 结构体
在 sensor lib 中,有 sensor 基本驱动,主要是添加 sensor_lib_t 结构体:
Chromatix 参数
对于 Chromatix 参数驱动工程师要和模组厂或是 ic 原厂工程师沟通调试验证,他们给
出参数后,驱动工程师在 merge 的时候也要特别注意,对齐,回车等等一定要注意,否则可能
会出现编译出错的现象;当然聚焦马达要有由高通来调试。
一般情况下,按照上面操作,sensor 都可以有预览出来,在此基础上,例如图像翻转
180°,颜色 rgb 反调等等,都是可以通过 init reg 做简单的调试既可;驱动工程师整合调试好基
本版本了,就要和 ic 原厂或模组厂联系以及配合调试效果了。
当然在有些情况下,fae 也不是万能的,比如 OV 的 fae,基本不会搭理你的;而有
些问题 FAE 也不定能解答,很多时候是时间上不允许;这个时候就要大力发挥驱动工程师
的能动性,高通的海量调试信息就会派上大用场,后面我会写一篇关于 tuning 的文档,作
为此文档的补充。
四 效果验证
vendor 下的编译,根据 andriod.mk 和 makefile 文件,一般 mm 即可,在编译终端下
看生成的 so 的目录和具体文件,然后把生成的 so 文件 push 到相应的目录下,重启即可(效
果参数没有必要重启)。
高通或是模组厂调试好后,效果参数给到我们,一定要确保编译没有问题。
在验证的时候,要考虑不同光源下的情况,由于我们没有特定的光源实验室,一般情况
下,验证四个(正常情况,暗处,强光(窗口,日光灯),逆光情况)即可。
在验证的时候自己一定要多使用,多场景下切换,同时 prevew,capture,video 都要测试
到。
MSM8909 平台camera移植相关推荐
- 高通平台camera 移植过程
1 camera基本代码架构 高通平台对于camera的代码组织,大体上还是遵循Android的框架:即上层应用和HAL层交互,高通平台在HAL层里面实现自己的一套管理策略:在kernel中实现se ...
- 全志V853平台Camera模块开发框架详解
Camera 本章节介绍V853平台 Camera 模块的开发. V853支持并口CSI.MIPI,使用VIN camera驱动框架. Camera通路框架 VIN支持灵活配置单/双路输入双ISP多通 ...
- Qcom平台 Camera 之调试单刷验证
前言 由于调试camera 过程中,遇到的问题琐碎繁杂,在此将已经掌握和常用的调试技巧和一些知识点罗列出来,便于快速的开发调试camera. 平台包含msm8909.msm8953,软件平台包含And ...
- mtk camera 移植步骤
mtk camera 移植步骤: 1, Kernel层驱动代码文件添加 /mediatek/custom/doov92_wet_tdd/kernel/imgsensor/下添加imx179_mipi_ ...
- android camera 实时滤镜,【Camera】Android平台Camera实时滤镜实现方法
Android+JNI+OpenGL开发自己的美图秀秀 2016-01-18 16:39 阅读(5116) 评论(19) Android平台Camera实时滤镜实现方法探讨(十一)--实时美颜滤镜 2 ...
- 1013.windows平台下移植qtmqtt三方库
windows平台下移植Qt版本qtmqtt 1 下载qtmqtt源码 git clone https://github.com/qt/qtmqtt 2 安装perl软件 http://strawbe ...
- android平台Camera采集数据ffmpeg进行编码探究
在PC机上,Camera采集数据利用ffmpeg进行编码往往没有任何问题,但是到了android平台或多或少会出现一系列问题,下面就针对这些问题总结一下. 1.在PC和android平台最大的差别 ...
- android拷机工具,Android8.0平台Camera monkey拷机卡死异常解决方案
android8.0平台camera monkey拷机卡死异常 最近在处理一个camera monkey拷机卡死的问题,卡死在停止录像的画面. monkey测试命令 monkey -p com.and ...
- android烤机按键变慢,Android8.0平台Camera monkey拷机卡死异常
Android8.0平台Camera monkey拷机卡死异常 最近在处理一个camera monkey拷机卡死的问题,卡死在停止录像的画面. monkey测试命令 monkey -p com.and ...
最新文章
- c语言既适合于开发,C语言试题及答案 (1)
- 怎样将.dotnetcharting控件生成的图标打印
- 新浪微博开放平台之OAuth2.0认证
- Halcon —— 图像像素类型与转换
- Python进阶06 循环对象
- 图像、帧、片、NALU(firstime)
- shell下后台挂起
- mysql binlog-row-image=minimal_十一:参数binlog_row_image(笔记)
- diff git 指定时间_【GIT】从指定分支两个Tag中获取差异文件,进行代码的增量更新...
- Android项目实战(三十四):蓝牙4.0 BLE 多设备连接
- android 锁屏 定时器,屏幕锁屏 定时器就停了
- 1100个商务企业宣传通用PPT模板免费下载网址
- 服务器工作站显示器,HP Z25n超窄边框显示器【深度测评】
- P4816 [USACO15DEC]High Card Low Card G 题解
- 2018永洪科技大数据技术上海峰会-唤醒数据.遇见未来
- 时间计算题100道_2019消防工程师考试易考6大类型计算题
- 思科PC远程控制交换机和路由器
- 如何1分钟实现身份实名认证功能?
- 当SWOOLE遇上PROTOCOL
- NOIP2017提高组总结