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

linux tasklet 2

http://hi.baidu.com/j_fo/blog/item/7412bb018deab109728da572.html
LinuxÄÚºË irq/soft irq/tasklet/ͬ²½
2009-10-08 21:22
1.Öжϴ¦Àí³ÌÐò½áÊøÖ®Ç°£¬²»ÔÊÐí²úÉúÏàͬµÄÖжÏʼþ£»£¨½ûÓÃPICÉϸÃÖжϣ¬µ«¿ÉÒÔ²úÉúÆäËûÖжϣ©
2.Öжϴ¦Àí³ÌÐò¡¢ÈíÖжϡ¢tasklet¼È²»¿É±»ÇÀÕ¼Ò²²»Äܱ»×èÈû£¬×î¶à·¢ÉúÖжÏǶÌ×£»
3.Ö´ÐÐÖжϴ¦ÀíµÄÄں˷¾¶²»Äܱ»Ö´ÐÐÑÓ³Ùº¯Êý»òϵͳµ÷Ó÷þÎñÀý³ÌµÄÄں˿ØÖÆÂ·¾¶Öжϡ£
ÓÚÊÇÓÐÈçϽáÂÛ£º
a.Öжϴ¦Àí³ÌÐòºÍtasklet²»±ØÊÇ¿ÉÖØÈëµÄ£»
b.½ö±»ÈíÖжϺÍtasklet·ÃÎʵÄÿCPU±äÁ¿²»ÐèҪͬ²½£»
c.½ö±»Ò»ÖÖtasklet·ÃÎʵÄÊý¾Ý²»ÐèҪͬ²½¡£
ÈíÖжϣ¨¼´±ãÊÇͬһÖÖÀàÐ͵ÄÈíÖжϣ©¿ÉÒÔ²¢·¢µØÔËÐÐÔÚ¶à¸öCPUÉÏ¡£
ͬÀàÐ͵Ätasklet×ÜÊDZ»´®Ðл¯Ö´ÐУ¬²»»áÔÚÁ½¸öCPUÉÏͬʱÔËÐÐÏàͬÀàÐ͵Ätasklet¡£
Ò»¸ötasklet¿ÉÒÔ±»µ÷¶È¶à´Î£¬µ«Êµ¼ÊÖ»»áÔËÐÐÒ»´Î¡£
static inline void tasklet_schedule(struct tasklet_struct *t)
{
if (!test_and_set_bit
(TASKLET_STATE_SCHED, &t->state))
__tasklet_schedule(t);
}
ÁíÍâ²Î¼ûdo_softirq > _do_softirq > tasklet_action
Ò»¸öÖжϴ¦Àí³ÌÐò¼È¿ÉÒÔÇÀÕ¼ÆäËûµÄÖжϴ¦Àí³ÌÐò£¬Ò²¿ÉÒÔÇÀÕ¼Òì³£´¦Àí³ÌÐò£»
Òì³£´¦Àí³ÌÐò´Ó²»ÇÀÕ¼Öжϴ¦Àí³ÌÐò£»
Öжϴ¦Àí³ÌÐò´Ó²»Ö´Ðпɵ¼ÖÂȱҳµÄ²Ù×÷£¨Òâζ׎ø³ÌÇл»£©£»
Öжϴ¦Àí³ÌÐò±ØÐëÓÀ²»×èÈû£¬¼´²»·¢Éú½ø³ÌÇл»£¡
Èç¹ûÒ»¸öÊý¾Ý½á¹¹½ö±»ÖжϳÌÐò“Éϰ벿·Ö”·ÃÎÊ£¬·ÃÎÊÊý¾Ý½á¹¹¾ÍÎÞÐèÈκÎͬ²½£¬ÒòΪÿ¸öÖжϴ¦Àí³ÌÐò¶¼Ïà¶ÔÓÚ×Ô¼º´®ÐеÄÖ´ÐС£
Èç¹û¶à¸öÖжϴ¦Àí³ÌÐò·ÃÎÊÒ»¸öÊý¾Ý½á¹¹£¬ÔÚµ¥´¦ÀíÆ÷ÉÏ£¬±ØÐëÔÚÖжϴ¦Àí³ÌÐòµÄËùÓÐÁÙ½çÇøÉϽûÖ¹ÖжÏÀ´±ÜÃ⾺Õù£»ÔÚ¶à´¦ÀíÆ÷ÉÏ£¬±ØÐë½ûÖ¹±¾µØÖжϣ¬²¢»ñÈ¡±£»¤Êý¾Ý½á¹¹µÄ×ÔÐýËø»ò¶ÁÐ´Ëø¡£
ÈíÖжÏÊÇ¿ÉÖØÈ뺯Êý£¬±ØÐëÃ÷ȷʹÓÃ×ÔÐýËø±£»¤½á¹¹Êý¾Ý£¨ÒòΪ¿ÉÄÜÔÚ¶à¸öCPUÉÏͬʱִÐУ©£»
Èç¹ûij¸öÖжϳÌÐò“Éϰ벿·Ö”Ò²»á·ÃÎʸÃÊý¾Ý½á¹¹£¬Ôò±ØÐëÔÚÓµÓÐ×ÔÐýËøµÄʱºò½ûÖ¹Öжϣ¬ÒÔÃâËÀËø£¡
½öÓÉÒ»ÖÖtasklet·ÃÎʵÄÊý¾Ý½á¹¹²»ÐèÒª±£»¤£¬ÒòΪͬÖÖtasklet²»Äܲ¢·¢ÔËÐС£
¹ØÓÚtaskletµÄÒ»µã˵Ã÷£º
1.ǰÊöµÄÒ»ÖÖ»òÒ»¸ötasklet£¬¶¼ÊÇÖ¸Ò»¸ö£¬ÒÔtasklet½á¹¹ÌåµÄÄÚ´æµØÖ·Çø·Ö£¬²»Í¬µØÖ·µÄtasklet¼´Îª²»Í¬µÄtasklet£¬¼´Ê¹Á½¸ö
tasklet½á¹¹ÌåµÄfuncÖ¸ÕëÖ¸Ïòͬһ¸öÖжÏÉ豸µÄͬһ¸öÑÓ³Ù´¦Àíº¯Êý£¬ÉõÖÁÄÚÈÝÍêÈ«ÏàµÈ£¬¶¼Ëã×÷²»Í¬£¨ÖÖÀࣩµÄtasklet£¬¾ÍÐèÒª´¦Àíͬʱִ
ÐÐʱµÄͬ²½²Ù×÷ÎÊÌ⣻£¨°üÀ¨¡¶


