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Ŀ¼¡£²»¹ýĿǰ²¢Ã»ÓÐÕâÑù×
Ïà¹ØÎĵµ£º
ÀýÒ»£º·¢ËÍSignaling Packet£º
Signaling CommandÊÇ2¸öBluetoothʵÌåÖ®¼äµÄL2CAP²ãÃüÁî´«Êä¡£ËùÒÔµÃSignaling CommandʹÓÃCID 0x0001.
¶à¸öCommand¿ÉÒÔÔÚÒ»¸öC-frame£¨control frame£©Öз¢ËÍ¡£
Èç¹ûÒªÖ±½Ó·¢ËÍSignaling Command.ÐèÒª½¨Á¢SOCK_RAWÀàÐ͵ÄL2CAPÁ¬½ÓSocket¡£ÕâÑù²ÅÓлú»á×Ô¼ºÌî³äCommand Code£¬Identi ......
1. ѧ»áд¼òµ¥µÄmakefile
2. ±àһЩӦÓÃ
³ÌÐò
£¬¿ÉÒÔÓÃmakefileÅÜÆðÀ´
3. ѧ»áдÇý¶¯
µÄmakefile
4. дһ¼òµ¥charÇý¶¯£¬makefile±àÒëͨ¹ý£¬¿ÉÒÔinsmod£¬ lsmod£¬ rmmod. ÔÚÇý¶¯µÄinitº¯ÊýÀï´òÓ¡hello world£¬insmodºóÓ¦¸ÃÄܹ»Í¨¹ýdmesg¿´µ½Êä³ö
¡£
5. дһÍêÕûÇý¶¯£¬ ¼ÓÉÏread£¬ write£¬ ioctl£¬ pollingµÈ¸ ......
Ò»¡¢ ¸Å¿ö
¡¡¡¡ÏµÍ³µÄÒýµ¼ºÍ³õʼ»¯ÊDzÙ×÷ϵͳʵÏÖ¿ØÖƵĵÚÒ»²½£¬Ò²ÊǼ¯ÖÐÌåÏÖϵͳÓÅÁÓµÄÖØÒª²¿·Ö¡£LINUX×÷Ϊһ¸öÃâ·ÑµÄ×¼UNIX²Ù×÷ϵͳ£¬ÔÚÖÚ¶àÒµÓà°®ºÃÕßÒÔ¼°Ð¡ÐÍÉÌÒµ´¦ÀíÊг¡±íÏÖ²»Ë×£¬³ÉΪ¼ÌWINDOWSϵÁкóµÄÁíÒ»¸öÖ÷Á÷¡£Á˽âLINUXϵͳµÄ³õʼ»¯£¬¶ÔÓÚ½øÒ»²½ÕÆÎÕUNIXϵͳÊÇÊ®·ÖÓаïÖúµÄ¡£
ͨ³££¬LINUXϵͳµÄ³õʼ»¯¿ÉÒÔ· ......
ORACLE 10GÔÚLINUXµÄ°²×°:
ÏÈÉÏÀ´Á½ÕÅͼ:
DBAÊÇŬÁ¦µÄ·½Ïò,ORACLE DBA°üÂÞÍòÏó,Á¬LINUX/UNIX¶¼¸ã²»¶¨,»¹ÅªP¸öORACLE°¡.
Á½²¿·Ö:
1.RED HAT ENTERPRISE LINUX 5µÄ°²×°
Äѵã(¶ÔÓÚÏÖÔÚµÄÎÒÀ´Ëµ):1.1YUM±¾µØÔ´µÄÅäÖÃ;ÍøÂçÓÐÏà¹Ø×ÊÁÏ,²»¶à˵ÁË.ÓÉÓÚÊDZ¾»úʹÓÃ,²Î¿¼ÁËFTPÔ´ºó,ÎÒʹÓÃÁËFILEÔ´;
&nb ......
LinuxÄÚºËÉ豸ģÐÍ
·ÒëÕߣº¹ùÉÙ±¯
2009/12/01
ÔÎÄ£ºlinux/Documentation/driver-model/overview.txt
¸ÅÊö
~~~~
LinuxÄÚºËÇý¶¯Ä£ÐÍÊÇÕë¶ÔÄÚºË֮ǰËùÓв»Í¬µÄÇý¶¯Ä£Ð͵Äͳһ³éÏóÄ£ÐÍ¡£ËüµÄÄ¿µÄÊÇ,ͨ
¹ý½áºÏÒ»Ì×Êý¾ÝºÍ²Ù×÷¼¯µ½Ò»¸öÈ«¾Ö¿É·ÃÎʵÄÊý¾Ý½á¹¹À´Ó¶øÌí¼Ó»ùÓÚijÖÖÖ¸¶¨×ÜÏßµÄÉè
±¸ºÍÇŽÓÇý¶¯¡£
´«Í³µÄÇý¶¯ ......