Ò׽ؽØͼÈí¼þ¡¢µ¥Îļþ¡¢Ãâ°²×°¡¢´¿ÂÌÉ«¡¢½ö160KB

Linux ÐéÄâÊó±ê£¬¼üÅÌ Ö®Ò»¡£

Linux ÓÐ×Ô¼ºµÄ input ×Óϵͳ£¬¿ÉÒÔͳһ¹ÜÀíÊó±êºÍ¼üÅÌʼþ¡£
»ùÓÚÊäÈë×Óϵͳ ʵÏÖµÄ uinput ¿ÉÒÔ·½±ãµÄÔÚÓû§¿Õ¼äÄ£ÄâÊó±êºÍ¼üÅÌʼþ¡£
µ±È»£¬Ò²¿ÉÒÔ×Ô¼ºÔìÂÖ×Ó£¬ ×öÒ»¸ö×Ö·ûÉ豸½ÓÊÕÓû§ÊäÈ룬¸ù¾ÝÊäÈ룬ͶµÝ input ʼþ¡£
»¹ÓÐÒ»ÖÖ·½Ê½¾ÍÊÇÖ±½Ó Íù evnent ÀïдÈëÊý¾Ý£¬ ¶¼¿ÉÒÔ´ïµ½¿ØÖÆÊó±ê¼üÅ̵ŦÄÜ¡£
±¾ÆªÎÄÕ¾ÍÊÇÑÝʾֱ½ÓдÈë event µÄ·½·¨¡£
linux/input.hÖÐÓж¨Ò壬Õâ¸öÎļþ»¹¶¨ÒåÁ˱ê×¼°´¼üµÄ±àÂëµÈ
struct input_event {
    struct timeval time;  //°´¼üʱ¼ä
    __u16 type; //ÀàÐÍ£¬ÔÚÏÂÃæÓж¨Òå
    __u16 code; //ҪģÄâ³Éʲô°´¼ü
    __s32 value;//ÊÇ°´Ï»¹ÊÇÊÍ·Å
};
code£º
ʼþµÄ´úÂë.Èç¹ûʼþµÄÀàÐÍ´úÂëÊÇEV_KEY,¸Ã´úÂëcodeΪÉ豸¼üÅÌ´úÂë.´úÂëÖ²0~127Ϊ¼üÅÌÉϵİ´¼ü´úÂë, 0x110~0x116 ΪÊó±êÉÏ°´¼ü´úÂë,ÆäÖÐ0x110(BTN_ LEFT)ΪÊó±ê×ó¼ü,0x111(BTN_RIGHT)ΪÊó±êÓÒ¼ü,0x112(BTN_ MIDDLE)ΪÊó±êÖмü.ÆäËü´úÂ뺬ÒåÇë²Î¿´include/linux /input.hÎļþ. Èç¹ûʼþµÄÀàÐÍ´úÂëÊÇEV_REL,codeÖµ±íʾ¹ì¼£µÄÀàÐÍ.ÈçָʾÊó±êµÄXÖá·½Ïò REL_X (´úÂëΪ0x00),ָʾÊó±êµÄYÖá·½ÏòREL_Y(´úÂëΪ0x01),ָʾÊó±êÖÐÂÖ×Ó·½ÏòREL_WHEEL(´úÂëΪ0x08).
type:
EV_KEY,¼üÅÌ
EV_REL,Ïà¶Ô×ø±ê
EV_ABS,¾ø¶Ô×ø±ê
value£º
ʼþµÄÖµ.Èç¹ûʼþµÄÀàÐÍ´úÂëÊÇEV_KEY,µ±°´¼ü°´ÏÂʱֵΪ1,ËÉ¿ªÊ±ÖµÎª0;Èç¹ûʼþµÄÀàÐÍ´úÂëÊÇEV_ REL,valueµÄÕýÊýÖµºÍ¸ºÊýÖµ·Ö±ð´ú±íÁ½¸ö²»Í¬·½ÏòµÄÖµ.
/*
 * Event types
 */
#define EV_SYN            0x00
#define EV_KEY            0x01 //°´¼ü
#define EV_REL            0x02 //Ïà¶Ô×ø±ê(¹ì¼£Çò)
#define EV_ABS            0x03 //¾ø¶Ô×ø±ê
#define EV_MSC            0x04 //ÆäËû
#define EV_SW            0x05
#define EV_LED            0x11 //LED
#define EV_SND      &


Ïà¹ØÎĵµ£º

20.1 LinuxÄÚºËÒÆÖ²Òªµã

20.1  LinuxÄÚºËÒÆÖ²Òªµã
LinuxµÄ´úÂëÍêÈ«¿ª·ÅÒÔ¼°ÆäÁ¼ºÃµÄ½á¹¹Éè¼Æ·Ç³£ÊÊÓÚǶÈëʽϵͳ¡£ÒÆÖ²Linuxϵͳ°üÀ¨Äںˡ¢³ÌÐò¿âºÍÓ¦ÓóÌÐò£¬ÆäÖÐ×îÖ÷ÒªµÄ¾ÍÊÇÄÚºËÒÆÖ²¡£ÓÉÓÚLinuxÄں˵Ŀª·ÅÐÔ£¬³öÏÖÁËÐí¶àÕë¶ÔǶÈëʽӲ¼þϵͳµÄÄں˰汾£¬ÆäÖÐÖøÃûµÄ°üÀ¨μcLinux¡¢RT-LinuxµÈ¡£
Linux±¾Éí¶ÔÄÚ´æ¹ÜÀí£¨MMU£©ÓкܺõÄÖ§³Ö¡£Ò ......

