由于近期在研究Android的一些视频通话的一些技术,所以很快就发现实现摄像头的驱动成为必须研究的课题。下面是在telechips公司提供的Android SDK中已经包含的GT2005型号sensor的部分驱动代码。虽然已经有了比较完善的驱动代码,但是我TCC8902板子上的GT2005摄像头还是没能preview出图像来,最近一直在试图进行各种方法的调试和分析。最后觉得硬着头皮来好好研究GT2005 camera的driver,我会分几期来进行分析,如果有不正确的地方,非常欢迎指正。

 

下面的代码是GT2005_2mp.h(GT2005 2百万像素摄像头头文件)

 

从上面的代码可以看出,GT2005摄像头涉及到了I2C总线协议,因为它在发送命令和接受数据时,都是通过I2C总线的方式来完成的。

上面比较重要的数据结构是:

(1)struct sensor_reg ,它提供的是一个键值对:寄存器号 、 寄存器的值,这样定义的目的是在进行初始化等各种操作时,能够很方便的由寄存器号获得寄存器值,进行I2C总线的读写。

(2)struct capture_size ,它定义了capture后的image的width、heigth。

(3)extern void sensor_init_fnc(SENSOR_FUNC_TYPE *sensor_func);

这个函数用于注册GT2005_2mp.c中实际提供给上层应用程序的接口函数。

SENSOR_FUNC_TYPE类型是在 sensor_if.c/.h中定义的。

 

下面是GT2005_2mp.c 实现文件

 

 

GitHub 加速计划 / li / linux-dash
6
1
下载
A beautiful web dashboard for Linux
最近提交(Master分支:3 个月前 )
186a802e added ecosystem file for PM2 4 年前
5def40a3 Add host customization support for the NodeJS version 4 年前
Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