转载:https://www.jianshu.com/p/75ab1d82bbd3

mtk的驱动多是以模块加载的方式(module_init();module_exit();)加载到内核中去的;正因为如此开机初始化加载内核的时候。就会加载这些驱动;

下面开机过程中camera动作和打开应用时camera动作2个方面来解析camera驱动:

1.开机时,camera完成了sensor框架的初始化,id检测,以及上下电操作;

开机初始化软件上实现cpu识别camera sensor 的流程图如下图片:

解析下图片的流程:

Hal层在开机初始化调用文件  Imgsensor_drv.cpp

(MTK8163\vendor\mediatek\proprietary\platform\MT8163\hardware\mtkcam\hal\sensor)

中的impSearchSensor(pfExIdChk pExIdChkCbf) 函数,这个函数执行4个功能:

1).用GetSensorInitFuncList(&m_pstSensorInitFunc)函数获取目前所有的camera sensor 列表,这些前后camera都在projectconfig.mk 已经设置。

2).用KDIMGSENSORIOC_X_SET_DRIVER向Kd_sensorlist.c

(mtk8163\kernel-3.10\drivers\misc\mediatek\imgsensor\src\mt8163) 中的CAMERA_HW_Ioctl传值,通过case分支最终调用kdSetDriver函数,根据在projectconfig.mk文件里面的main sub camera的配置,找到相应的前后camera具体的驱动文件,即对于正在遍历的这颗sensor,挂街上具体的底层驱动接口。

3).用KDIMGSENSORIOC_T_CHECK_IS_ALIVE向Kd_sensorlist.c 中的CAMERA_HW_Ioctl(即前面讲到的上层操作底层的接口)传值,通过case分支最终调用adopt_CAMERA_HW_CheckIsAlive函数,在这个函数里开始给前面找到的所有camera上电,并通过向具体驱动里面的ioctrl函数传递SENSOR_FEATURE_CHECK_SENSOR_ID参数,最终通过case分支调用对应的函数通过I2c读取并核对是否为该sensor的 id,去识别具体的camera sensor id

4).分别对前后已经配对了sensor id的camera执行m_pSubSensorInfo =m_pstSensorInitFunc.pSensorInfo;通过这个函数会调用具体驱动(这里以gc21452M 的前摄像头为例) UINT32GC2145MIPIGetInfo()函数,这个函数是获取sensor IC preview capture vedio时的帧率 丢帧 打开时候的默认窗口,数据传输的type等基本信息。

通过上面的4步,kernel内核已经识别了主板上的硬件camera IC了,并获取具体sensorIC的基本信息。

2.开应用时,camera会有上电,完成寄存器的初始配置,向上层传送基本参数及配置信息,以及preview和capture模式循环

客户端在点击对应camera图标开始进入previewcaputure vedio 应用操作时候,上层应用会启动上层的服务程序去调用Imgsensor_drv.cpp文件里面的ImgSensorDrv:pen(MINT32 sensorIdx)函数,通过函数KDIMGSENSORIOC_T_OPEN()最终调用具体驱动UINT32 GC2145MIPIOpen(void)这个open函数。

这个函数主要目的:通过调用GC2145MIPI_Sensor_Init函数,对相关capturepreview Vidio动作的3A寄存器进行初始化,从而启动相应的操作。

MTK camera调试常见几十种问题处理方法

http://bbs.16rd.com/forum.php?mod=viewthread&tid=52085&fromuid=28165

