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

LinuxÄÚºËÉ豸ģÐÍ(2)

·­ÒëÕߣº¹ùÉÙ±¯
2009/12/01
Ô­ÎÄ£ºlinux/Documentation/driver-model/binding.txt
Çý¶¯°ó¶¨
Çý¶¯°ó¶¨¾ÍÊǽ«Ò»¸öÉ豸ºÍ¿ØÖƸÃÉ豸µÄÇý¶¯¹ØÁªÔÚÒ»ÇеĹý³Ì¡£
µäÐ͵ÄÇé¿öÏ£¬×ÜÏßÇý¶¯À´´¦ÀíÇý¶¯°ó¶¨£¬ÒòΪÿ¸ö×ÜÏßÇý¶¯¶¼ÓÐ×ÜÏßÏà¹ØµÄÊý¾Ý
½á¹¹À´±íʾÉ豸ºÍÉ豸Çý¶¯¡£ÓÐÁ˱íʾÉ豸ºÍÉ豸Çý¶¯µÄͨÓÃÊý¾Ý½á¹¹£¬¾ø´ó¶àÊýµÄ°ó
¶¨¹ý³Ì¿ÉÒÔʹÓÃÕâЩͨÓôúÂë¡£
×ÜÏß
~~~
×ÜÏßÀàÐÍÊý¾Ý½á¹¹°üº¬Ò»¸ö¼Ç¼ËùÓÐÊôÓÚÕâ¸ö×ÜÏßÀàÐ͵ÄÉ豸Á´±í¡£µ±Ò»¸öÉ豸Çý¶¯µ÷ÓÃ
device_register()ʱ£¬Ëü»á±»Ìí¼Óµ½Õâ¸öÁ´±íµÄβ²¿¡£
×ÜÏßÀàÐÍÊý¾Ý½á¹¹Ò²°üº¬Ò»¸ö¼Ç¼ËùÓÐÊôÓÚÕâ¸ö×ÜÏßÀàÐ͵ÄÇý¶¯Á´±í¡£µ±Ò»¸öÉ豸Çý¶¯µ÷ÓÃ
driver_register()ʱ£¬¸ÃÇý¶¯»á±»Ìí¼Óµ½Õâ¸öÁ´±íµÄβ²¿¡£
ÕâÊÇ´¥·¢Çý¶¯°ó¶¨µÄÁ½¸öÖ÷Ҫʼþ¡£
É豸ע²á
~~~~~~~~
µ±Ò»¸öÐÂÉ豸±»Ìí¼Óºó£¬×ÜÏßµÄÇý¶¯Á´±í»á±»µü´ú£¬²éÕÒ³öÖ§³Ö¸ÃÉ豸µÄÇý¶¯¡£ÎªÁË´ïµ½
Õâ¸öÄ¿µÄ£¬ÐÂÉ豸µÄÉ豸ID±ØÐëÆ¥ÅäÇý¶¯Ö§³ÖµÄÉ豸IDÖеÄÒ»¸ö¡£É豸IDµÄ¸ñʽºÍ
Óï·¨ÊÇ×ÜÏßÏà¹ØµÄ¡£²»ÐèҪʹÓÃÒ»¸ö¸´ÔÓµÄ״̬»úºÍÆ¥ÅäËã·¨£¬¶øÊÇÓÉ×ÜÏßÇý¶¯Ìṩ
Ò»¸öcallbackº¯ÊýÀ´±È½ÏÉ豸ºÍÒ»¸öÇý¶¯ËùÖ§³ÖµÄIDÊÇ·ñÆ¥Å䣬Èç¹ûÆ¥Åä·µ»ØÖµÎª1£¬·ñÔò
·µ»ØÖµÎª0¡£
int match(struct device * dev, struct device_driver * drv);
µ±Ò»¸öÆ¥Åä±»ÕÒµ½Ê±£¬É豸µÄ'driver'Óò»á±»ÉèÖÃΪÕâ¸öÇý¶¯£¬Çý¶¯µÄprobe»Øµ÷º¯Êý»á±»µ÷Óá£
ÕâʹÇý¶¯Óлú»á¼ìÑéÊÇ·ñÕæÕýÖ§³ÖÕâ¸öÓ²¼þÉ豸,ͬʱ»á¼ìÑéÉ豸ÊÇ·ñ´¦ÓÚ¹¤×÷״̬¡£
É豸Àà±ð
~~~~~~~~~~~~
µ±probe³É¹¦Íê³Éºó£¬É豸±»×¢²áµ½ËüÊôÓÚµÄÀàÖС£É豸Çý¶¯ÊôÓÚÇÒ½öÊôÓÚÒ»¸öÀ࣬Õâ¸öÀà»áÔÚ
Çý¶¯µÄdevclassÓòÖÐÉèÖá£
devclass_add_device±»µ÷ÓÃÀ´Ã¶¾ÙºÍ×¢²áÀàÖеÄÉ豸£¬Õâ¸ö¹ý³Ì·¢ÉúÔÚÀàµÄregister_dev»Øµ÷
º¯ÊýÖС£
×¢Ò⣺É豸class½á¹¹ºÍÆäºËÐIJÙ×÷º¯Êý»¹Ã»ÓнøÈëmainlineÄںˣ¬ËùÒÔÒÔÉÏÌÖÂÛÓÐÒ»¶¨ÍÆ
²âÐÔ¡£
Çý¶¯
~~~~
µ±Ò»¸öÇý¶¯±»¹ØÁªµ½Ò»¸öÉ豸ʱ£¬Õâ¸öÉ豸±»²åÈëµ½Çý¶¯µÄÉ豸Á´±íÖС£
sysfs
~~~~~
ÔÚbusĿ¼µÄ'devices'×ÓĿ¼À´´½¨·ûºÅÁ´½Ó£¬Ö¸Ïòʵ¼ÊµÄdeviceĿ¼¡£
ÔÚdriverµÄ'devices'×ÓĿ¼À´´½¨·ûºÅÁ´½Ó£¬Ö¸Ïòʵ¼ÊµÄdeviceĿ¼¡£
ÔÚclassĿ¼ÀïΪÉ豸´´½¨×ÓĿ¼£¬ÔÚ×ÓĿ¼À´´½¨·ûºÅÁ´½Ó£¬Ö¸Ïò¸ÃÉ豸ÔÚsys
treeÀïµÄʵ¼ÊλÖá£
Ò²¿ÉÒÔÔÚÉ豸µÄʵ¼ÊĿ¼À´´½¨·ûºÅÁ´½Ó£¬Ö¸ÏòËüµÄclassĿ¼£¬»òÕßclassĿ¼µÄ¶¥²ã
Ŀ¼£»Ò²¿ÉÒÔ´´½¨·ûºÅÁ´½Ó£¬Ö¸ÏòËüµÄdriverĿ¼¡£²»¹ýĿǰ²¢Ã»ÓÐÕâÑù×


