【MediaTek X20开发板试用体验】无人机添加camera驱动移过程分享  

分享到:

Maybe
Level 0
注册时间:8年 前
帖子数: 2
2016年12月30日 上午11:10  

自己打的camera子板终于回来了,可以调试camera了!

现将camera驱动移植过程跟大家交流下,主要通过:

 1.解析下代码位置及作用

 2.驱动匹配解析

 3.如何添加一个camera

1.先解析下代码位置及作用

 

2.驱动匹配解析

 

一张老图表述下camera的工作流程:

图中流程主要发生在两个时间点:开机过程中camera的动作以及打开应用时camera的动作。开机时,camera完成了sensor框架的初始化,id检测,以及上下电操作;打开应用时,camera会有上电,完成寄存器的初始配置,向上层传送基本参数及配置信息,以及previewcapture模式循环。

 

开机时会有初始化流程:

因为是由I2c控制的所以会将camera控制部分也注册成为一个新的device,并添加到平台总线上:

Platform 总线为虚拟总线,注册platform driver 主要目的是隔离上下层,增强代码的可移植性。

主要的交互功能要靠ioctl来完成,沟通上下层,提供接口:

包括camera开机过程中上电,id检测以及imagesensor的参数获取:

通过 NAME  ID 匹配完成后会将 PSENSOR_FUNCTION_STRUCT *pfFunc这个结构体匹配到具体型号的驱动代码中。

到这里,整个Camera驱动从总线注册到完成具体sensor的初始化的流程就完成了。

 

3.  如何添加一个camera

那么如何添加一个新的camera呐?

Mtk已经做了很完善的架构,要添加一颗经过MTK平台认可的camera其实很简单,当然首先要拿到一颗camera,然后要有该摄像头的相关驱动,那么就可以按照该步骤进行添加:

1.修改系统配置文件 ProjectConfig.mk,里面有主摄像头等配置sensor名务必要跟加载的imgsernsor下的驱动文件夹名称相同;

2.修改configs<project>_debug_defconfig里面的相关匹配项;

3.检查配置供电文件kd_camera_hw.c,这个文件是 MTK 专门用于 sensor 上电时序管理的文件,各个 sensor 的上电均在这边实现;

camera是否能够按照规格书上下电顺序进行上下电操作;在该文件中其实只有该函数,在使用时要注意gpio的相关定义。

4.在\imgsensor\src\mt6797添加自己的keranelcamera驱动;

  kd_sensorlist.h中添加当前camera

    有关camera就跟大家分享到这里,欢迎交流讨论!

编辑:7年 前

回复引用
  
Working

登陆 或者 注册