Ò׽ؽØͼÈí¼þ¡¢µ¥Îļþ¡¢Ãâ°²×°¡¢´¿ÂÌÉ«¡¢½ö160KB

¹ØÓÚLinuxµÄÊÓƵ±à³Ì(v4l2±à³Ì)(ת£©


Ç°ÑÔ£ºÄ¿Ç°ÕýÔÚæÓÚARMƽ̨µÄLinuxÓ¦ÓóÌÐòµÄ¿ª·¢£¨ÆäʵÊǸոÕÆð²½Ñ§Ï°À²£©¡£µ×²ãµÄ¶«Î÷²»Óÿ¼ÂÇÁË£¬¿ª·¢°å×ÓÌṩÁËNAND Bootloader£¬ºÍLinux 2.6µÄÔ´Â룬¶øÇÒ¶¼±àÒëºÃÁË¡£×Ô¼º±àÒëµÄbootloader¿ÉÒÔÓ㬵«ÊÇLinux±àÒëºó£¬ÎļþºÜ´ó£¬ÔÝÇÒ¾ÍÓÃÈ˼ұàÒëµÄϵͳ£¬ÏÈרÐÄдӦÓóÌÐò °É¡£¡£
ÕýÎÄ£ºÒª×öµÄÈÎÎñÊÇ£¬°ÑÒ»¿é°å×ÓÉϵÄÉãÏñÍ·²É¼¯µÄͼÏñºÍÉù¿¨²É¼¯µÄÉùÒô£¨Ã²ËƺÜ啰à¹þ£©Í¨¹ýTCP/IPЭÒé´«Êäµ½ÁíÒ»¿é°å×ÓÉÏ¡£µÚÒ»²½£¬ÏÈ°ÑÊÓƵ»ñÈ¡²¢ÇÒÔÚ±¾µØLCDÉÏÏÔʾ¡£¿´ÁË°å×ÓÌṩµÄÎĵµ£¬ÊÓƵ´«ÊäÐèÒªÓÃV4L2µÄAPI¡£
Ò».ʲôÊÇvideo4linux
Video4linux2£¨¼ò³ÆV4L2),ÊÇlinuxÖйØÓÚÊÓƵÉ豸µÄÄÚºËÇý¶¯¡£ÔÚLinuxÖУ¬ÊÓƵÉ豸ÊÇÉ豸Îļþ£¬¿ÉÒÔÏñ·ÃÎÊÆÕͨÎļþÒ»Ñù¶ÔÆä½øÐжÁд£¬ÉãÏñÍ·ÔÚ/dev/video0Ï¡£
¶þ¡¢Ò»°ã²Ù×÷Á÷³Ì£¨ÊÓƵÉ豸£©£º
1. ´ò¿ªÉ豸Îļþ¡£ int fd=open(”/dev/video0″,O_RDWR);
2. È¡µÃÉ豸µÄcapability£¬¿´¿´É豸¾ßÓÐʲô¹¦ÄÜ£¬±ÈÈçÊÇ·ñ¾ßÓÐÊÓƵÊäÈë,»òÕßÒôƵÊäÈëÊä³öµÈ¡£VIDIOC_QUERYCAP,struct v4l2_capability
3. Ñ¡ÔñÊÓƵÊäÈ룬һ¸öÊÓƵÉ豸¿ÉÒÔÓжà¸öÊÓƵÊäÈë¡£VIDIOC_S_INPUT,struct v4l2_input
4. ÉèÖÃÊÓƵµÄÖÆʽºÍÖ¡¸ñʽ£¬ÖÆʽ°üÀ¨PAL£¬NTSC£¬Ö¡µÄ¸ñʽ¸ö°üÀ¨¿í¶ÈºÍ¸ß¶ÈµÈ¡£
VIDIOC_S_STD,VIDIOC_S_FMT,struct v4l2_std_id,struct v4l2_format
5. ÏòÇý¶¯ÉêÇëÖ¡»º³å£¬Ò»°ã²»³¬¹ý5¸ö¡£struct v4l2_requestbuffers
6. ½«ÉêÇëµ½µÄÖ¡»º³åÓ³Éäµ½Óû§¿Õ¼ä£¬ÕâÑù¾Í¿ÉÒÔÖ±½Ó²Ù×÷²É¼¯µ½µÄÖ¡ÁË£¬¶ø²»±ØÈ¥¸´ÖÆ¡£mmap
7. ½«ÉêÇëµ½µÄÖ¡»º³åÈ«²¿Èë¶ÓÁУ¬ÒÔ±ã´æ·Å²É¼¯µ½µÄÊý¾Ý.VIDIOC_QBUF,struct v4l2_buffer
8. ¿ªÊ¼ÊÓƵµÄ²É¼¯¡£VIDIOC_STREAMON
9. ³ö¶ÓÁÐÒÔÈ¡µÃÒѲɼ¯Êý¾ÝµÄÖ¡»º³å£¬È¡µÃԭʼ²É¼¯Êý¾Ý¡£VIDIOC_DQBUF
10. ½«»º³åÖØÐÂÈë¶ÓÁÐβ,ÕâÑù¿ÉÒÔÑ­»·²É¼¯¡£VIDIOC_QBUF
11. Í£Ö¹ÊÓƵµÄ²É¼¯¡£VIDIOC_STREAMOFF
12. ¹Ø±ÕÊÓƵÉ豸¡£close(fd);
Èý¡¢³£ÓõĽṹÌå(²Î¼û/usr/include/linux/videodev2.h)£º
struct v4l2_requestbuffers reqbufs;//ÏòÇý¶¯ÉêÇëÖ¡»º³åµÄÇëÇó£¬ÀïÃæ°üº¬ÉêÇëµÄ¸öÊý
struct v4l2_capability cap;//Õâ¸öÉ豸µÄ¹¦ÄÜ£¬±ÈÈçÊÇ·ñÊÇÊÓƵÊäÈëÉ豸
struct v4l2_input input; //ÊÓƵÊäÈë
struct v4l2_standard std;//ÊÓƵµÄÖÆʽ£¬±ÈÈçPAL£¬NTSC
struct v4l2_format fmt;//Ö¡µÄ¸ñʽ£¬±ÈÈç¿í¶È£¬¸ß¶ÈµÈ
struct v4l2_buffer buf;//´ú±íÇý¶¯ÖеÄÒ»Ö¡
v4l2_std_id stdid;//ÊÓƵÖÆʽ£¬ÀýÈ磺V4L2_STD_PAL_B


