MTK平台开机初始化时 camera驱动流程|MTK camera调试常见几十种问题处理方法
转载: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调试常见几十种问题处理方法相关推荐
- MTK 平台修改或查看USB驱动能力有三种方法
MTK 平台修改或查看USB驱动能力有三种方法: 1.工模菜单 通过"*#*#3646633#*#*"进入工程模式,通过如下菜单可以查看修改USB驱动能力: hardware t ...
- Android 系统(159)----MTK 平台过CTA时,发生权限未明示问题
MTK 平台过CTA时,发生权限未明示问题 Background:CTA是针对中国大陆地区的一个安全认证,目的是提高移动智能终端自身的安全防护能力,防范移动智能终端上的各种安全威胁,避免用户的利益受到 ...
- 展讯 Camera 驱动流程 576 i 480i CVBS NTSC 摄像头调试
本文主要研究展讯平台Camera驱动和HAL层代码架构,熟悉展讯Camera的控制流程. 平台:Sprd-展讯平台 Hal版本:[HAL3] 知识点如下: 从HAL层到deiver层 1.Camera ...
- 安卓 camera 调用流程_[Camera]Camera1 open、preview、take picture流程分析(3)
本文章转载自sheldon_blogs的博客,具体网址如下:https://www.cnblogs.com/blogs-of-lxl/p/5152578.html 本文章仅供学习研究使用,如须转载请附 ...
- java最强的mtk平台_手机QQ塞班S60/JAVA/MTK平台系统升级
原标题:手机QQ塞班S60/JAVA/MTK平台系统升级 说到塞班S60系统,MTK系统以及支持JAVA的手机相信有些人都已经遗忘了,但是腾讯却没忘,这次腾讯专门对塞班.联发科.Kjava平台的手机Q ...
- android 性能优化---(2) MTK 平台开机时间优化
一.在工程模式开启MTKLogger, 开机后取日志bootprof adb pull /storage/emulated/0/mtklog/mobilelog/APLog_2018_0309_10 ...
- android camera 拍照流程,Android -- Camera源码简析,启动流程
com.android.camera.Camera.java,主要的实现Activity,继承于ActivityBase. ActivityBase 在ActivityBase中执行流程: onCre ...
- MTK平台点亮sensor以及mtk开机初始化
MTK点亮sensor Probe:上电–>matach id–>下电 Driver:Kernel部分和Hal部分 dtsi:主要配置GPI的上电逻辑,把camera的上电管脚与平台管脚相 ...
- Camera5 MTK camera驱动框架介绍
一.概序: 前文已经介绍了camera驱动部分的内容Camera4 MTK camera驱动结构介绍,这里在回顾下之前的框架图, 这篇主要介绍红框部分的内容: imgsensor起到承上启下的作用,在 ...
最新文章
- IIS托管管道模式的集成和经典
- 修改maven本地仓库位置
- php递归复制文件内容,PHP实现递归复制整个文件夹的类实例_php技巧
- C++ COM编程之接口背后的虚函数表
- 王之泰201771010131《面向对象程序设计(java)》第九周学习总结
- 进入一个目录需要那些权限
- 一个周内上线50个增长策略,竟然能这么高效!
- android中viewpager+fragment,Android开发之ViewPager+Fragment
- 二叉查找树及其C语言实现
- 假期还剩 2 天,Python 爬取途牛网,揭秘哪里人少景美!
- Linux SVN 服务器配置以及客户端使用
- python中help函数_Python help()函数
- Map与JSON数据之间的互相转化
- scholarscope不显示影响因子_一劳永逸:这两个查看影响因子的插件你安装了吗?...
- java docx4j 目录_使用Docx4j创建word文档
- 2:0战胜Dota2世界冠军OG,OpenAI发起全网挑战,不服来战!
- word/wps 实用技巧: 批量改大纲标题样式
- Excel常用技巧(一)——快捷键
- python中int函数的用法浅析_python中int函数怎么用,
- 数据库实验4 SQL语言-SELECT查询操作