S3C2440Camera驱动调试笔记

来源:互联网 发布:windows平板不好用 编辑:程序博客网 时间:2024/04/28 19:18

     调试一个星期终于算是搞定了,在Pre和Codec两个模式下的驱动都已经调试成功,现在记录下调试过程中的问题,以供以后或者网上朋友参考。

    Camera驱动采用标准的流接口驱动,弄CE的应该都很熟悉了,这里就不多说了,我主要说以下关键的函数,Cam_Init和CamInit这两个函数很重要,初始化的时候就靠这两个函数了,其中又以CamInit这个函数最为重要,这个函数把Pre和Codec模式下的配置参数都设置好,其中最容易出错的地方就是DMA缓存大小的设置,我就是在这个上出现了问题,在Camif.h文件里有两个宏:

                     #define Preview_Mem_Size   352*288*2*4

                     #define Codec_Mem_Size    1280*1024*3/2

这个一定要跟CamInit函数里的相关地方对应。

    另外在Virtual_Alloc这个函数里申请了DMA缓存,Pre和Codec有各自的缓存,一定不要弄混了,Display_Cam_Image函数是用来在Pre模式下实时显示的,这个比较简单,就是把数据直接拷贝到显示缓存里就行了,Copy_Cam_Image函数是用来在Codec模式下捕获一帧数据的,CameraCaptureThread这个线程就是用来完成工作的,开中断,关中断都是在这里面实现的。