Ïà¹ØÎĵµ£º

ʵսLinux Bluetooth±à³Ì£¨Èý£© HCI²ã±à³Ì

1. HCI²ãЭÒé¸ÅÊö£º
HCIÌṩһÌ×ͳһµÄ·½·¨À´·ÃÎÊBluetoothµ×²ã¡£ÈçͼËùʾ£º
´ÓͼÉÏ¿ÉÒÔ¿´³ö£¬Host Controller Interface(HCI)  ¾ÍÊÇÓÃÀ´¹µÍ¨HostºÍModule¡£Hostͨ³£¾ÍÊÇPC£¬ ModuleÔòÊÇÒÔ¸÷ÖÖÎïÀíÁ¬½ÓÐÎʽ£¨USB,serial,pc-cardµÈ£©Á¬½Óµ½PCÉϵÄbluetooth Dongle¡£
ÔÚHostÕâÒ»¶Ë£ºapplication,SDP,L2capµÈЭÒé ......

linuxϵͳϽ«SATAÓ²ÅÌÄ£Äâ³ÉIDEÓ²ÅÌ

ÓÉÓÚSATAÓ²Å̽ÏУ¬ºÜ¶àÇý¶¯ÐèÒª°²×°£¬¿ÉÒÔ½«SATAÓ²ÅÌÄ£Äâ³ÉIDEÓ²ÅÌÀ´Ê¹ÓÓ
ÎÒµÄlinux»·¾³Îª£ºredhat enterprise linux4
Ö÷°åΪ£ºÌ©°²S5372 G2NR-LH
ϵͳÅÌΪÐÂSATAÅÌ£¬²»ÊÇÀϵÄSATAÅÌ¡£
ÖÁÓÚSATAÓ²Å̲»ÄÜÄ£Äâ³ÉIDEÓ²ÅÌÖ÷ÒªÊÇÓÉÁ½¸öÒòËØ¾ö¶¨µÄ£º
1-biosÉèÖ㬰Ñsata¿ØÖÆÆ÷ÉèÖÃΪԭÉú£¨nataive£©Ä£Ê½Ôòsata±»ÈÏ× ......

´òÔìÇáÇÉµÄ Linux ·þÎñÆ÷

ºÃ¾Ãûд Blog£¬Ã¦°¡Ê²Ã´µÄ¾Í²»ËµÁË£¬ÀÁÊÇ×î´óµÄÔ­Òò¡£×î½üæ×ŸøÊµÑéÊÒ×ö¸öÍøÕ¾£¬³ýÁËÎÒÊìϤµÄ Web Design & Development Ö®Í⣬Õâ´ÎÎÒ»¹´î½¨ÁËһ̨ Linux ·þÎñÆ÷¡£Ò»·½ÃæÓÃÀ´·ÅÖÃÎÒÃǵÄÕ¾µã£¬ÁíÒ»·½ÃæÊµÑéÊÒ·Åһ̨·þÎñÆ÷£¬Ò²ÎªÊµÑéÊҵijÉÔ±ÃÇÌṩһЩ¶îÍâµÄ·þÎñ£¬·½±ã¿ÆÑкÍѧϰ¡£
ËäÈ»×ö Web ÎÒÊÇÇá³µÊì·ÁË£¬µ«µ¹Ì ......

linuxÇý¶¯Ñ§Ï°

Ò»¡¢ioctl
´ó²¿·ÖÉ豸³ýÁ˶ÁдÄÜÁ¦£¬»¹¿É½øÐг¬³ö¼òµ¥µÄÊý¾Ý´«ÊäÖ®ÍâµÄ²Ù×÷£¬ËùÒÔÉ豸Çý¶¯Ò²±ØÐë¾ß±¸½øÐи÷ÖÖÓ²¼þ¿ØÖƲÙ×÷µÄÄÜÁ¦. ÕâЩ²Ù×÷³£³£Í¨¹ý ioctl ·½·¨À´Ö§³Ö£¬ËüÓкÍÓû§¿Õ¼ä°æ±¾²»Í¬µÄÔ­ÐÍ:
int (*ioctl) (struct inode *inode, struct file *filp,
         &n ......
© 2009 ej38.com All Rights Reserved. ¹ØÓÚE½¡ÍøÁªÏµÎÒÃÇ | Õ¾µãµØÍ¼ | ¸ÓICP±¸09004571ºÅ