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

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


¹ØÓÚLinuxµÄÊÓƵ±à³Ì(v4l2±à³Ì)
Posted on ÐÇÆÚÒ», 2ÔÂ 23rd, 2009 at 11:47 ÏÂÎç
Ô´ÎÄÀ´×Ôhttp://www.isongzi.com/2009/02/23/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


Ïà¹ØÎĵµ£º

ʵսLinux Bluetooth±à³Ì£¨ËÄ£© L2CAP²ã±à³Ì

£¨L2CAPЭÒé¼ò½é£¬L2CAPÔÚBlueZÖеÄʵÏÖÒÔ¼°L2CAP±à³Ì½Ó¿Ú£©
Ò»£ºL2CAPЭÒé¼ò½é£º
Logical Link Control and Adaptation Protocol(L2CAP)
Âß¼­Á¬½Ó¿ØÖƺÍÊÊÅäЭÒé (L2CAP) ΪÉϲãЭÒéÌṩÃæÏòÁ¬½ÓºÍÎÞÁ¬½ÓµÄÊý¾Ý·þÎñ£¬²¢Ìṩ¶àЭÒ鹦ÄܺͷָîÖØ×é²Ù×÷¡£L2CAP ³äÐíÉϲãЭÒéºÍÓ¦ÓÃÈí¼þ´«ÊäºÍ½ÓÊÕ×î´ó³¤¶ÈΪ 64K µÄ L2CAP Ê ......

linuxÄں˺¯Êý±Ê¼Ç(¶þ)

ÐźÅÖ¸¶¨´¦Àíº¯Êý
void (*signal (int signum,void (*handle)(int)))(int);ÉèÖÃij¸öÐźŵĴ¦Àí·½·¨
int sigaction(int signum,const struct sigaction *act,struct sigaction *oldact);ÓÃÓÚ¼ì²é»ò¸Ä±ä½ø³ÌÔÚ½Óµ½ÐźÅʱµÄ¶¯×÷
Ðźż¯²Ù×÷º¯Êý
static inline void sigaddset(sigset_t *set,int _sig);
static inline voi ......

LINUXϹØÓÚCPUÐÅÏ¢»ñÈ¡

1. TOP    ÃüÁî È»ºó°´“1”£¬¿ÉÒԲ鿴CPUÓжàÉÙ¸öºË¡£
2. less /proc/cpuinof ¿ÉÒԲ鿴 CPUÄں˸öÊý¼°¸ü¶àÄÚºËÐÅÏ¢¡£
3.dmesg |grep CPU ¿ÉÒÔºËʵCPUÄں˸öÊýÇÒ»ùÓÚ¶àÉÙ¸öÎïÀíCPU¼°ÏêϸÐÅÏ¢¡£
4.dmidecode |grep "CPU"  ¿ÉÒÔºËʵ¶àÉÙ¸öÎïÀíCPU¡£
ÁíÍâ  grep '' * ÓÐÃîÓ㬿ÉÒԲ鿴 ......

Ïê½âLinuxÄÚºË֮˫ÏòÑ­»·Á´±í(ת)

ÕªÒª: ±¾ÎÄÏê½âÁËÄÚºËÖÐÃæÏò¶ÔÏóµÄlist½á¹¹µÄÔ­Àí£¬ÒÔ¼°ÈçºÎÒÔlistΪÄÚǶ¶ÔÏóÀ´¹¹Ôì×Ô¼ºµÄÁ´±í½á¹¹£¬ÈçºÎ´ÓÄÚǶlist¶ÔÏó»ñµÃ×Ô¶¨ÒåµÄ¶ÔÏóÖ¸Õ룻̽ÌÖÁ˸÷ÖÖºê»òÕߺ¯ÊýµÄÏêϸʹÓ÷½·¨¼°ÔõÑùÒÔͨÓÃlist½á¹¹À´²Ù×÷×Ô¶¨Òå¶ÔÏó¡£
¹Ø¼ü×Ö:Ë«ÏòÑ­»·Á´±í£¬list£¬list_entry£¬typeof£¬containerof£¬list_for_each,list_for_each ......

Òѽâ¾ö£ºLinuxÖÐÓÃsocketʵÏÖÊÓƵ¡¢ÒôƵµÄͬ²½´«Êä

Òѽâ¾ö£ºLinuxÖÐÓÃsocketʵÏÖÊÓƵ¡¢ÒôƵµÄͬ²½´«Êä
Posted on ÐÇÆÚËÄ, 4ÔÂ 23rd, 2009 at 1:55 ÉÏÎç
Ô´ÎÄÀ´×Ôhttp://www.isongzi.com/2009/04/23/Òѽâ¾ö£ºlinuxÏÂÓÃsocketʵÏÖÊÓƵ¡¢ÒôƵµÄͬ²½´«Êä/
ÔÚ֮ǰµÄһƪÎÄÕÂÀïÒѾ­Ìáµ½¹ýÊÓƵ¡¢ÉùÒôµÄͬ²½´«ÊäÎÊÌ⣬µ±Ê±ÏëÁ˼¸¸ö·½°¸£¬µ±È»¶¼ÊǺܲ»³ÉÊìµÄÏë·¨¡£ÓÐЩÊÂÇéÖ»ÓÐ×öÁË ......
© 2009 ej38.com All Rights Reserved. ¹ØÓÚE½¡ÍøÁªÏµÎÒÃÇ | Õ¾µãµØͼ | ¸ÓICP±¸09004571ºÅ