25.2.1 LinuxÄÚºËUSBÇý¶¯¿ò¼Ü
25.2.1 LinuxÄÚºËUSBÇý¶¯¿ò¼Ü
ͼ25-2ÊÇLinuxÄں˴ÓÖ÷»úºÍÉ豸Á½¸ö½Ç¶È¹Û²ìUSB×ÜÏ߽ṹµÄʾÒâͼ¡£
´Óͼ25-2ÖпÉÒÔ¿´³ö£¬LinuxÄÚºËUSBÇý¶¯ÊÇ°´ÕÕÖ÷»úÇý¶¯ºÍÉ豸Çý¶¯Á½Ì×ÌåϵʵÏֵģ¬ÏÂÃæ½éÉÜÁ½Ì×ÌåϵµÄ½á¹¹ºÍÌص㡣
1£®»ù±¾½á¹¹
ͼ25-2µÄ×ó²àÊÇÖ÷»úÇý¶¯½á¹¹¡£Ö÷»úÇý¶¯µÄ×îµ×²ãÊÇUSBÖ÷»ú¿ØÖÆÆ÷£¬ÌṩÁËOHCI/EHCI/UHCIÕâ3ÖÖÀàÐ͵Ä×ÜÏß¿ØÖƹ¦ÄÜ¡£ÔÚUSB¿ØÖÆÆ÷µÄÉÏÒ»²ãÊÇÖ÷»ú¿ØÖÆÆ÷µÄÇý¶¯£¬·Ö±ð¶ÔÓ¦OHCI/EHCI/UHCIÕâ3ÖÖÀàÐ͵Ä×ÜÏß½Ó¿Ú¡£USBºËÐIJ¿·ÖÁ¬½ÓÁËUSB¿ØÖÆÆ÷Çý¶¯ºÍÉ豸Çý¶¯£¬ÊÇÁ½ÕßÖ®¼äµÄת»»½Ó¿Ú¡£USBÉ豸Çý¶¯²ãÌṩÁ˸÷ÖÖÉ豸µÄÇý¶¯³ÌÐò¡£
USBÖ÷»ú²¿·ÖµÄÉè¼Æ½á¹¹ÍêÈ«ÊÇ´ÓUSB×ÜÏßÌصã³ö·¢µÄ¡£ÔÚUSB×ÜÏßÉÏ¿ÉÒÔÁ¬½Ó¸÷ÖÖ²»Í¬ÀàÐ͵ÄÉ豸£¬°üÀ¨×Ö·ûÉ豸¡¢¿éÉ豸ºÍÍøÂçÉ豸¡£ËùÓÐÀàÐ͵ÄUSBÉ豸¶¼ÊÇÓÃÏàͬµÄµçÆø½Ó¿Ú£¬Ê¹ÓõĴ«ÊäÐÒéÒ²»ù±¾Ïàͬ¡£ÏòÓû§ÌṩijÖÖÌض¨ÀàÐ͵ÄUSBÉ豸ʱ£¬ÐèÒª´¦ÀíUSB×ÜÏßÐÒé¡£ÄÚºËÍê³ÉËùÓеÄUSB×ÜÏßÐÒé´¦Àí£¬²¢ÇÒÏòÓû§Ìṩ±à³Ì½Ó¿Ú¡£
ͼ25-2 LinuxÄÚºËUSB×ÜÏ߽ṹ
ͼ25-2ÓÒ²àÊÇÉ豸Çý¶¯½á¹¹¡£ÓëUSBÖ÷»úÀàËÆ£¬USBÉ豸ÌṩÁËÏàͬµÄ²ã´Î½á¹¹ÓëÖ®¶ÔÓ¦¡£µ«ÊÇÔÚUSBÉ豸һ²àʹÓÃÃûΪGadget APIµÄ½á¹¹×÷ΪºËÐÄ¡£Gadget APIÊÇLinuxÄÚºËʵÏֵĶÔÓ¦USBÉ豸µÄºËÐĽṹ¡£Gadget APIÆÁ±ÎÁËUSBÉ豸¿ØÖÆÆ÷µÄϸ½Ú£¬¿ØÖƾßÌåµÄUSBÉ豸ʵÏÖ¡£
2£®É豸
ÿ¸öUSBÉ豸ÌṩÁ˲»Í¬¼¶±ðµÄÅäÖÃÐÅÏ¢¡£Ò»¸öUSBÉ豸¿ÉÒÔ°üº¬Ò»¸ö»ò¶à¸öÅäÖ㬲»Í¬µÄÅäÖÃʹÉ豸±íÏÖ³ö²»Í¬µÄÌص㡣ÆäÖУ¬É豸µÄÅäÖÃÊÇͨ¹ý½Ó¿Ú×é³ÉµÄ¡£LinuxÄں˶¨ÒåÁËUSBÉ豸ÃèÊö½á¹¹ÈçÏ£º
struct usb_device_descriptor {
__u8 bLength; // É豸ÃèÊö·û³¤¶È
__u8 bDescriptorType; // É豸ÀàÐÍ
__le16 bcdUSB; // USB°æ±¾ºÅ£¨Ê¹ÓÃBCD±àÂ룩
__u8 bDeviceClass; // USBÉ豸ÀàÐÍ
__u8 bDeviceSubClass; // USBÉ豸×ÓÀàÐÍ
__u8 bDeviceProtocol; // USBÉ豸ÐÒéºÅ
Ïà¹ØÎĵµ£º
£¨L2CAPÐÒé¼ò½é£¬L2CAPÔÚBlueZÖеÄʵÏÖÒÔ¼°L2CAP±à³Ì½Ó¿Ú£©
Ò»£ºL2CAPÐÒé¼ò½é£º
Logical Link Control and Adaptation Protocol(L2CAP)
Âß¼Á¬½Ó¿ØÖƺÍÊÊÅäÐÒé (L2CAP) ΪÉϲãÐÒéÌṩÃæÏòÁ¬½ÓºÍÎÞÁ¬½ÓµÄÊý¾Ý·þÎñ£¬²¢Ìṩ¶àÐÒ鹦ÄܺͷָîÖØ×é²Ù×÷¡£L2CAP ³äÐíÉϲãÐÒéºÍÓ¦ÓÃÈí¼þ´«ÊäºÍ½ÓÊÕ×î´ó³¤¶ÈΪ 64K µÄ L2CAP Ê ......
Á÷ýÌåÖ¸µÄÊÇÔÚÍøÂçÖÐʹÓÃÁ÷¼¼Êõ´«ÊäµÄÁ¬Ðøʱ»ùýÌ壬ÆäÌصãÊÇÔÚ²¥·ÅÇ°²»ÐèÒªÏÂÔØÕû¸öÎļþ£¬¶øÊDzÉÓñßÏÂÔر߲¥·ÅµÄ·½Ê½£¬ËüÊÇÊÓƵ»áÒé¡¢IPµç»°µÈ
Ó¦Óó¡ºÏµÄ¼¼Êõ»ù´¡¡£RTPÊǽøÐÐʵʱÁ÷ýÌå´«ÊäµÄ±ê×¼ÐÒéºÍ¹Ø¼ü¼¼Êõ£¬±¾ÎĽéÉÜÈçºÎÔÚLinuxÏÂÀûÓÃJRTPLIB½øÐÐʵʱÁ÷ýÌå±à³Ì¡£
&nb ......
Linux²Ù×÷ϵͳ½ü¼¸ÄêÓÐÁËÅµÄ·¢Õ¹£¬ÔÚÕû¸öÊÀ½ç·¶Î§Äڵõ½ÁËÔ½À´Ô½¶à¹«Ë¾ºÍÍÅÌåµÄÖ§³Ö£¬ÓÈÆäÊÇ×î½üIBM¹«Ë¾µÄ¶¦Á¦Ö§³Ö£¬¸üÊÇʹLinux·þÎñÆ÷È绢ÌíÒí£¬¸üÉÏÒ»²ãÂ¥¡£¶øÔÚ¹úÄÚ£¬LinuxµÄÓ¦ÓÃÒ²ÊÇ·½ÐËδ°¬£¬Öڶ๫˾ÒѾͶÈëµ½LinuxϵͳµÄÑз¢ºÍÍƹ㹤×÷ÖС£Ò»Ð©ÓÅÐãµÄLinux²Ù×÷ϵͳÏà¼Ì³öÏÖ£¬±ÈÈçºìÆìLinuxµÈ¡£µ«ÊÇÎÒ¹úµÄLinuxÓ¦ ......
ǶÈëʽlinuxÖеÄlcdÇý¶¯·ÖÎö
×÷Õߣº½ÜÖÞ´åµÄľÃÞ Ñ§Ð££º¹ã¶«¹¤Òµ´óѧ QQ£º568109894
Ô´ÎÄÀ´×Ôhttp://luwenchao100.blog.hexun.com/23060194_d.html
......
¿ÉÒÔ²ÉÓÃsysVµÄshmget £« shmat ʵÏÖ¡£
µ«ÊÇÎÒ¸üϲ»¶shm_open + mmap ¸ü¼òµ¥¡£
#---------------------writer.c----------------------------
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <unistd.h>
#include <stdlib.h>
#include <stdio.h>
......