原本以为android下支持自己的camera会比较麻烦,没想到还真是简单了点~~~ 呵呵
因为wince下有做过camera驱动,所以有直接可用的相关参数和寄存器列表。 模块为FLBM26 0.3MP Camera module。
找了些资料介绍看了看,然后就动手了,锁定在drivers/media/video/samsung/camera中,原来已经有s5k4ba.c这个
驱动,这下可容易多了,复制一份,改名,修改Kconfig和Makefile,将flbm26.c加进去。
接下来就是将flbm26.h里的内容带“s5k4ba”字样的全部修改为"flbm26"的字样,替换就可以了,其实不换也可以只是这样就显得不
正规了,然后主要是要将寄存器列表写到相应的数组下,因为flbm26也就只有一个640x480,所以写入VGA和init两个部分,其他分辨率
的数组让它空着。
flbm26.c中修改接口类型 format order clock source_x source_y reset_type pclk vsync href ,然后编译,烧写进去后,点
“camera”图标,程序启动,sensor有工作起来,但图像看起来不正常,查看终端,发现有输出“Resolution changed into SVGA
(800x600) mode”而我的分辨率是640x480, 找到此信息在s3c_camera_driver.c中s3c_camif_change_mode()函数打出,仔细查看原来
在这个文件中还有设置分辨率的定义,于是在此文件中搜索CONFIG_VIDEO_SAMSUNG_S5K4BA,将几个地方都改成SENSOR_VGA,然后编译
烧写,点"camera"图标,正常图像全屏显示在屏幕上!!!
本文原创,如需转载,请包含此地址信息:
http://blog.csdn.net/knock