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_
Ïà¹ØÎĵµ£º
ÔÚlinuxÀïÃæ£¬fork()Ò»¸ö×Ó½ø³Ì£¬½á¹ûÔõô¶¼É±²»µô¡£ÓÉÓÚ²»ÊÇrootÓû§£¬Ê¹ÓÃkill -9 pid£¬Ò²Ã»Óá£
ÔÚps -awtµÄʱºò×ÜÊÇÄÜ¿´µ½ÄǸö×Ó½ø³Ì¡£ÎÒÔÚ×Ó½ø³ÌÀïÃæÆðÁ˸öshell¡£
ºóÀ´googleÁËһϣ¬·¢ÏÖÒªµ÷ÓÃwaitpid²Å¿ÉÒÔ¡£
Õâ¸öÊÇËùνµÄzombie£¨½©Ê¬½ø³Ì£©
ÒýÓÃÒ»¶Î£º
ÔÚfork()/execve()¹ý³ÌÖУ¬¼ÙÉè×Ó½ø³Ì½áÊøÊ±¸¸½ø³ÌÈÔ ......
PS1£º¾ÍÊÇÓû§Æ½Ê±µÄÌáʾ·û¡£
¡¡¡¡PS2£ºµÚÒ»ÐÐûÊäÍ꣬µÈ´ýµÚ¶þÐÐÊäÈëµÄÌáʾ·û¡£
¡¡¡¡LinuxϵͳÌáʾ·ûÊÇÓÃϵͳ±äÁ¿PS1À´¶¨ÒåµÄ¡£Ò»°ãϵͳĬÈϵÄÐÎʽÊÇ£º[username@host ¹¤×÷Ŀ¼]$.
¡¡¡¡ÓÃecho $PS1¿ÉÒԵõ½PS1µÄÖµ£¬¼´PS1="[\u@\h \w]"\$
¡¡¡¡µÇ¼ºó¿ÉÒÔ¸ü¸ÄPS1µÄÏÔʾÑùʽ£¬µ«Êǵ±Í˳öÖØÆôµÇ¼½øÈëϵͳºó£¬ÑùʽÓÖ±ä³ ......
------------LinuxÉϹÒÔØWindows¹²ÏíĿ¼£¨ÖØÆôºóʧЧ£©--------------------
µÚÒ»²½£ºÏÈÔÚWindowsÉÏ´´½¨Ò»¸ö¹²ÏíĿ¼
µÚ¶þ²½£ºÔÚlinuxÖÐÔËÐÐÈçÏÂÃüÁ
mount.cifs //192.168.10.43/shared /root/shared -o user=name,pass=123456
×¢£º/root/sharedÊÇlinuxÉϵÄĿ¼¡£userÊÇWindowsϵͳµÄÓû§Ãû passÊÇWindo ......