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;
};
 
ÏÂÃæ¾Ùs3c2410ƽ̨µÄi2cÇý¶¯×÷ΪÀý×ÓÀ´ËµÃ÷£º
 
/* arch/arm/mach-s3c2410/devs.c */
/* I2C */
static struct resource s3c_i2c_resource[] = {
         [0] = {
                   .start = S3C24XX_PA_IIC,
                   .end = S3C24XX_PA_IIC + S3C24XX_SZ_IIC - 1,
             
    
     
	
	
    
    
	Ïà¹ØÎĵµ£º
        
    
    ÈíʵʱºÍӲʵʱ£¬ÈíʵʱÊÇ˵Υ·´Á˳ÌÐòÖ´ÐеÄdeadlineÒ²²»»áÓÐÖÂÃüµÄ´íÎ󣬶øÓ²ÊµÊ±µÄdeadlineÊÇдËÀµÄ¡£
ºÜ¶àlinuxÓÐӲʵʱµÄ²¹¶¡£¬ÈçMontaVista¡£
ÓÐÔ´¾§ÕñºÍÎÞÔ´¾§Õñ£¬ÓÐÔ´µÄ½Ðosllicator£¬ÎÞÔ´µÄ½Ðcrystal¡£
 uclinuxÊǾ²Ì¬±àÒëµÄ£¬Ã»ÓÐmmu»úÖÆ¡£
x86µÄҪѡxterm...
serveu¼ÙÉè·þÎñÆ÷ + linuxÓÃsftp£¨Í¨¹ýssh ......
	
    
        
    
    ÓÅÏÈȨֻÊǵ÷¶ÈËã·¨¿¼ÂǵÄÒ»¸ö·½Ãæ 
½ø³Ìµ÷¶ÈÒÀ¾Ý 
µ÷¶È³ÌÐòÔËÐÐʱ£¬ÒªÔÚËùÓпÉÔËÐÐ״̬µÄ½ø³ÌÖÐÑ¡Ôñ×îÖµµÃÔËÐеĽø³ÌͶÈëÔËÐС£Ñ¡Ôñ½ø³ÌµÄÒÀ¾ÝÊÇÊ²Ã´ÄØ£¿ÔÚÿ¸ö½ø³ÌµÄtask_struct½á¹¹ÖÐÓÐÒÔÏÂËÄÏpolicy¡¢priority¡¢counter¡¢rt_priority¡£ÕâËÄÏîÊÇÑ¡Ôñ½ø³ÌµÄÒÀ¾Ý¡£ÆäÖУ¬policyÊǽø³ÌµÄµ÷¶È²ßÂÔ£¬ÓÃÀ´Çø·Öʵʱ½ø³ÌºÍÆ ......
	
    
        
    
    
1. ¹Ì¶¨Ò»¸öMACµØÖ·£¬ÌرðÊÇÔÚʹÓöà¸öÐéÄâ»úµÄʱºò
linux»·¾³ÏÂ:
ÓÃrootÉí·ÝµÇ¼£¬ÔÚ/etc/rc.d/rc.localÀï¼ÓÉÏÕâÈý¾ä
ifconfig eth0 down
ifconfig eth0 hw ether 00:0C:18:EF:FF:ED
ifconfig eth0 up
ÕâÑùÖØÐÂrebootºó¾Í²»ÅÂMAC¸´ÔÁË¡£
2. ifconfigÃüÁî£¨×ªÔØhttp://www.cnblogs.com/taobataoma/archive/2007/1 ......
	
    
        
    
    ѧϰUbuntu LinuxºÜ¾ÃÁË£¬ÓÉÓںܶàÈ˶ÔÓÚUbuntu Linux·ÖÇøÓÐËùÌáÎÊ£¬ËùÒÔÏ£ÍûÒÔÏÂÎÄÕ¶Դó¼ÒÓÐËù°ïÖú¡£Ubuntu Linux ·ÖÇø¸ÅÄ   Ê×ÏȽéÉÜÒ»ÏÂlinuxÖеķÖÇø¸ÅÄÕâ¸ö¿ÉÊǰÑÒ»¿ªÊ¼Ñ§Ï°µÄÎÒº¦¿àÁË¡£ÔÚ Linux Öй涨£¬Ã¿Ò»¸öÓ²ÅÌÉ豸×î¶àÄÜÓÐ 4 ¸öÖ÷·ÖÇø£¨ÆäÖаüº¬À©Õ¹·ÖÇø£©¹¹³É£¬ÈκÎÒ»¸öÀ©Õ¹·ÖÇø¶¼ÒªÕ¼ÓÃÒ»¸öÖ÷·ÖÇøºÅÂë£ ......
	
    
        
    
    Õⲿ·ÖÄÜÓñ¾×ÅÏë¼Ç¾Í¾Í¼Ç£¬Ïë²»ÆðÀ´¾Í²»¼ÇµÄÔÔò¡£Í¬ÊdzöÓÚÁ·Ï°Ó¢ÎĵÄÄ¿µÄ£¬²¿·Ö²»ÖØÒªÄÚÈݼƻ®ÓÃÓ¢ÎÄ¡£ 
ÊÂÏÈ˵Ã÷ÎÒ¶ÁµÄÊÇlinux1.0£¬ÕâÀï¿ÉÒÔ¼¸ºõ²»ÓÃÔõô¿´µ½lock ǰ׺£¬¶¼Êǵ¥cpu£¬Í¬Ê±ÓÐÒýµ¼³ÌÐò¡£ Ê×ÏÈ˵Ã÷cpuΪʲô»áÔËתÆðÀ´£º 
1£ºcpuÉϵçºó»á´Óijһ¸öµØÖ·¿ªÊ¼Ë³ÐòÖ´ÐгÌÐò£¬µ±È»´ËʱÊÇʵģʽ£¨Èç¹ûÎÊʲôÊÇʵģ ......