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ÄÚºËÒÆÖ²Òªµã
LinuxµÄ´úÂëÍêÈ«¿ª·ÅÒÔ¼°ÆäÁ¼ºÃµÄ½á¹¹Éè¼Æ·Ç³£ÊÊÓÚǶÈëʽϵͳ¡£ÒÆÖ²Linuxϵͳ°üÀ¨Äںˡ¢³ÌÐò¿âºÍÓ¦ÓóÌÐò£¬ÆäÖÐ×îÖ÷ÒªµÄ¾ÍÊÇÄÚºËÒÆÖ²¡£ÓÉÓÚLinuxÄں˵Ŀª·ÅÐÔ£¬³öÏÖÁËÐí¶àÕë¶ÔǶÈëʽӲ¼þϵͳµÄÄں˰汾£¬ÆäÖÐÖøÃûµÄ°üÀ¨μcLinux¡¢RT-LinuxµÈ¡£
Linux±¾Éí¶ÔÄÚ´æ¹ÜÀí£¨MMU£©ÓкܺõÄÖ§³Ö¡£Ò ......
Ò»¡¢ÒýÑÔ
ÔÚÏÖ´ú²Ù×÷ϵͳÀͬһʱ¼ä¿ÉÄÜÓжà¸öÄÚºËÖ´ÐÐÁ÷ÔÚÖ´ÐУ¬Òò´ËÄÚºËÆäʵÏó¶à½ø³Ì¶àÏ̱߳à³ÌÒ»ÑùÒ²ÐèҪһЩͬ²½»úÖÆÀ´Í¬²½¸÷Ö´Ðе¥Ôª¶Ô¹²ÏíÊý¾ÝµÄ·ÃÎÊ¡£ÓÈÆäÊÇÔڶദÀíÆ÷ϵͳÉÏ£¬¸üÐèҪһЩͬ²½»úÖÆÀ´Í¬²½²»Í¬´¦ÀíÆ÷ÉϵÄÖ´Ðе¥Ôª¶Ô¹²ÏíµÄÊý¾ÝµÄ·ÃÎÊ¡£
ÔÚÖ÷Á÷µÄLinuxÄÚºËÖаüº¬Á˼¸ºõËùÓÐÏÖ´úµÄ²Ù×÷ϵͳ¾ßÓеÄͬ²½» ......
°üÀ¨ÎÒ×Ô¼ºÔÚÄÚ£¬ºÜ¶àÈ˶ÔÄںˣ¬½ø³Ì£¬Ïß³Ìͬ²½¶¼²»ÊǺÜÇå³þ£¬ÏÂÃæÉÔ΢×ܽáһϣº
ÄÚºËͬ²½£º
Ö÷ÒªÊÇ·ÀÖ¹¶àºË´¦ÀíÆ÷ͬʱ·ÃÎÊÐÞ¸Äij¶Î´úÂ룬»òÕßÔÚ¶ÔÉ豸Çý¶¯³ÌÐò½øÐÐÁÙ½çÇø±£»¤¡£Ö÷ÒªÓÐһϼ¸ÖÖ·½Ê½£º
1. Mutex£¨»¥³â£©
Í·Îļþ£º
#include <linux/mutex.h>
³õʼ»¯·½·¨£º
DEFINE_MUTEX(name);»òÕß ......
Ë׳Ɠ½Å±¾Ð¡¹í”µÄ¼Ò»ïÊÇÊôÓÚÄÇÖÖºÜÔã¸âµÄºÚ¿Í£¬ÒòΪ»ù±¾ÉÏËûÃÇÖеÄÐí¶àºÍ´ó¶àÊýÈ˶¼ÊÇÈç´ËµÄûÓм¼ÇÉ¡£¿ÉÒÔÕâÑù˵£¬Èç¹ûÄã°²×°ÁËËùÓÐÕýÈ·µÄ²¹¶¡£¬ÓµÓо¹ý²âÊԵķÀ»ðǽ£¬²¢ÇÒÔÚ¶à¸ö¼¶±ð¶¼¼¤»îÁËÏȽøµÄÈëÇÖ¼ì²âϵͳ£¬ÄÇôֻÓÐÔÚÒ»ÖÖÇé¿öÏÂÄã²Å»á±»ºÚ£¬ÄǾÍÊÇ£¬ÄãÌ«ÀÁÁËÒÔÖÁûȥ×ö¸Ã×öµÄÊÂÇ飬ÀýÈ磬°²×°BINDµÄ ......
1. µØÖ·¿Õ¼äµÄ¹ÜÀí
¡¡¡¡ÎïÀíµØÖ·¶¼ÊÇÓÐÄں˹ÜÀíµÄ£¬ node-->zone-->mem_map-->page, ËùÓеÄÎïÀíÒ³Ã涼ÔÚmem_mapÊý×éÖеÄÒ³Ö¡¶ÔÓ¦£¬ È»ºó²»Í¬µÄpageÓзÖΪDMA£¬normal£¬highmemÈý¸özone¡£
¡¡¡¡ÄÚºËÏßÐÔµØÖ·¿Õ¼ä£¬ ʵ¼ÊÉÏÖ»ÊǵͶËÄÚ´æ²ÅÓÐÏßÐÔµØÖ·£¬0---896MB²¿·Ö¡£
¡¡¡¡ÄÚºËÐéÄâµØÖ·£¬ µÍ¶ËÄÚ´æµÄÐéÄâµØÖ·ÓëÏ ......