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
Ïà¹ØÎĵµ£º
Ò»£ºÇ°ÑÔ
×î½üÔÚÑо¿androidµÄsensor driver£¬Ö÷ÒªÊÇE-compass£¬ÆäÖÐÓõ½ÁËLinux input×Óϵͳ.ÔÚÍøÉÏÒ²¿´Á˺ܶàÕâ·½ÃæµÄ×ÊÁÏ£¬¸Ð¾õ»¹ÊÇÕâÆª·ÖÎöµÄ±È½ÏϸÖÂ͸³¹£¬Òò´Ë×ªÔØÒ»ÏÂÒÔ±ã×Ô¼ºÑ§Ï°£¬Í¬Ê±ºÍ´ó¼Ò·ÖÏí£¡
£¨ÕâÆª²©¿ÍÖ÷ÒªÊÇÒÔ¼üÅÌÇý¶¯ÎªÀýµÄ£¬²»¹ý½²½âµÄÊÇLinux Input Subsystem£¬¿ÉÒÔ×ÐϸµÄÑо¿Ò»Ï£¡£©
¼üÅÌÇý¶¯½«¼ì ......
ÕâôÄã¾ÍÐèÒªÐÞ¸ÄÒ»ÏÂ×Ö·û±àÂëµÄÅäÖá£
# cd /etc/sysconfig
# vi i18n
-------------------ÎļþÄÚÈÝ------------------
LANG="zh_CN.GB18030"
SUPPORTED="zh_CN.UTF-8:zh_CN:zh:en_US.UTF-8:en_US:en:zh_CN.GB18030"
SYSFONT="latarcyrheb-sun16"
-----------------------£ºqw ±£´æÍ ......
cron ÊÇlinuxµÄÄÚÖ÷þÎñ£¬µ«Ëü²»×Ô¶¯ÆðÀ´£¬¿ÉÒÔÓÃÒÔÏµķ½·¨Æô¶¯¡¢¹Ø±ÕÕâ¸ö·þÎñ£º
ÒýÓÃ:
/sbin/service crond start //Æô¶¯·þÎñ
/sbin/service crond stop //¹Ø±Õ·þÎñ
/sbin/service crond restart //ÖØÆô·þÎñ
/sbin/service crond reload //ÖØÐÂÔØÈëÅäÖÃ
//============= ......
SyslogÉ豸ÒÀ¾ÝÁ½¸öÖØÒªµÄÎļþ£º/etc/syslogd£¨ÊØ»¤½ø³Ì£©ºÍ/etc/syslog.confÅäÖÃÎļþ£¬Ï°¹ßÉÏ£¬¶àÊýsyslog ÐÅÏ¢±»Ð´µ½/var/adm»ò/var/logĿ¼ÏµÄÐÅÏ¢ÎļþÖУ¨messages.*£©¡£Ò»¸öµäÐ͵Äsyslog¼Í¼°üÀ¨Éú³É³ÌÐòµÄÃû×ÖºÍÒ»¸öÎı¾ÐÅÏ¢¡£Ëü»¹°üÀ¨Ò»¸öÉ豸ºÍÒ»¸öÓÅÏȼ¶·¶Î§£¨µ«²»ÔÚÈÕÖ®ÖгöÏÖ£©¡£
¡¡¡¡Ã¿¸ösyslogÏûÏ¢±»¸³ÓèÏ ......
¹ØÓÚLinuxµÄÊÓÆµ±à³Ì(v4l2±à³Ì)
Posted on ÐÇÆÚÒ», 2ÔÂ 23rd, 2009 at 11:47 ÏÂÎç
Ô´ÎÄÀ´×Ôhttp://www.isongzi.com/2009/02/23/v4l2/
ǰÑÔ£ºÄ¿Ç°ÕýÔÚæÓÚARMƽ̨µÄLinuxÓ¦ÓóÌÐòµÄ¿ª·¢£¨ÆäʵÊÇ¸Õ¸ÕÆð²½Ñ§Ï°À²£©¡£µ×²ãµÄ¶«Î÷²»Óÿ¼ÂÇÁË£¬¿ª·¢°å×ÓÌṩÁËNAND Bootloader£¬ºÍLinux 2.6µÄÔ´Â룬¶øÇÒ¶¼±àÒëºÃÁË¡£×Ô¼º±àÒëµÄ ......