Linux Platform Device and Driver
´Ó
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_device ->
×¢²á platform_device->
¶¨Òå platform_driver->
×¢²á platform_driver
¡£
Ê×ÏÈҪȷÈϵľÍÊÇÉ豸µÄ×ÊÔ´ÐÅÏ¢£¬ÀýÈçÉ豸µÄµØÖ·£¬ÖжϺŵȡ£
ÔÚ 2.6
ÄÚºËÖÐ platform
É豸ÓýṹÌå platform_device
À´ÃèÊö£¬¸Ã½á¹¹Ì嶨ÒåÔÚ
kernel\include\linux\platform_device.h
ÖУ¬
struct platform_device {
const char *
name;
u32 id;
struct device
dev;
u32
num_resources;
struct resource
* resource;
};
¸Ã½á¹¹Ò»¸öÖØÒªµÄÔªËØÊÇ resource
£¬¸ÃÔªËØ´æÈëÁË×îÎªÖØÒªµÄÉ豸×ÊÔ´ÐÅÏ¢£¬¶¨ÒåÔÚ
kernel\include\linux\ioport.h
ÖУ¬
struct resource {
const char
*name;
unsigned long
start, end;
unsigned long
flags;
struct resource
*parent, *sibling, *child;
};
¶¨ÒåºÃÁË platform_device
½á¹¹Ìåºó¾Í¿ÉÒÔµ÷Óú¯Êý platform_add_devices
ÏòϵͳÖÐÌí¼Ó¸ÃÉ豸ÁË£¬Ö®ºó¿ÉÒÔµ÷ÓÃ
platform_device_register()
½øÐÐÉ豸ע²á¡£Òª×¢ÒâµÄÊÇ£¬ÕâÀïµÄ platform_device
É豸µÄ×¢²á¹ý³Ì±ØÐëÔÚÏàÓ¦É豸Çý¶¯¼ÓÔØÖ®Ç°±»µ÷Ó㬼´Ö´ÐÐ platform_driver_register
֮ǰ ,
ÔÒòÊÇÒòΪÇý¶¯×¢²áʱÐèҪƥÅäÄÚºËÖÐËùÒÔÒÑ×¢²áµÄÉ豸Ãû¡£
ÔÚÇý¶¯³õʼ»¯º¯ÊýÖе÷Óú¯Êý platform_driver_
Ïà¹ØÎĵµ£º
1. HCI²ãÐÒé¸ÅÊö£º
HCIÌṩһÌ×ͳһµÄ·½·¨À´·ÃÎÊBluetoothµ×²ã¡£ÈçͼËùʾ£º
´ÓͼÉÏ¿ÉÒÔ¿´³ö£¬Host Controller Interface(HCI) ¾ÍÊÇÓÃÀ´¹µÍ¨HostºÍModule¡£Hostͨ³£¾ÍÊÇPC£¬ ModuleÔòÊÇÒÔ¸÷ÖÖÎïÀíÁ¬½ÓÐÎʽ£¨USB,serial,pc-cardµÈ£©Á¬½Óµ½PCÉϵÄbluetooth Dongle¡£
ÔÚHostÕâÒ»¶Ë£ºapplication,SDP,L2capµÈÐÒé ......
£¨L2CAPÐÒé¼ò½é£¬L2CAPÔÚBlueZÖеÄʵÏÖÒÔ¼°L2CAP±à³Ì½Ó¿Ú£©
Ò»£ºL2CAPÐÒé¼ò½é£º
Logical Link Control and Adaptation Protocol(L2CAP)
Âß¼Á¬½Ó¿ØÖƺÍÊÊÅäÐÒé (L2CAP) ΪÉϲãÐÒéÌá¹©ÃæÏòÁ¬½ÓºÍÎÞÁ¬½ÓµÄÊý¾Ý·þÎñ£¬²¢Ìṩ¶àÐÒ鹦ÄܺͷָîÖØ×é²Ù×÷¡£L2CAP ³äÐíÉϲãÐÒéºÍÓ¦ÓÃÈí¼þ´«ÊäºÍ½ÓÊÕ×î´ó³¤¶ÈΪ 64K µÄ L2CAP Ê ......
PS1£º¾ÍÊÇÓû§Æ½Ê±µÄÌáʾ·û¡£
¡¡¡¡PS2£ºµÚÒ»ÐÐûÊäÍ꣬µÈ´ýµÚ¶þÐÐÊäÈëµÄÌáʾ·û¡£
¡¡¡¡LinuxϵͳÌáʾ·ûÊÇÓÃϵͳ±äÁ¿PS1À´¶¨ÒåµÄ¡£Ò»°ãϵͳĬÈϵÄÐÎʽÊÇ£º[username@host ¹¤×÷Ŀ¼]$.
¡¡¡¡ÓÃecho $PS1¿ÉÒԵõ½PS1µÄÖµ£¬¼´PS1="[\u@\h \w]"\$
¡¡¡¡µÇ¼ºó¿ÉÒÔ¸ü¸ÄPS1µÄÏÔʾÑùʽ£¬µ«Êǵ±Í˳öÖØÆôµÇ¼½øÈëϵͳºó£¬ÑùʽÓÖ±ä³ ......
http://tech.idv2.com/2008/01/11/linux-sysinfo-cmds/
×î½ü¿´ÁËһЩLinuxÃüÁîÐеÄÎÄÕ£¬ÔÚϵͳÐÅÏ¢²é¿´·½ÃæÑ§µ½²»ÉÙÃüÁî¡£
ÏëÆðÒÔǰд¹ýµÄһƪÆäʵLinuxÕâÑùÓøü¼òµ¥
£¬
·¢ÏÖÕâЩϵͳÐÅÏ¢²é¿´ÃüÁîÒ²¿ÉÒÔ×ܽá³öһƪССµÄ¶«Î÷À´ÁË¡£
ÁíÍâÕâÀï
»¹Óзdz£¶àµÄÃüÁ
¿ÉÒÔ×÷Ϊ²Î¿¼¡£
ϵͳ
# uname -a # ......