usb_hcd_omap_probe (const struct hc_driver *driver) (dev/ohci/ohci-omap.c)
ÔÚÄ£¿é³õʼ»¯Ê±±»platform_driver_register()µ÷Óã¬ÓÃÀ´³õʼ»¯Óëohci_hcd_omap_driver
ÏàÆ¥ÅäµÄusbÖ÷¿ØÖÆÆ÷.
->usb_create_hcd(driver); ´´½¨Ò»¸ö´ú±íhost-controllerµÄÊý¾Ý½á¹¹(struct usb_hcd)²¢³õʼ»¯ core/hcd.h
->hcd = kzalloc(sizeof(*hcd) + driver->hcd_priv_size, GFP_KERNEL); Ϊstruct usb_hcd·ÖÅäÒ»¿éÄÚ´æ
->usb_bus_init (struct usb_bus *bus); (hcd.c) ³õʼ»¯´ú±íusb busµÄÊý¾Ý½á¹¹(struct usb_bus)
->³õʼ»¯struct usb_hcdµÄ¶¨Ê±Æ÷£¬¹¤×÷¶ÓÁÐ
->Ìî³ästruct usb_hcdµÄrsrc_start×ֶΣºhost-controller memory/ioµÄÆðʼÎïÀíµØÖ·
rsrc_len×ֶΣºhost-controller memory/ioµÄ³¤¶È
regs×ֶΣºhost-controller memory/ioÓ³ÉäµÄÄÚºËÐéÄâµØÖ·¡£
->ohci_hcd_init(struct ohci_hcd *ohci); (dev/ohci/ohci-mem.c)
->usb_add_hcd(struct usb_hcd *hcd,unsigned int irqnum, unsigned long irqflags) (/core/hcd.h)
Íê³Éstruct usb_hcdÊ£ÓàµÄ³õʼ»¯¹¤×÷
->hcd_buffer_create(hcd):´´½¨dmapool
->usb_register_bus(usb_bus):×¢²á ......
NO
·ÖÀà
PS1
ÃüÁîÃû
Ó÷¨¼°²ÎÊý
¹¦ÄÜ×¢½â
1
ÏÔʾĿ¼ÐÅÏ¢
#
ls
ls -a
Áгöµ±Ç°Ä¿Â¼ÏµÄËùÓÐÎļþ£¬°üÀ¨ÒÔ.Í·µÄÒþº¬Îļþ
#
ls
ls -l»òll
Áгöµ±Ç°Ä¿Â¼ÏÂÎļþµÄÏêϸÐÅÏ¢
#
ls
ls -a
ÏÔʾËùÓÐÎļþ£¬°üº¬Òþ²Ø¡£
#
ls
ls -al
ÏÔʾËùÓÐÎļþµÄÏêϸÐÅÏ¢¡£
2
²é¿´Â·¾¶
#
pwd
pwd
²é¿´µ±Ç°ËùÔÚĿ¼µÄ¾ø¶Ô·¾
3
Ŀ¼Çл»
#
cd
cd ..
»Øµ±Ç°Ä¿Â¼µÄÉÏÒ»¼¶Ä¿Â¼
#
cd
cd -
»ØÉÏÒ»´ÎËùÔÚµÄĿ¼
#
cd
cd -p aa/bb/cc
Ö±½Ó´´½¨¶à¼¶×ÓĿ¼
#
cd
cd ~ »ò cd
»Øµ±Ç°Óû§µÄËÞÖ÷Ŀ¼
#
cd
cd ~Óû§Ãû
»ØÖ¸¶¨Óû§µÄËÞÖ÷Ŀ¼
4
´´½¨Ä¿Â¼
#
mkdir
mkdir Ŀ¼Ãû
´´½¨Ò»¸öĿ¼
#
mkdir
mkdir –p
µÝ¹éʽȥ´´½¨Ò»Ð©Ç¶Ì×Ŀ¼
#
rmdir
Rmdir ¿ÕĿ¼Ãû
ɾ³ýÒ»¸ö¿ÕĿ¼
5
´´½¨Îļþ
#
touch
touch 1.txt
´´½¨Îļþ1.txt
6
ɾ³ý²Ù×÷
#
rm
rm ÎļþÃû ÎļþÃû
ɾ³ýÒ»¸öÎļþ»ò¶à¸öÎļþ
#
rm
rm -rf ·Ç¿ÕĿ¼Ãû
µÝ¹éɾ³ýÒ»¸ö·Ç¿ÕĿ¼ÏµÄÒ»ÇУ¬¼Ó-f²»Ìáʾ
7
²é¿´Îļþ
#
cat
cat ÎļþÃû
Ò»ÆÁ²é¿´ÎļþÄÚÈÝ
#
cat
cat ·¾¶/ÎļþÃû |grep ×Ö·û´®
ÔÚÎļþÖÐÆ¥Åä“×Ö·û´®”
#
more
more ÎļþÃû
·ÖÒ³²é¿´Îļþ ......
LINUXÏÂUSB1.1É豸ѧϰС¼Ç(4)_uhci(2)
À´Ô´: ChinaUnix²©¿Í ¡¡ÈÕÆÚ£º 2009.03.14 16:44¡¡(¹²ÓÐÌõÆÀÂÛ) ÎÒÒªÆÀÂÛ
ºÃ~ ÏÖÔÚÍòʾ㱸,ֻǷuhciÓ²¼þµÄ×¢²áÁË
ÏÖÔÚ̸һÏÂuhciÓ²¼þµÄ×é³É,uhciµÄÓ²¼þ·ÖΪÁ½¸ö´óµÄ²¿·Ö,Ö÷»ú¿ØÖÆÆ÷ºÍ¸ù¼¯Ï߯÷,ÈçÏÂͼ
µ±Ìá½»uhciÓ²¼þµÄ×¢²áµ½pci×ÜÏߺó,¾¹ýÒ»ÂÖÆ¥Åä,ÖÕÓÚÕÒµ½ÁËuhci,½øÈëµ½uhci_pci_driver->probeÕâ¸öº¯ÊýÏÂ
usb_hcd_pci_probeÔÚ/drivers/usb/host/uhci-hcd.cÖÐ
int usb_hcd_pci_probe(struct pci_dev *dev, const struct pci_device_id *id)
{
struct hc_driver *driver;
struct usb_hcd *hcd;
int retval;
//ÅжÏÄں˲ÎÊýÊÇ·ñÆôÓÃUSB
if (usb_disabled())
return -ENODEV;
//ÅÐ¶ÏÆ¥Åä±íÊÇ·ñ´æÔÚ,¸Ã±íΪuhci_pci_driver->id_tableÖеÄÄÚÈÝ
if (!id)
return -EINVAL;
//È¡µÃÆ¥Åä±íÖеÄ˽Óнṹ,Ϊuhci_driver
driver = (struct hc_driver *)id->driver_data;
//˽Óнṹ²»´æÔÚÔò·µ»Ø´íÎó
if (!driver)
return -EINVAL;
//ʹÄÜpciÉ豸
if (pci_enable_device(dev) 0)
return -ENODEV;
//ÉèÖõçԴΪÕý³£×´Ì¬
d ......
LINUXÏÂUSB1.1É豸ѧϰС¼Ç(2)_ÐÒé
USBÐÒé:
ÏÈ¿´USB½Ó¿Ú
¿ÉÒÔ¿´³ö,ÔÚUSBʹÓÃÁË4¸ùÏß,·Ö±ðΪµçÔ´Ïß,µØÏß,ÐźÅÏߺͲî·ÖÐźÅÏß
²î·ÖÐźÅÏßÓÃÓÚ¼ì²âÐźÅÏߵĴ«ÊäÊÇ·ñÕýÈ·
ÏÂÃæÎÒÃÇÖ»¹Ø×¢ÐźÅÏß
È»ºóÊÇUSBµÄ´®¿Ú´«Êä
ÔÚ´®¿Ú´«ÊäÖÐ,ÓÉÓÚËùÓеÄÐźŹ²ÓÃÒ»¸ùÊý¾ÝÏß,ËùÒÔ²»½öÓÐÏÈÀ´ºóµ½µÄÎÊÌâ,¶øÇÒÔÚÒ»¸öÉ豸ºÍÁíÒ»¸öÉ豸½øÐÐͨÐŵÄʱºò,Èç¹û±ðµÄÉ豸Ҳ½øÀ´²åÒ»½Å,¾Í»áµ¼ÖÂÐźŵijö´í,ËùÒÔÕâ¸öʱºòÐèÒªÒ»¸ö¹ÜÀíÕß,Ëû˵ºÃ,AÉ豸ºÍÎÒͨÐÅ,AÉ豸²ÅºÍ¹ÜÀíÕßͨÐÅ,ͨÐÅÍê³Éºó,¹ÜÀíÕß˵ÏÖÔÚµ½BÉ豸ºÍÎÒͨÐÅ,AÉ豸ÄãЪһЪ,ÓÚÊÇBÉ豸²ÅÄܺ͹ÜÀíÕßͨÐÅ
ÔÚUSBÐÒéÖÐ,Õâ¸ö¹ÜÀíÕß³ÆÎªhost,ÔÚÒ»¸öusb×é³ÉµÄÀ¨ÆËÖÐÖ»ÄÜ´æÔÚÒ»¸ö¹ÜÀíÕß,Ò²¾ÍÊÇÒ»¸öhost
Èκδ«Êä¶¼ÊÇÓÉhost·¢ÆðµÄ,É豸²»ÄÜ˵hostÄã×¢ÒâÁË,ÎÒÒªºÍÄãͨÐÅÕâÑù
ËùÒÔhostÊÇÒ»¸öÊ®·Ö°ÔµÀµÄ¹ÜÀíÕß = 3=
ÄØhostÓÖÈçºÎ·¢ÆðÓÚÆäËüÉ豸µÄͨÐÅÄØ?
ÏÖÔÚ½éÉÜÒ»ÏÂͨÐŹ淶
ÔÚUSBµÄͨÐÅÖÐ,·ÖΪ4¸ö´óÀà
1. ¿ØÖÆ´«Êä
¿ØÖÆ´«ÊäÓÃÓÚ¶ÔÉ豸µÄ¿ØÖÆ·ÃÎÊ
2.Öжϴ«Êä
Öжϴ«ÊäÓÃÓÚ°´Ò»¶¨µÄʱ¼ä¼ä¸ô·ÃÎÊÉ豸(ÀýÈçÊó±ê ¼üÅ̵È)
3.µÈʱ´«Êä
µÈʱ´«ÊäÓÃÓÚ¸ßÁ÷Á¿µÄÎÞ¼ä¸ô·ÃÎÊÉ豸(ÊÓÆµ ÒôƵµÈ)
4.¿é´«Êä
¿é´«ÊäÓÃÓÚ¶ÔÁ÷Á¿µÄ ......
ǰ¶Îʱ¼ä°Ý¶Áfudan_abcµÄÎÄÕºó¸ù¾Ý×Ô¼ºµÄÀí½âдµÄһЩ·ÖÎö
[url=http://blog.chinaunix.net/u1/57901/showart.php?id=1855876][color=#02368d][size=10pt]LINUXÏÂUSB1.1É豸ѧϰС¼Ç(1) [/size][/color]
[url=http://blog.chinaunix.net/u1/57901/showart.php?id=1856447][color=#02368d][size=10pt]LINUXÏÂUSB1.1É豸ѧϰС¼Ç(2)_ÐÒé [/size][/color]
[url=http://blog.chinaunix.net/u1/57901/showart.php?id=1857994][color=#02368d][size=10pt]LINUXÏÂUSB1.1É豸ѧϰС¼Ç(3)_hostÓëdevice [/size][/color]
[url=http://blog.chinaunix.net/u1/57901/showart.php?id=1863168][color=#02368d][size=10pt]LINUXÏÂUSB1.1É豸ѧϰС¼Ç(4)_uhci(1) [/size][/color]
[url=http://blog.chinaunix.net/u1/57901/showart.php?id=1863179][color=#02368d][size=10pt]LINUXÏÂUSB1.1É豸ѧϰС¼Ç(4)_uhci(2) [/size][/color]
[url=http://blog.chinaunix.net/u1/57901/showart.php?id=1863192][color=#02368d][size=10pt]LINUXÏÂUSB1.1É豸ѧϰС¼Ç(4)_uhci(3) [/size][/color]
[url=http://blog.chinaunix.net/u1/57901/showart.php?id ......
ÏÖÔÚÔݶ¨µÄѧϰĿ±êΪһ¸öUSBÊó±êµÄÉ豸µ½Ö÷»úµÄ´«Êä¹ý³ÌÈí¼þÉϵĹᴩ(»áÉæ¼°µ½²¿·ÖÓ²¼þ µ«ÊDZ¾È˵ĵçµç·֪ʶÓÐÏÞ Éæ¼°µÄÁ¿²»»á¶à)
ѧϰµÄ¿ò¼ÜÈçÏÂ:
1. USB1.1ÐÒé
A. ¿ØÖÆ´«Êä
B. Öжϴ«Êä
2. USBÖ÷»ú
A. LINUX쵀UHCI
3. USBÉ豸
A.·ÉÀûÆÖµÄPDIUSBD12
4. HIDÐÒé
A.Êó±ê²¿·Ö
5. USBÖ÷»úµÄHIDÇý¶¯³ÌÐò
A.Êó±ê²¿·Ö
6. LINUXµÄINPUT×Óϵͳ
A.Êó±ê²¿·Ö
ÔÚÕâÀï¼ò¶Ì˵һÏÂΪʲô»áÓÐUSBÐÒéµÄµ®Éú~
Ò»·½Ãæ,ÔÚµçÄÔÉÏ¿ÉÒÔ¿´¶àºÜ¶àµÄ²å¿Ú,ÀýÈçPS/2,Íø¿Ú,VGA,DVI,²¢¿Ú,´òÓ¡»ú²¢¿Ú
USBÉ豸Ö÷ҪΪÁËͳºÏÕâЩÈÕÒæÔö¶àµÄ²å¿Ú¶øµ®ÉúµÄ
ÁíÒ»·½Ãæ,²¢¿ÚµÄ´«ÊäËæ×żÆËã»úÊý¾ÝÁ÷Á¿µÄ·¢Õ¹¶øÏÔµÃÁ¦²»´ÓÐÄ,²¢¿Ú,·ºÖ¸Ê¹ÓÃÈô¸É¸öÊý¾Ýλ½øÐд«ÊäµÄÉ豸,ÔÚ¼ÆËã»úÖÐÐźŵĴ«ÊäÖ»ÓÐ1ºÍ0Á½ÖÖÐźÅ,ÄØÃ´Ò»´Î´«ÊäÊý¾ÝµÄ´óСºÍÊý¾ÝλµÄ¹ØÏµ¾ÍÊÇ2x ¸öbit,µ±ÓÐ3¸öÊý¾ÝλµÄʱºò¾ÍÊ ......