LinuxÄں˵Äͬ²½»úÖÆ

Ò»¡¢ÒýÑÔ
ÔÚÏÖ´ú²Ù×÷ϵͳÀͬһʱ¼ä¿ÉÄÜÓжà¸öÄÚºËÖ´ÐÐÁ÷ÔÚÖ´ÐУ¬Òò´ËÄÚºËÆäʵÏó¶à½ø³Ì¶àÏ̱߳à³ÌÒ»ÑùÒ²ÐèҪһЩͬ²½»úÖÆÀ´Í¬²½¸÷Ö´Ðе¥Ôª¶Ô¹²ÏíÊý¾ÝµÄ·ÃÎÊ¡£ÓÈÆäÊÇÔڶദÀíÆ÷ϵͳÉÏ£¬¸üÐèҪһЩͬ²½»úÖÆÀ´Í¬²½²»Í¬´¦ÀíÆ÷ÉϵÄÖ´Ðе¥Ôª¶Ô¹²ÏíµÄÊý¾ÝµÄ·ÃÎÊ¡£
ÔÚÖ÷Á÷µÄLinuxÄÚºËÖаüº¬Á˼¸ºõËùÓÐÏÖ´úµÄ²Ù×÷ϵͳ¾ßÓеÄͬ²½» ......

LinuxÄÚºËͬ²½£¬½ø³Ì£¬Ïß³Ìͬ²½

°üÀ¨ÎÒ×Ô¼ºÔÚÄÚ£¬ºÜ¶àÈ˶ÔÄںˣ¬½ø³Ì£¬Ïß³Ìͬ²½¶¼²»ÊǺÜÇå³þ£¬ÏÂÃæÉÔ΢×ܽáһϣº
 
ÄÚºËͬ²½£º
Ö÷ÒªÊÇ·ÀÖ¹¶àºË´¦ÀíÆ÷ͬʱ·ÃÎÊÐÞ¸Äij¶Î´úÂ룬»òÕßÔÚ¶ÔÉ豸Çý¶¯³ÌÐò½øÐÐÁÙ½çÇø±£»¤¡£Ö÷ÒªÓÐһϼ¸ÖÖ·½Ê½£º
1. Mutex£¨»¥³â£©
Í·Îļþ£º
#include <linux/mutex.h>
³õʼ»¯·½·¨£º
DEFINE_MUTEX(name);»òÕß ......

ÈçºÎÀ´ÅжÏÄãµÄLinuxϵͳ»úÆ÷ÊÇ·ñ±»ºÚ£¿


Ë׳Ɠ½Å±¾Ð¡¹í”µÄ¼Ò»ïÊÇÊôÓÚÄÇÖÖºÜÔã¸âµÄºÚ¿Í£¬ÒòΪ»ù±¾ÉÏËûÃÇÖеÄÐí¶àºÍ´ó¶àÊýÈ˶¼ÊÇÈç´ËµÄûÓм¼ÇÉ¡£¿ÉÒÔÕâÑù˵£¬Èç¹ûÄã°²×°ÁËËùÓÐÕýÈ·µÄ²¹¶¡£¬ÓµÓо­¹ý²âÊԵķÀ»ðǽ£¬²¢ÇÒÔÚ¶à¸ö¼¶±ð¶¼¼¤»îÁËÏȽøµÄÈëÇÖ¼ì²âϵͳ£¬ÄÇôֻÓÐÔÚÒ»ÖÖÇé¿öÏÂÄã²Å»á±»ºÚ£¬ÄǾÍÊÇ£¬ÄãÌ«ÀÁÁËÒÔÖÁûȥ×ö¸Ã×öµÄÊÂÇ飬ÀýÈ磬°²×°BINDµÄ ......

LinuxϵͳÏÂÄÚ´æÉêÇëÓ¦Óõķ½·¨Ô­Àí×ܽá

1. µØÖ·¿Õ¼äµÄ¹ÜÀí
¡¡¡¡ÎïÀíµØÖ·¶¼ÊÇÓÐÄں˹ÜÀíµÄ£¬ node-->zone-->mem_map-->page, ËùÓеÄÎïÀíÒ³Ã涼ÔÚmem_mapÊý×éÖеÄÒ³Ö¡¶ÔÓ¦£¬ È»ºó²»Í¬µÄpageÓзÖΪDMA£¬normal£¬highmemÈý¸özone¡£
¡¡¡¡ÄÚºËÏßÐÔµØÖ·¿Õ¼ä£¬ ʵ¼ÊÉÏÖ»ÊǵͶËÄÚ´æ²ÅÓÐÏßÐÔµØÖ·£¬0---896MB²¿·Ö¡£
¡¡¡¡ÄÚºËÐéÄâµØÖ·£¬ µÍ¶ËÄÚ´æµÄÐéÄâµØÖ·ÓëÏ ......
© 2009 ej38.com All Rights Reserved. ¹ØÓÚE½¡ÍøÁªÏµÎÒÃÇ | Õ¾µãµØͼ | ¸ÓICP±¸09004571ºÅ