Ïà¹ØÎĵµ£º

Linux³£ÓÃÍøÂçÃüÁî

# ifconfig               # ²é¿´ËùÓÐÍøÂç½Ó¿ÚµÄÊôÐÔ
# iptables -L            # ²é¿´·À»ðǽÉèÖÃ
# route -n             ......

Linux¿éÉ豸Çý¶¯

ÎÄÕÂÀ´Ô´£ºhttp://blog.chinaunix.net/u3/94284/showart_1970946.html
¿éÉ豸Çý¶¯£¨Ò»£©
¸ÅÀ¨£º
¿éÉ豸Çý¶¯µÚÒ»¸ö¹¤×÷ͨ³£ÊÇ×¢²á×Ô¼ºµ½Äںˣ¬ÊÇͨ¹ýregister_blkdevÍê³ÉµÄ£¬ËäÈ»register_blkdev¿ÉÓÃÀ´»ñµÃÒ»¸öÖ÷É豸ºÅ£¬µ«ÊÇËü²»Ê¹´ÅÅÌÇý¶¯Æ÷¶Ôϵͳ¿ÉÓã¬ÓÐÒ»¸ö·Ö¿ªµÄ×¢²á½Ó¿ÚÄã±ØÐëʹÓÃÀ´¹ÜÀíµ¥¶ÀµÄÇý¶¯Æ÷£¬Ê¹ÓÃÕâÒ»½Ó¿ ......

LinuxÏÂÀûÓÃÐźÅÁ¿ÊµÏÖPV²Ù×÷





¼ÙÉèÁ½¸ö½ø³Ì£¨¸¸×Ó½ø³Ì£©¶ÔÒ»¸öÎļþ½øÐÐд²Ù×÷£¬µ«ÊÇÕâ¸öÎļþͬһʱ¼äÖ»ÄÜÓÐÒ»¸ö½ø³Ì½øÐÐд²Ù×÷¡£
//ÀûÓÃÐźÅÁ¿ÊµÏÖpv²Ù×÷
#include <stdio.h>
#include <stdlib.h>
#include <sys/ipc.h>
#include <sys/sem.h>
#include < ......

Linux makefile ½Ì³Ì ·Ç³£Ïêϸ£¬ÇÒÒ׶®

 ×î½üÔÚѧϰLinuxϵÄC±à³Ì£¬ÂòÁËÒ»±¾½Ð¡¶Linux»·¾³ÏµÄC±à³ÌÖ¸ÄÏ¡·¶Áµ½makefile¾ÍÔ½¿´Ô½ÃÔºý£¬¿ÉÄÜÊÇÎÒµÄÀí½âÄܲ»ÐС£
            ÓÚÊÇgoogleµ½ÁËÒÔÏÂÕâƪÎÄÕ¡£Í¨Ë×Ò׶®¡£È»ºó°ÑËüÌù³öÀ´£¬·½±ãѧϰ¡£
        & ......

¹ØÓÚlinuxµÄÊØ»¤½ø³Ì

Linux·þÎñÆ÷ÔÚÆô¶¯Ê±ÐèÒªÆô¶¯ºÜ¶àϵͳ·þÎñ£¬ËüÃÇÏò±¾µØºÍÍøÂçÓû§ÌṩÁËLinuxµÄϵͳ¹¦Äܽӿڣ¬Ö±½ÓÃæÏòÓ¦ÓóÌÐòºÍÓû§¡£ÌṩÕâЩ·þÎñµÄ³ÌÐòÊÇÓÉÔËÐÐÔÚºǫ́µÄÊØ»¤½ø³Ì£¨daemons£©À´Ö´Ðеġ£ÊØ»¤½ø³ÌÊÇÉú´æÆÚ³¤µÄÒ»ÖÖ½ø³Ì¡£ËüÃǶÀÁ¢ÓÚ¿ØÖÆÖն˲¢ÇÒÖÜÆÚÐÔµÄÖ´ÐÐijÖÖÈÎÎñ»òµÈ´ý´¦ÀíijЩ·¢ÉúµÄʼþ¡£ËûÃdz£³£ÔÚϵͳÒýµ¼×°ÈëʱÆô¶ ......
© 2009 ej38.com All Rights Reserved. ¹ØÓÚE½¡ÍøÁªÏµÎÒÃÇ | Õ¾µãµØͼ | ¸ÓICP±¸09004571ºÅ