LinuxÇý¶¯ USB
USBÊÇ´ó¼Ò³£¼ûµÄ£¬É豸×ÜÏß¡£ Õâ¸öUSB·ÖΪÁ½¸ö²¿·Ö£ºÖ÷»ú£¬É豸¡£ ËûÊÇÒ»¸öÊ÷ÐεĹØϵ£º Ö÷»ú
É豸 É豸 É豸 Ö÷»úÀï×°µÄÊÇ£¬Ö÷»ú¿ØÖÆÆ÷£¬É豸ÖÐ×°µÄÊÇÉ豸¿ØÖÆÆ÷ Host Controller ºÍ UDC ´ÓÖ÷»ú²à¿´ ´ÓÉ豸²à¿´ USBÉ豸Çý¶¯ GadgetÇý¶¯ USBºËÐÄ Gadget API USBÖ÷»ú¿ØÖÆÆ÷Çý¶¯ UDCÇý¶¯ USB¿ØÖÆÆ÷ USB¿ØÖÆÆ÷ ÔÚÖ÷»ú²àҪʵÏÖµÄÇý¶¯ÓÐÁ½²¿·Ö£¬USBÉ豸Çý¶¯ºÍUSBÖ÷»ú¿ØÖÆÆ÷Çý¶¯¡£Ïֽ׶ÎÎÒÃÇÏȹØ×¢£¬ÏÂÃæµÄ¡£Ö÷»ú¿ØÖÆÆ÷Çý¶¯¡£ ÔÚÉ豸²à·ÖΪ3¸ö²ã´Î£¬UDCÇý¶¯¡¢Gadget API¡¢Gadget Çý¶¯¡£ÆäÖеÄUSB¿ØÖÆÆ÷£¬ÓëÖ÷»ú²àµÈͬ¡£ LinuxÖУ¬USBÉ豸ÓÃusb_device½á¹¹Ç÷ÃèÊö£¬¶øUSBÉ豸ÃèÊö·û¶¨ÒåΪusb_device_descriptor½á¹¹Ìå.
usbÅäÖÃÔÚÄÚºËÖÐʹÓÃusb_host_config½á¹¹Ìå, USBÅäÖÃÃèÊö·ûÓÃusb_config_descriptor½á¹¹Ìå,
usb½Ó¿Ú£ºusb_interface½á¹¹ÌåÃèÊö£¬usb½Ó¿ÚÃèÊö·û¶¨ÒåΪ½á¹¹Ìåusb_interface_descriptor½á¹¹Ì壬
usb¶Ëµã£º¶ËµãÔÚÄÚºËÖÐÓÃusb_host_endpoint½á¹¹ÌåÃèÊö£¬¶ø¶ËµãÃèÊö·ûÔò¶¨ÒåΪusb_endpoint_descriptor½á¹¹Ì壬
ÕâÑùÎÒÃǾͿÉÒÔ°ÑÒ»¸öUSBÉ豸³éÏó³ÉÒ»¸öÓÉËĸö»ù±¾ÔªËØ×é³ÉµÄ£¬¶ÔÏó¡£ÆäÖл¹ÓÐÒ»¸öÊÂ×Ö·û´®½á¹¹Ì壬usb_string_descriptor½á¹¹Ìå¡£
Ïà¹ØÎĵµ£º
£¨1£©²é¿´Ê±ÖÓÖжϣº
$ cat /proc/interrupts
CPU0
0: 1380471 IO-APIC-edge timer
1: 3626 IO-APIC-edge i8 ......
1.×Ö·ûÉ豸Óë¿éÉ豸IO²Ù×öµÄÇø±ð
1)¿éÉ豸ֻÄÜÒÔ¿éΪµ¥Î»½ÓÊÕÊäÈë·µ»ØÊä³ö,¶ø×Ö·ûÉ豸ÔòÒÔbyteΪµ¥Î».´ó¶àÊýÉ豸ÊÇ×Ö·ûÉ豸,ËûÃDz»ÐèÒª»º³å²¢ÇÒ²»ÒԹ̶¨¿é´óС½øÐвÙ×÷.
2)¿éÉ豸¶ÔÓÚIOÇëÇóÓжÔÓ¦µÄ»º³åÇø,ËùÒÔËûÃÇ¿ÉÒÔÑ¡ÔñÒÔʲô˳Ðò½øÐÐÏìÓ¦.×Ö·ûÉ豸ÎÞÐ뻺³åÇÒ±»Ö±½Ó¶Áд.
3)×Ö·ûÉ豸ֻÄܱ»Ë³Ðò¶Áд, ......
qtĬÈϵıà³ÌÓïÑÔΪC++ÓïÑÔ¡£Èç¹ûÄãÓÃqt±àÒë.cÎļþ£¬»á³öÏÖÕÒ²»µ½CÓïÑÔµÄĬÈÏÍ·ÎļþµÈ´íÎó£¨È磺stdio.hµÈ£©¡£qtÖв»Ö§³Ö
extern "C"{}µÄÕâÖÖд·¨£¬ÎÒÇ°¼¸ÌìÓÐÒ»¸öC³ÌÐòÐèÒªÒÆÖ²µ½QtµÄ¹¤³ÌÖУ¬±¾Ï£ÍûÖ±½Óextern "C"¾ÍokÁË£¬µ«·¢ÏÖqt4¾ÓÈ»²»Ö§³ÖÕâÖÖд·¨¡£ÎҵijÌÐòÖÐÓõ½Á˺ü¸¸ölinuxϵͳͷÎļþ£¬ÊÇÏò´®¿Ú·¢Ö¸ÁîÖ®ÀàµÄ³ÌÐò ......
д¸øLinuxÄÚºËÐÂÊÖ-¹ØÓÚLinuxÄÚºËѧϰµÄÎóÇø
albcamus
http://bbs.chinaunix.net/viewthread.php?tid=626486
¡¡¡¡ÏÈ˵¾äÕý¾µÄ£ºÆäʵÎÒû×ʸñдÕâƪÎÄÕ£¬ÒòΪ×Ô¼ºÒ²¾ÍÒ»Á½¸öÔÂÒÔÀ´²Å¿ªÊ¼ÓÐËùÁìÎòµÄ¡£Òò´Ë£¬ÕâÀïÓëÆä˵ÊǹØÓÚLinuxÄÚºËѧϰµÄ¾Ñ飬²»Èç˵ÊÇ×Ô¼ºµÄ½Ìѵ°É£¬Ï£Íû²»ÒªÈÓ¼¦µ°ÔÒÎÒ^_^
¡¡¡¡¡¡³£³£ÓÐÈËÎÊ£ºÎÒÏëÑ ......