Ïà¹ØÎĵµ£º

libjpegµÄARM linuxÒÆÖ²

Ò»¡¢ÏÂÔØjpeg¿â
¶þ¡¢ÅäÖñàÒ룬Éú³ÉMakefileÎļþ¡£
#./configure --prefix=/usr/arm/arm-linux --exec-prefix=/usr/arm/arm-linux \
--enable-shared --enable-static
×¢Ò⣺prefixÊÇ×îºó°²×°Ê±¿â´æ·ÅµÄÎļþ£¬sharedÊDZàÒë³É¶¯Ì¬¿â£¬staticÊDZàÒë³É¾²Ì¬¿â
Èý¡¢ÐÞ¸ÄÉú³ÉµÄMakefile¡£
ʹÓÃgedit £Í£á£ë£å£æ£é£ì£å
½«CC ......

Compile Linux Kernel Modules

ÎÒÕýÔÚѧϰдlinux device driver for embedded system.
ÎÒÓÐÒ»¸ölinuxǶÈëʽÉ豸£¬Ò²ÓÐÕâ¸öÉ豸µÄlinuxÔ´´úÂë¡£Ò²ÓÐcross compiler tool chain.
µÚÒ»²½£¬¾ÍÊÇдһ¸ö¼òµ¥µÄhelloÄ£¿é£¬È»ºó×°µ½É豸ÖС£ÒÔÑéÖ¤ÎÒÕâ¸ö¿ª·¢»·¾³¡£
ÔÚÍøÉÏËÑË÷ÁËһϣ¬ how to cross compile linux device driver
·¢ÏÖÔÚlinux´úÂë¸ùĿ¼µÄMak ......

³¹µ×½â¾ölinuxÏ GB2312 ÏÔʾ´íÎóÎÊÌâ

´ò¿ª /etc/sysconfig/i18n
ÊäÈë
LANG="zh_CN.GB2312"
LANGUAGE="zh_CN.GB18030:zh_CN.GB2312:zh_CN"
SUPPORTED="zh_CN.GB18030:zh_CN:zh:en_US.UTF-8:en_US:en"
SYSFONT="lat0-sun16"
ºÃÁË ......

Linux²Ù×÷ϵͳµÄConfigure²ÎÊý½âÊÍ˵Ã÷

Linux»·¾³ÏµÄÈí¼þ°²×°£¬²¢²»ÊÇÒ»¼þÈÝÒ×µÄÊÂÇ飻Èç¹ûͨ¹ýÔ´´úÂë±àÒëºóÔÚ°²×°£¬µ±È»ÊÂÇé¾Í¸üΪ¸´ÔÓһЩ£»ÏÖÔÚ°²×°¸÷ÖÖÈí¼þµÄ½Ì³Ì¶¼·Ç³£ÆÕ±é£»µ«Íò±ä²»ÀëÆäÖУ¬¶Ô»ù´¡ÖªÊ¶µÄÔúÊµÕÆÎÕ£¬°²×°¸÷ÖÖÈí¼þµÄÎÊÌâ¾ÍÓ­Èжø½âÁË¡£Configure½Å±¾ÅäÖù¤¾ß¾ÍÊÇ»ù´¡Ö®Ò»£¬ËüÊÇautoconfµÄ¹¤¾ßµÄ»ù±¾Ó¦Óá£
ÓëһЩ¼¼ÇÉÏà±È£¬ConfigureÏԵûù´ ......
© 2009 ej38.com All Rights Reserved. ¹ØÓÚE½¡ÍøÁªÏµÎÒÃÇ | Õ¾µãµØÍ¼ | ¸ÓICP±¸09004571ºÅ