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

Linux¼üÅÌÇý¶¯·¶Àý

¼üÅÌÔÚËùÓеÄÇý¶¯Ö®ÖÐ×îΪ¼òµ¥µÄÒ»ÖÖ£¬µ«ËüÈ´°üº¬ÁËÇý¶¯µÄ»ù±¾¿ò¼Ü£¬¶ÔÒÔºó¼ÌÐøÉîÈëѧϰÆäËû¸´ÔÓµÄÇý¶¯´óÓÐñÔÒæ£¬ÒÔϱãΪÄãÖð²½ÆÊÎöÇý¶¯µÄ¿ª·¢¡£²ÉÓõÄÊDzéѯ·½Ê½¡£×ªÔØÇë×¢Ã÷³ö´¦£ºqiangren.blog.edu.cn 
Ò».ÄÚºËÄ£¿éµÄ×¢²áºÍ³·Ïú
ÔÚ¼ÓÔØÄ£¿éµÄʱºò£¬Ê×ÏÈÔËÐеÄÊÇÄÚºËÄ£¿éµÄ×¢²áº¯Êý¡£ËüµÄ¹¦ÄܰüÀ¨ÄÚºË×¢²áÉ豸ÒÔ¼°±äÁ¿µÄ³õʼ»¯¡£
static int head,tail;
int  _init Keypad_init(void)
{
     int result;
     result=register_chrdev(KEY_LED_MAJOR,KEY_LED_NAME,&Keypad_fops);
     Keypad_clear();
     init_waitqueue_head(&queue);
     prink("%s %s initialized.\n",KEY_LED_NAME,KEY_LED_VERSION);//²»ÄÜÓÃprinf
     return 0;
}
module_init(Keypad_init);//¼ÓÔØÄ£¿é
void _exit Keypad_cleanup(void)
{
     del_timer(&timer);
     unregister_chrdev(KEY_LED_MAJOR,KEY_LED_NAME);
     prink("Keypad driver removed \n");
}
module_exit(Keypad_cleanup);//Ð¶ÔØ¸ÃÄ£¿é
¶þ.ÐéÄâÎļþϵͳÓëÓ²¼þÇý¶¯µÄ½Ó¿Ú
static struct file_operations Keypad_fops={
open:Keypad_open,
read:Keypad_read,
poll:Keypad_poll,
fasync:Keypad_fasync,
release:Keypad_release,
};
¸Ã½Ó¿Ú¶¨ÒåÍêÖ®ºóһЩ±ãÊǶÔÕ⼸¸ö¾ßÌ庯ÊýµÄʵÏÖÁË£¡ÏÖÔÚÎÒÃÇÒ»Æð½øÈëÏÂÒ»²½°É£¬ÊDz»ÊǾõµÃÆäʵûʲôÄѶȵÄÄØ£¿±ðÄÇôÔ翪ÐÄ×ÅÄØ£¿Õ⼸¸öº¯ÊýµÄʵÏÖʱºò£¬Éæ¼°µ½ºÜ¶à¼¼Êõ£¬°üÀ¨Äں˶¨Ê±Æ÷£¬*µÈ´ý¶ÓÁеľßÌåʵÏÖ£¨×èÈû·½Ê½£©£¬Òì²½·½Ê½µÄ¾ßÌåʵÏÖ¼¼ÇÉ£¬Ñ­»·¶ÓÁС£¿´µ½Õâô¶à¼¼ÊõÄãÊÇ·ñ¸Ðµ½ºÜÐË·ÜÄØ£¿ÒÔϱ¾È˽«ÒÔͨË׵ķ½Ê½ÎªÄã½²½â£¬Ï£ÍûÄãÄÜÀí½â¡£
Èý.É豸µÄ´ò¿ª²Ù×÷½Ó¿Úº¯Êý¾ßÌåʵÏÖ£¨Keypad_open)
É豸´ò¿ªÒ»°ã°üÀ¨Á½´ó²Ù×÷£¬Ò»ÊÇÍê³ÉÉ豸µÄ³õʼ»¯£¬¶þÊÇÉ豸ÒýÓüÆÊýÆ÷¼Ó1
static int Keypad_open(struct inode *inode,struct file *filp)
{
     read_xy();
     try_module_get(THIS_MODULE);//´Ëº¯ÊýΪLinux 2.6ÄÚºËÔö¼ÓµÄ£¬²»Í¬ÓÚ2.4Äںˣ¬¹¦ÄÜÊǼÆÊýÆ÷µÄÖµ¼Ó1
     return 0;
}
static void read_xy(void)
{
  &nbs


Ïà¹ØÎĵµ£º

linux tasklet

http://blog.chinaunix.net/u/24474/showart_227121.html
Çý¶¯³ÌÐòʹÓÃtasklet»úÖÆ
ת×Ô£ºhttp://blog.chinaunix.net/u/15169/showart.php?id=82989
Çý
¶¯³ÌÐòÔÚ³õʼ»¯Ê±£¬Í¨¹ýº¯Êýtask_init½¨Á¢Ò»¸ötasklet£¬È»ºóµ÷Óú¯Êýtasklet_schedule½«Õâ¸ötasklet·ÅÔÚ
tasklet_vecÁ´±íµÄÍ·²¿£¬²¢»½ÐѺǫ́Ïß³Ìksoftirqd¡£µ±ºóÌ¨Ï ......

linux D Bus tutorial

http://dbus.freedesktop.org/doc/dbus-tutorial.html
D-Bus Tutorial
Havoc
Pennington
Red Hat, Inc.
<hp@pobox.com
>
David
Wheeler
John
Palmieri
Red Hat, Inc.
<johnp@redhat.com
>
Colin
Walters
Red Hat, Inc.
<walters@redhat.com
>
Version 0.5.0
Table of Contents
......

linux kernel thread

http://hi.baidu.com/j_fo/blog/item/55f4014f1a226937aec3ab01.html
Linux Kernel Thread µÄÌÖÂÛ
2007-05-14 11:45
kernel thread

Gearheads Written by Sreekrishnan Venkateswaran
   Thursday, 15 September 2005

Threads are programming abstractions used in concurrent processing. A ke ......

linux tasklet 3

http://hi.baidu.com/styl_007/blog/item/82b833f475036ce67609d7b6.html
Öжϴ¦ÀíµÄtasklet£¨Ð¡ÈÎÎñ£©»úÖÆ£­²»¹ýÈç´Ë
2009-08-10 18:30
ÖжϷþÎñ³ÌÐòÒ»°ã¶¼ÊÇÔÚÖжÏÇëÇ󹨱յÄÌõ¼þÏÂÖ´ÐеÄ
,
ÒÔ±ÜÃâǶÌ×¶øÊ¹ÖжϿØÖƸ´ÔÓ»¯¡£µ«ÊÇ£¬ÖжÏÊÇÒ»¸öËæ»úʼþ£¬ËüËæÊ±»áµ½À´£¬Èç¹û¹ØÖжϵÄʱ¼äÌ«³¤£¬
CPU
¾Í²»Äܼ°Ê±ÏìÓ¦Æä ......

Linux É豸Çý¶¯ Edition 3) workqueue


7.5. Tasklets »úÖÆ
ÉÏÒ»Ò³
 
µÚ 7 Õ ʱ¼ä, ÑÓʱ, ºÍÑÓºó¹¤×÷
 ÏÂÒ»Ò³
http://lsec.cc.ac.cn/~tengfei/doc/ldd3/index.html
Linux É豸Çý¶¯ Edition 3
7.5. Tasklets »úÖÆ
ÁíÒ»¸öÓйØÓÚ¶¨Ê±ÎÊÌâµÄÄÚºËÉèÊ©ÊÇ tasklet »úÖÆ. Ëü´ó²¿·ÖÓÃÔÚÖжϹÜÀí(ÎÒÃǽ«ÔÚµÚ 10 ÕÂÔٴμûµ½). ......
© 2009 ej38.com All Rights Reserved. ¹ØÓÚE½¡ÍøÁªÏµÎÒÃÇ | Õ¾µãµØÍ¼ | ¸ÓICP±¸09004571ºÅ