LinuxÄÚºËÖеÄplatform»úÖÆ
LinuxÄÚºËÖеÄplatform»úÖÆ
´ÓLinux 2.6ÆðÒýÈëÁËÒ»Ì×еÄÇý¶¯¹ÜÀíºÍ×¢²á»úÖÆ£ºplatform_deviceºÍplatform_driver¡£LinuxÖд󲿷ֵÄÉ豸Çý¶¯£¬¶¼¿ÉÒÔʹÓÃÕâÌ×»úÖÆ£¬É豸ÓÃplatform_device±íʾ£¬Çý¶¯ÓÃplatform_driver½øÐÐ×¢²á¡£
Linux platform driver»úÖÆºÍ´«Í³µÄdevice driver »úÖÆ(ͨ¹ýdriver_registerº¯Êý½øÐÐ×¢²á)Ïà±È£¬Ò»¸öÊ®·ÖÃ÷ÏÔµÄÓÅÊÆÔÚÓÚplatform»úÖÆ½«É豸±¾ÉíµÄ×ÊÔ´×¢²á½øÄںˣ¬ÓÉÄÚºËͳһ¹ÜÀí£¬ÔÚÇý¶¯³ÌÐòÖÐʹÓÃÕâЩ×ÊԴʱͨ¹ýplatform deviceÌṩµÄ±ê×¼½Ó¿Ú½øÐÐÉêÇ벢ʹÓá£ÕâÑùÌá¸ßÁËÇý¶¯ºÍ×ÊÔ´¹ÜÀíµÄ¶ÀÁ¢ÐÔ£¬²¢ÇÒÓµÓнϺõĿÉÒÆÖ²ÐԺͰ²È«ÐÔ(ÕâЩ±ê×¼½Ó¿ÚÊǰ²È«µÄ)¡£platform»úÖÆµÄ±¾ÉíʹÓò¢²»¸´ÔÓ£¬ÓÉÁ½²¿·Ö×é³É£ºplatform_deviceºÍplatfrom_driver¡£Í¨¹ýplatform»úÖÆ¿ª·¢µ×²ãÉ豸Çý¶¯µÄ´óÖÂÁ÷³ÌÈçͼËùʾ¡£
ͼ platform»úÖÆ¿ª·¢Çý¶¯Á÷³Ì
platform_device½á¹¹ÌåÓÃÀ´ÃèÊöÉ豸µÄÃû³Æ¡¢×ÊÔ´ÐÅÏ¢µÈ¡£¸Ã½á¹¹±»¶¨ÒåÔÚinclude/linux/platform_device.hÖУ¬¶¨ÒåÔÐÍÈçÏ£º
struct platform_device {
const char * name; //¶¨ÒåÆ½Ì¨É豸µÄÃû³Æ
int id;
struct device dev;
u32 num_resources;
struct resource * resource; //¶¨ÒåÆ½Ì¨É豸µÄ×ÊÔ´¡£
};
ÏÂÃæÀ´¿´Ò»ÏÂplatform_device½á¹¹ÌåÖÐ×îÖØÒªµÄÒ»¸ö³ÉÔ±struct resource * resource¡£struct resource±»¶¨ÒåÔÚinclude/linux/ioport.hÖУ¬¶¨ÒåÔÐÍÈçÏ£º
struct resource {
resource_size_t start; //¶¨Òå×ÊÔ´µÄÆðʼµØÖ·
resource_size_t end; //¶¨Òå×ÊÔ´µÄ½áÊøµØÖ·
const char *name; //¶¨Òå×ÊÔ´µÄÃû³Æ
unsigned long flags; //¶¨Òå×ÊÔ´µÄÀàÐÍ£¬±ÈÈçMEM£¬IO£¬IRQ£¬DMAÀàÐÍ
struct resource *parent, *sibling, *child; //×ÊÔ´Á´±íÖ¸Õë
};
ͨ¹ýµ÷Óú¯Êýplatform_add_devices£¨£©ÏòϵͳÖÐÌí¼Ó¸ÃÉ豸ÁË£¬¸Ãº¯ÊýÄÚ²¿µ÷ÓÃplatform_device_register( )½øÐÐÉ豸ע²á¡£Òª×¢ÒâµÄÊÇ£¬ÕâÀïµÄplatform_deviceÉ豸µÄ×¢²á¹ý³Ì±ØÐëÔÚÏàÓ¦É豸Çý¶¯¼ÓÔØÖ®Ç°±»µ÷Ó㬼´Ö´ÐÐplatform_driver_register£¨£©Ö®Ç°£¬ÔÒòÊÇÇý¶¯×¢²áʱÐèҪƥÅäÄÚºËÖÐËùÓÐÒÑ×¢²áµÄÉ豸Ãû¡£
½ÓÏÂÀ´À´¿´platform_driver½á¹¹ÌåµÄÔÐͶ¨Ò壬ÔÚinclude
Ïà¹ØÎĵµ£º
£¨L2CAPÐÒé¼ò½é£¬L2CAPÔÚBlueZÖеÄʵÏÖÒÔ¼°L2CAP±à³Ì½Ó¿Ú£©
Ò»£ºL2CAPÐÒé¼ò½é£º
Logical Link Control and Adaptation Protocol(L2CAP)
Âß¼Á¬½Ó¿ØÖƺÍÊÊÅäÐÒé (L2CAP) ΪÉϲãÐÒéÌá¹©ÃæÏòÁ¬½ÓºÍÎÞÁ¬½ÓµÄÊý¾Ý·þÎñ£¬²¢Ìṩ¶àÐÒ鹦ÄܺͷָîÖØ×é²Ù×÷¡£L2CAP ³äÐíÉϲãÐÒéºÍÓ¦ÓÃÈí¼þ´«ÊäºÍ½ÓÊÕ×î´ó³¤¶ÈΪ 64K µÄ L2CAP Ê ......
Service Discovery Protocol(SDP)ÌṩһÖÖÄÜÁ¦£¬ÈÃÓ¦ÓóÌÐòÓз½·¨·¢ÏÖÄÄÖÖ·þÎñ¿ÉÓÃÒÔ¼°ÕâÖÖ·þÎñµÄÌØÐÔ¡£
·þÎñ·¢ÏÖÐÒé(SDP»òBluetooth SDP)ÔÚÀ¶ÑÀÐÒéÕ»ÖжÔÀ¶ÑÀ»·¾³ÖеÄÓ¦ÓóÌÐòÓÐÌØÊâµÄº¬Ò⣬·¢ÏÖÄĸö·þÎñÊÇ¿ÉÓõĺÍÈ·¶¨ÕâЩ¿ÉÓ÷þÎñµÄÌØÕ÷¡£SDP¶¨ÒåÁËbluetooth client·¢ÏÖ¿ÉÓÃbluetooth server·þÎñºÍËüÃǵÄÌØÕ÷µÄ·½·¨¡£ ......
Shell: bash¡£Ëü½áºÏÁË csh ºÍ ksh µÄÓŵ㣬²¢ÇÒÓÐ readline ¹¦ÄÜ£¬Äã¿ÉÒÔËæÒâ°ó¶¨×Ô¼ºµÄ¼üÅÌ¡£
±à¼Æ÷£º VIM, Emacs¡£
³ÌÐò¿ª·¢£º GCC, make, ld, Scheme48, j2sdk, Perl, Python, Tcl/Tk ...
ÂÛÎÄ£¬»ÃµÆ¹¤¾ß£ºLaTeX, ConTeXt
»æÍ¼¹¤¾ß£ºMetaPost¡£Õâ¸öÓïÑÔ̫ǿÁË£¬ÒÔÖÁÓÚÎÒÖ»ÓÃËüÁË¡£Äã²»ÊìϤµÄ»°¿ÉÒÔÓÃxfig,dia À´ ......