Ò׽ؽØÍ¼Èí¼þ¡¢µ¥Îļþ¡¢Ãâ°²×°¡¢´¿ÂÌÉ«¡¢½ö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ÏÂʵÏÖweb qqµÄ×ÀÃæ»¯


´´½¨×ÀÃæÍ¼±ê
Ŀǰ½«ÍøÂçÓ¦ÓÃÀ©Õ¹µ½×ÀÃæÊÇÒ»¸öÇ÷ÊÆ£¬´æÔÚןܶà½â¾ö·½°¸£¬±¾ÎÄÒÔ Mozilla Prism ΪÀý£¬ÀàËÆµÄ·½·¨Í¬ÑùÊÊÓÃÓÚ Google Chrome ¡£
1. µ½ Mozilla Prism µÄÍøÕ¾ÉÏÏÂÔØ Prism£¬µã»÷ Download Now Ö®ºó»áÌáʾÓÐÁ½ÖÖ£¬Ò»ÖÖÊÇÒÔ Mozilla Firefox À©Õ¹µÄ·½Ê½£¬ÊʺÏÒѾ­°²×°ÓÐ Firefox µÄÅóÓÑ£»Ò»Ö ......

LinuxÖÐÕýÈ·´¦Àíerrno

errno±äÁ¿(Ðèinclude errno.h)»á±»¸³Ò»¸öÕûÊýÖµ,²»Í¬µÄÖµ±íʾ²»Í¬µÄº¬Òå,
¿ÉÒÔͨ¹ý²é¿´¸ÃÖµÍÆ²â³ö´íµÄÔ­Òò¡£µ«ÊÇerrnoÊÇÒ»¸öÊý×Ö£¬´ú±íµÄ¾ßÌ庬Òå
»¹Òªµ½errno.hÖÐÈ¥ÔĶÁºê¶¨Òå¡£ÓÐÏÂÃæ¼¸ÖÖ·½·¨¿ÉÒÔ·½±ãµÄµÃµ½´íÎóÐÅÏ¢
(Ò»)
#include <stdio.h>
void perror(const char *s)
perror()ÓÃÀ´½«ÉÏÒ»¸öº¯Êý·¢Éú´íÎóµÄ ......

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 É豸Çý¶¯ 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 ÕÂÔٴμûµ½). ......

linux ½âѹСȫ

´óÖÂÃüÁîÈçÏ£º
tar  xvfj  lichuanhua.tar.bz2 
  tar  xvfz  lichuanhua.tar.gz 
  tar  xvfz  lichuanhua.tgz 
  tar  xvf   lichuanhua.tar 
  unzip & ......
© 2009 ej38.com All Rights Reserved. ¹ØÓÚE½¡ÍøÁªÏµÎÒÃÇ | Õ¾µãµØÍ¼ | ¸ÓICP±¸09004571ºÅ