原文地址: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;所以在调试的时候一定要先确认这个电压,否
则输出不了头像。
另外由电路图和模组规格书上可知还包括其他两部分(单独电路图省略):

  1. 聚焦马达:电压 AF _VDD:2.8V;使能 AF_EN;

  2. 闪光 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 基本驱动配置以及效果参数文件

    三 .驱动调试

  3. dts 配置
    在 msm.c 和 msm_sensor.c 中,高通已经帮我们写好了软件架构,一般不用修改代码,主
    要是配置 dts 文件:msm8909-camera_sensor-skuc.dtsi。

  4. sensor_lib_t 结构体
    在 sensor lib 中,有 sensor 基本驱动,主要是添加 sensor_lib_t 结构体:

  5. 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移植相关推荐

  1. 高通平台camera 移植过程

    1  camera基本代码架构 高通平台对于camera的代码组织,大体上还是遵循Android的框架:即上层应用和HAL层交互,高通平台在HAL层里面实现自己的一套管理策略:在kernel中实现se ...

  2. 全志V853平台Camera模块开发框架详解

    Camera 本章节介绍V853平台 Camera 模块的开发. V853支持并口CSI.MIPI,使用VIN camera驱动框架. Camera通路框架 VIN支持灵活配置单/双路输入双ISP多通 ...

  3. Qcom平台 Camera 之调试单刷验证

    前言 由于调试camera 过程中,遇到的问题琐碎繁杂,在此将已经掌握和常用的调试技巧和一些知识点罗列出来,便于快速的开发调试camera. 平台包含msm8909.msm8953,软件平台包含And ...

  4. mtk camera 移植步骤

    mtk camera 移植步骤: 1, Kernel层驱动代码文件添加 /mediatek/custom/doov92_wet_tdd/kernel/imgsensor/下添加imx179_mipi_ ...

  5. android camera 实时滤镜,【Camera】Android平台Camera实时滤镜实现方法

    Android+JNI+OpenGL开发自己的美图秀秀 2016-01-18 16:39 阅读(5116) 评论(19) Android平台Camera实时滤镜实现方法探讨(十一)--实时美颜滤镜 2 ...

  6. 1013.windows平台下移植qtmqtt三方库

    windows平台下移植Qt版本qtmqtt 1 下载qtmqtt源码 git clone https://github.com/qt/qtmqtt 2 安装perl软件 http://strawbe ...

  7. android平台Camera采集数据ffmpeg进行编码探究

      在PC机上,Camera采集数据利用ffmpeg进行编码往往没有任何问题,但是到了android平台或多或少会出现一系列问题,下面就针对这些问题总结一下. 1.在PC和android平台最大的差别 ...

  8. android拷机工具,Android8.0平台Camera monkey拷机卡死异常解决方案

    android8.0平台camera monkey拷机卡死异常 最近在处理一个camera monkey拷机卡死的问题,卡死在停止录像的画面. monkey测试命令 monkey -p com.and ...

  9. android烤机按键变慢,Android8.0平台Camera monkey拷机卡死异常

    Android8.0平台Camera monkey拷机卡死异常 最近在处理一个camera monkey拷机卡死的问题,卡死在停止录像的画面. monkey测试命令 monkey -p com.and ...

最新文章

  1. c语言既适合于开发,C语言试题及答案 (1)
  2. 怎样将.dotnetcharting控件生成的图标打印
  3. 新浪微博开放平台之OAuth2.0认证
  4. Halcon —— 图像像素类型与转换
  5. Python进阶06 循环对象
  6. 图像、帧、片、NALU(firstime)
  7. shell下后台挂起
  8. mysql binlog-row-image=minimal_十一:参数binlog_row_image(笔记)
  9. diff git 指定时间_【GIT】从指定分支两个Tag中获取差异文件,进行代码的增量更新...
  10. Android项目实战(三十四):蓝牙4.0 BLE 多设备连接
  11. android 锁屏 定时器,屏幕锁屏 定时器就停了
  12. 1100个商务企业宣传通用PPT模板免费下载网址
  13. 服务器工作站显示器,HP Z25n超窄边框显示器【深度测评】
  14. P4816 [USACO15DEC]High Card Low Card G 题解
  15. 2018永洪科技大数据技术上海峰会-唤醒数据.遇见未来
  16. 时间计算题100道_2019消防工程师考试易考6大类型计算题
  17. 思科PC远程控制交换机和路由器
  18. 如何1分钟实现身份实名认证功能?
  19. 当SWOOLE遇上PROTOCOL
  20. NOIP2017提高组总结

热门文章

  1. 手把手教你使用爬虫神器(良心推荐,拒绝搬砖)
  2. oracle去重差个数,Oracle基础(五):多表查询
  3. SCOI2016 Day2 简要题解
  4. Sublime 删除一行快捷键
  5. 高并发解决方案类考察点
  6. 【vue】 vue 实现视频播放 vue-video-player
  7. 游戏测试用例设计实例
  8. 今天给大家安利一波软件测试面试题,都是经典高频面试题,附【自动化/接口/简历模板】
  9. qr码是二维码码_如何使用QR码安装Android应用和共享联系人
  10. 现在的局域网监控软件需要具备那些功能?