开发板上的arm是AT91RM9200,摄像头选用的是网眼的pc350,主控芯片是ov511+。系统内核是2.4,宿主机是fedora core 6,交叉编译器是2.95.3。就是这些家底了,:-)。
一 驱动加载
ov511的驱动,2.4的内核中就有,所以我们只需重新编译内核,将下边的选项都选上,然后重新烧写内核就可以了。:-),也就是直接静态加载,我喜欢一劳永逸,:-),试验阶段还是动态的好。
(1)在arm linux的kernel目录下make menuconfig。
(2)首先(*)选择Multimedia device->下的Video for linux。加载video4linux模块,为视频采集设备提供编程接口;
(3)然后在usb support->目录下(*)选择support for usb和usb camera ov511 support。这使得在内核中加入了对采用OV511接口芯片的USB数字摄像头的驱动支持。
(4)保存配置退出。
(5)make dep;make zImage就生成了带有ov511 驱动的内核。
接下来就通过uboot将内核烧到flash里去。这时你将摄像头插上,系统就会提示发现摄像头-ov511+,这说明驱动正常。:-),驱动加载就成功了,下一步就是图像采集了。
二 图像获取
关于图像采集,我用的是一个开源软件,就是德国人做的抓图程序:vgrabbj。
第一步当然就是down下来,然后交叉编译了,可是不幸的是我们的编译器就是那个伟大的2.95.3里东东不够多,缺少一些库文件了(zlib,jpge,png)。所以我们首先要充实一下自己的家底,交叉编译这三个库文件了。
1.首先安装 zlib 库,这个是后面的库的编译基础。这个是下载地址:
400多K,去下载吧。
解压# tar -zxvf zlib-1.2.3.tar.gz
进入zlib-1.2.3目录下
#cdzlib-1.2.3
配置,由于 zlib 库的configure 脚本不支持交叉编译选项,所以我们首先设置CC
# export CC=arm-linux-gcc
# ./configure --prefix=/usr/local/arm/2.95.3/arm-linux/ --sh