linuxÉ豸Çý¶¯¿ª·¢Ïê½â——globalmem
linuxÉ豸Çý¶¯¿ª·¢Ïê½â——globalmem
ÊÕ²Ø
³£¼ûµÄÁ½ÖÖ´íÎó£º
1.ÔÚ²åÈëÄ£¿éµÄʱºò³öÏÖÈçÏÂÎÊÌ⣺
# insmod globalmem.ko insmod: error inserting 'globalmem.ko': -1
Device or resource busy
ANSWER:Ö÷É豸ºÅ±»Õ¼ÓÃÁË£¬»»ÁíÒ»¸ö¡£ Äã°Ñglobalmem.cÎļþÀïÃæµÄºê¶¨ÒåÄÇÀï¸ÄΪ226»òÆäËû£¬È»ºóÔÙ±àÒë¾Í¿ÉÒÔ²åÈëÁË£¡
ÌØ±ð×¢Ò⣺ Èç¹û»»ÁËÖ÷É豸ºÅÒÔºó£¬ÏÂÃæ½Ó×Å´´½¨½ÚµãµÄʱºòÒ²Òª¸Ã£¬·ñÔò³öÏÖÏÂÃæ´íÎó£º
# mknod /dev/globalmem c 254 0 /*ÕâÀïµÄ254¸úÒÑÐ޸ĵÄÖ÷É豸ºÅ228²»Ò»ÖÂ*/
# echo
'hello world' > /dev/globalmem
/bin/sh: can't create
/dev/globalmem: No such device or address
½â¾ö°ì·¨£º
# rm /dev/globalmem
# mknod /dev/globalmem c 226 0
# echo
'hello world' > /dev/globalmem
written 12 bytes(s) from 0
2.¼ÓÔØºÍ´´½¨É豸½Úµã¶¼Êdzɹ¦µÄ£®µ«¾ÍÊÇÓÃcatÃüÁî²é¿´Ê±£¬ËäÈ»¶Á³öÁËÕýÈ·µÄ×Ö·û£¬È´×ÜÊÇÔÚ×îºó»¹Òª¼ÓÉÏÒ»¾äÌáʾ£¢ÕÒ²»µ½É豸»òµØÖ·£¢£®²»ÖªÎª
ºÎ»á¶à³öÕâ¾äÀ´£®
# echo 'hello world!' > /dev/globalmem
written 13 bytes(s)
from 0
# cat /dev/
/dev/console /dev/globalmem /dev/null
#
cat /dev/globalmem
read 4096 bytes(s) from 0
hello world!
cat:
read error: No such device or address
#
ANSWER:ÆäʵûÎÊÌ⣬
<1>
Äã°Ñglobalmem_readº¯ÊýÖеÄif (p >£½ GLOBALMEM_SIZE)¸ÄΪif (p >
GLOBALMEM_SIZE)¾ÍºÃÁË¡£¾ßÌåÔÒòÊÇÒ»´Îµ÷ÓÃcat»á¶ÁÁ½´Î£¬Ã¿´Î¶ÁÈ¡4096¸ö×Ö½Ú£¬´ËʱÎļþ¶ÁÖ¸Õëppos¾ÍÊÇ4096ÁË£¬ÔÚµÚ¶þ´Î¶Á
µÄʱºò£¬µ½if (p >£½
GLOBALMEM_SIZE)ÕâÀïÌõ¼þÎªÕæ£¬globalmem_read¾Í·µ»ØENXIO´íÎóÁË£¬ËùÒԲŻá³öÏÖNo such device or
address"´íÎó¡£²»ÖªµÀÔÚËÎÀÏʦµÄ»ú×ÓÉÏΪʲô¾ÍÊÇÕýÈ·µÄ£¿
<2> Ëᦻª
£º·µ»Ø´íÎóÖµ²ÅÊÇÕýÈ·µÄ£¬ÒòΪ¶ÁµÄλÖÃÒѾԽ½ç£¬ËùÒÔÒª·µ»Ø´íÎ󡣸÷µ»Ø´íÎóµÄʱºò·µ»ØÕýÈ·£¬ÄǾÍÊÇ´íÎ󡣸ijÉif (p >
GLOBALMEM_SIZE)ÊÇ´íÎóµÄ¡£
<3> ¸ù¾ÝÉÏÃæÁ½µã¿ÉÒÔС½áÊéÉÏÊÇûÓдíÎóµÄ¡£Êä³öµÄ´íÎóÐÅÏ¢ÊÇÕý³£µÄdebugÐÅÏ¢£¬Ç§²»¸ÃÍò²»¸Ã¾ÍÊÇcatµ÷ÓÃÁËreadÁ½´Î¡£
Ïà¹ØÎĵµ£º
0.11ºËÖнø³ÌµÄµ÷¶ÈÖ÷ÒªÓÉËĸö²¿·ÖÊý×é³É£ºµ÷¶È³õʼ»¯¡¢µ÷¶È¡¢Ë¯Ãß¡¢»½ÐÑ¡£
Ò»¡¢µ÷¶È³õʼ»¯:sched_init()
ÎÒÃÇÖªµÀÔÚÄں˳õʼ»¯£¨main£©¹ý³ÌÖУ¬Òª½«ÈÎÎñ0ת»»µ½Óû§Ì¬ÏÂÖ´ÐУ¬Ò²¾ÍÊǽ¨Á¢LinuxÖеĵÚÒ»¸öÓû§³ÌÐò¡£¼ÈÈ»ÈÎÎñ0֮ǰÊÇÔÚÄÚºË̬ÏÂÖ´Ðе ......
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 = kz ......
LINUXÏÂUSB1.1É豸ѧϰС¼Ç(2)_ÐÒé
USBÐÒé:
ÏÈ¿´USB½Ó¿Ú
¿ÉÒÔ¿´³ö,ÔÚUSBʹÓÃÁË4¸ùÏß,·Ö±ðΪµçÔ´Ïß,µØÏß,ÐźÅÏߺͲî·ÖÐźÅÏß
²î·ÖÐźÅÏßÓÃÓÚ¼ì²âÐźÅÏߵĴ«ÊäÊÇ·ñÕýÈ·
ÏÂÃæÎÒÃÇÖ»¹Ø×¢ÐźÅÏß
È»ºóÊÇUSBµÄ´®¿Ú´«Êä
ÔÚ´®¿Ú´«ÊäÖÐ,ÓÉÓÚËùÓеÄÐźŹ²ÓÃÒ»¸ùÊý¾ÝÏß,ËùÒÔ²»½öÓÐÏÈÀ´ºóµ½µÄÎÊÌâ,¶øÇÒÔÚÒ»¸ ......
ǰ¶Îʱ¼ä°Ý¶Á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. ......
ÉùÃ÷
£º¿ÉÒÔ×ÔÓÉ×ªÔØ±¾ÎÄ£¬µ«ÇëÎñ±Ø±£Áô±¾ÎĵÄÍêÕûÐÔ¡£
×÷Õß
£ºÕÅ×Ó¼á
email
:zhangzijian@163.com
˵Ã÷
£º±¾ÎÄËùÉæ¼°Ê¾Àý¾ùÔÚfedora core3ϵõ½¡£
--------------------------------------------------------------------------------
/proc
ÎļþϵͳϵĶàÖÖÎļþÌṩµÄϵͳÐÅÏ¢²»ÊÇÕë¶Ôij¸öÌØ¶¨½ø³ÌµÄ£¬¶øÊÇÄ ......