LinuxÄÚºËÖÐARMÖжÏʵÏÖÏê½ârequest_irq£¨£©
ÔÚlinuxÄÚºËÖÐÓÃÓÚÉêÇëÖжϵĺ¯ÊýÊÇrequest_irq£¨£©£¬º¯ÊýÔÐÍÔÚKernel/irq/manage.cÖж¨Ò壺
int request_irq(unsigned int irq, irq_handler_t handler,
unsigned long irqflags, const char *devname, void *dev_id)
irq
ÊÇÒªÉêÇëµÄÓ²¼þÖжϺš£
handler
ÊÇÏòϵͳע²áµÄÖжϴ¦Àíº¯Êý£¬ÊÇÒ»¸ö»Øµ÷º¯Êý£¬ÖжϷ¢Éúʱ£¬ÏµÍ³µ÷ÓÃÕâ¸öº¯Êý£¬dev_id²ÎÊý½«±»´«µÝ¸øËü¡£
irqflags
ÊÇÖжϴ¦ÀíµÄÊôÐÔ£¬ÈôÉèÖÃÁËIRQF_DISABLED
£¨Àϰ汾ÖеÄSA_INTERRUPT£¬±¾°æzhonÒѾ²»Ö§³ÖÁË£©£¬Ôò±íʾÖжϴ¦Àí³ÌÐòÊÇ¿ìËÙ´¦Àí³ÌÐò£¬¿ìËÙ´¦Àí³ÌÐò±»µ÷ÓÃʱÆÁ±ÎËùÓÐÖжϣ¬ÂýËÙ´¦Àí³Ì
Ðò²»ÆÁ±Î£»ÈôÉèÖÃÁËIRQF_SHARED
£¨Àϰ汾ÖеÄSA_SHIRQ£©£¬Ôò±íʾ¶à¸öÉ豸¹²ÏíÖжϣ¬ÈôÉèÖÃÁËIRQF_SAMPLE_RANDOM£¨Àϰ汾ÖеÄ
SA_SAMPLE_RANDOM£©£¬±íʾ¶ÔϵͳìØÓй±Ï×£¬¶Ôϵͳ»ñÈ¡Ëæ»úÊýÓкô¦¡££¨Õ⼸¸öflagÊÇ¿ÉÒÔͨ¹ý»òµÄ·½Ê½Í¬Ê±Ê¹Óõģ©
dev_id
ÔÚÖжϹ²Ïíʱ»áÓõ½£¬Ò»°ãÉèÖÃΪÕâ¸öÉ豸µÄÉ豸½á¹¹Ìå»òÕßNULL¡£
devname
ÉèÖÃÖжÏÃû³Æ£¬ÔÚcat /proc/interruptsÖпÉÒÔ¿´µ½´ËÃû³Æ¡£
request_irq()·µ»Ø0±íʾ³É¹¦£¬·µ»Ø-INVAL±íʾÖжϺÅÎÞЧ»ò´¦Àíº¯ÊýÖ¸ÕëΪNULL£¬·µ»Ø-EBUSY±íʾÖжÏÒѾ±»Õ¼ÓÃÇÒ²»Äܹ²Ïí¡£
Ïà¹ØÎĵµ£º
¡¡±¾Õ½éÉÜLinuxÉÏ×î³£ÓõÄÎı¾±à¼Æ÷Vi¡£Îı¾±à¼Æ÷ÊÇËùÓмÆËã»úϵͳÖÐ×ʹÓõÄÒ»ÖÖ¹¤¾ß¡£Óû§ÔÚʹÓüÆËã»úµÄʱºò£¬ÍùÍùÐèÒª½¨Á¢×Ô¼ºµÄÎļþ£¬ÎÞÂÛÊÇÒ»°ãµÄÎı¾Îļþ¡¢Êý¾ÝÎļþ£¬»¹ÊDZàдµÄÔ´³ÌÐòÎļþ£¬ÕâЩ¹¤×÷¶¼Àë²»¿ª±à¼Æ÷¡£
¡¡¡¡LinuxϵͳÌṩÁËÒ»¸öÍêÕûµÄ±à¼Æ÷¼Ò×åϵÁУ¬ÈçEd¡¢Ex¡¢ViºÍEmacsµÈ£¬°´¹¦ÄÜËüÃÇ¿ÉÒÔ·ÖÎ ......
ddÃüÁî
°ÑÖ¸¶¨µÄÊäÈëÎļþ¿½±´µ½Ö¸¶¨µÄÊä³öÎļþÖУ¬²¢ÇÒÔÚ¿½±´µÄ¹ý³ÌÖпÉÒÔ½øÐиñʽת»»¡£Óï·¨£º
CODE:[Copy to clipboard]dd ¡²Ñ¡Ï
QUOTE:
if =ÊäÈëÎļþ£¨»òÉ豸Ãû³Æ£©¡£
of =Êä³öÎļþ£¨»òÉ豸Ãû³Æ£©¡£
ibs = bytes Ò»´Î¶ÁÈ¡bytes×Ö½Ú£¬¼´¶ÁÈ뻺³åÇøµÄ×Ö½ÚÊý¡£
skip = blocks Ìø¹ý¶ÁÈ뻺³åÇø¿ªÍ·µÄibs*blo ......
LinuxÆô¶¯Ê±£¬µÚÒ»¸ö±ØÐë¹ÒÔØµÄÊǸùÎļþϵͳ£»Èôϵͳ²»ÄÜ´ÓÖ¸¶¨É豸ÉϹÒÔØ¸ùÎļþϵͳ£¬Ôòϵͳ»á³ö´í¶øÍ˳öÆô¶¯¡£Ö®ºó¿ÉÒÔ×Ô¶¯»òÊÖ¶¯¹ÒÔØÆäËûµÄÎļþϵͳ¡£Òò´Ë£¬Ò»¸öϵͳÖпÉÒÔͬʱ´æÔÚ²»Í¬µÄÎļþϵͳ¡£²»Í¬µÄÎļþϵͳÀàÐÍÓв»Í¬µÄÌØµã£¬Òò¶ø¸ù¾Ý´æ´¢É豸µÄÓ²¼þÌØÐÔ¡¢ÏµÍ³ÐèÇóµÈÓв»Í¬ ......