MTK平台开机初始化时 camera驱动流程|MTK camera调试常见几十种问题处理方法相关推荐

  1. MTK 平台修改或查看USB驱动能力有三种方法

    MTK 平台修改或查看USB驱动能力有三种方法:  1.工模菜单 通过"*#*#3646633#*#*"进入工程模式,通过如下菜单可以查看修改USB驱动能力: hardware t ...

  2. Android 系统(159)----MTK 平台过CTA时,发生权限未明示问题

    MTK 平台过CTA时,发生权限未明示问题 Background:CTA是针对中国大陆地区的一个安全认证,目的是提高移动智能终端自身的安全防护能力,防范移动智能终端上的各种安全威胁,避免用户的利益受到 ...

  3. 展讯 Camera 驱动流程 576 i 480i CVBS NTSC 摄像头调试

    本文主要研究展讯平台Camera驱动和HAL层代码架构,熟悉展讯Camera的控制流程. 平台:Sprd-展讯平台 Hal版本:[HAL3] 知识点如下: 从HAL层到deiver层 1.Camera ...

  4. 安卓 camera 调用流程_[Camera]Camera1 open、preview、take picture流程分析(3)

    本文章转载自sheldon_blogs的博客,具体网址如下:https://www.cnblogs.com/blogs-of-lxl/p/5152578.html 本文章仅供学习研究使用,如须转载请附 ...

  5. java最强的mtk平台_手机QQ塞班S60/JAVA/MTK平台系统升级

    原标题:手机QQ塞班S60/JAVA/MTK平台系统升级 说到塞班S60系统,MTK系统以及支持JAVA的手机相信有些人都已经遗忘了,但是腾讯却没忘,这次腾讯专门对塞班.联发科.Kjava平台的手机Q ...

  6. android 性能优化---(2) MTK 平台开机时间优化

    一.在工程模式开启MTKLogger, 开机后取日志bootprof  adb pull /storage/emulated/0/mtklog/mobilelog/APLog_2018_0309_10 ...

  7. android camera 拍照流程,Android -- Camera源码简析,启动流程

    com.android.camera.Camera.java,主要的实现Activity,继承于ActivityBase. ActivityBase 在ActivityBase中执行流程: onCre ...

  8. MTK平台点亮sensor以及mtk开机初始化

    MTK点亮sensor Probe:上电–>matach id–>下电 Driver:Kernel部分和Hal部分 dtsi:主要配置GPI的上电逻辑,把camera的上电管脚与平台管脚相 ...

  9. Camera5 MTK camera驱动框架介绍

    一.概序: 前文已经介绍了camera驱动部分的内容Camera4 MTK camera驱动结构介绍,这里在回顾下之前的框架图, 这篇主要介绍红框部分的内容: imgsensor起到承上启下的作用,在 ...

最新文章

  1. IIS托管管道模式的集成和经典
  2. 修改maven本地仓库位置
  3. php递归复制文件内容,PHP实现递归复制整个文件夹的类实例_php技巧
  4. C++ COM编程之接口背后的虚函数表
  5. 王之泰201771010131《面向对象程序设计(java)》第九周学习总结
  6. 进入一个目录需要那些权限
  7. 一个周内上线50个增长策略,竟然能这么高效!
  8. android中viewpager+fragment,Android开发之ViewPager+Fragment
  9. 二叉查找树及其C语言实现
  10. 假期还剩 2 天,Python 爬取途牛网,揭秘哪里人少景美!
  11. Linux SVN 服务器配置以及客户端使用
  12. python中help函数_Python help()函数
  13. Map与JSON数据之间的互相转化
  14. scholarscope不显示影响因子_一劳永逸:这两个查看影响因子的插件你安装了吗?...
  15. java docx4j 目录_使用Docx4j创建word文档
  16. 2:0战胜Dota2世界冠军OG,OpenAI发起全网挑战,不服来战!
  17. word/wps 实用技巧: 批量改大纲标题样式
  18. Excel常用技巧(一)——快捷键
  19. python中int函数的用法浅析_python中int函数怎么用,
  20. 数据库实验4 SQL语言-SELECT查询操作

热门文章

  1. 调整重做日志缓冲区的大小
  2. c++ 汉语转换成拼音
  3. 虚幻引擎中导出模型,并导入到Unity
  4. 数据结构课程主页-2015级
  5. HDU - 1686 Oulipo
  6. 企业如何做好邮件归档稽核
  7. 机器人“嘚瑟”怎么办?用加速度指令“hold”住它!
  8. 在 C++ 中与 QML 对象交互
  9. Filezilla+花生壳内网穿透实现外网可以访问 避坑指南
  10. K8S 生态周报| Helm v3.4 发布