LinuxÍøÂçÇý¶¯³ÌÐò±àд(Èý)
¡¡2.4 ³£ÓõÄϵͳ֧³Ö
¡¡¡¡2.4.1 ÄÚ´æÉêÇëºÍÊÍ·Å
¡¡¡¡include/linux/kernel.hÀïÉùÃ÷ÁËkmalloc()ºÍkfree()¡£ÓÃÓÚÔÚÄÚºËģʽÏÂÉêÇëºÍÊÍ·ÅÄÚ´æ¡£
¡¡¡¡void *kmalloc(unsigned int len,int priority);
¡¡¡¡void kfree(void *__ptr);
¡¡¡¡ÓëÓû§Ä£Ê½ÏµÄmalloc()²»Í¬£¬kmalloc()ÉêÇë¿Õ¼äÓдóСÏÞÖÆ¡£³¤¶ÈÊÇ2µÄÕû´Î·½¡£¿ÉÒÔÉêÇëµÄ×î´ó³¤¶ÈÒ²ÓÐÏÞÖÆ¡£ÁíÍâkmalloc()ÓÐpriority²ÎÊý£¬Í¨³£Ê¹ÓÃʱ¿ÉÒÔΪGFP_KERNEL£¬Èç¹ûÔÚÖжÏÀïµ÷ÓÃÓÃGFP_ATOMIC²ÎÊý£¬ÒòΪʹÓÃGFP_KERNELÔòµ÷ÓÃÕß¿ÉÄܽøÈësleep״̬£¬ÔÚ´¦ÀíÖжÏʱÊDz»ÔÊÐíµÄ¡£
¡¡¡¡kfree()ÊͷŵÄÄÚ´æ±ØÐëÊÇkmalloc()ÉêÇëµÄ¡£Èç¹ûÖªµÀÄÚ´æµÄ´óС£¬Ò²¿ÉÒÔÓÃkfree_s()ÊÍ·Å¡£
¡¡¡¡2.4.2 request_irq()¡¢free_irq()
¡¡¡¡ÕâÊÇÇý¶¯³ÌÐòÉêÇëÖжϺÍÊÍ·ÅÖжϵĵ÷Óá£ÔÚinclude/linux/sched.hÀïÉùÃ÷¡£request_irq()µ÷Óõ͍Ò壺
¡¡¡¡int request_irq(unsigned int irq,
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ void (*handler)(int irq, void *dev_id, struct pt_regs *regs),
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ unsigned long irqflags,
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ const char * devname,
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ void *dev_id);
¡¡¡¡irqÊÇÒªÉêÇëµÄÓ²¼þÖжϺš£ÔÚIntelƽ̨£¬·¶Î§0--15¡£handlerÊÇÏòϵͳµÇ¼ÇµÄÖжϴ¦Àíº¯Êý¡£ÕâÊÇÒ»¸ö»Øµ÷º¯Êý£¬ÖжϷ¢Éúʱ£¬ÏµÍ³µ÷ÓÃÕâ¸öº¯Êý£¬´«ÈëµÄ²ÎÊý°üÀ¨Ó²¼þÖжϺţ¬device id£¬¼Ä´æÆ÷Öµ¡£dev_id¾ÍÊÇÏÂÃæµÄrequest_irqʱ´«µÝ¸øÏµÍ³µÄ²ÎÊýdev_id¡£irqflagsÊÇÖжϴ¦ÀíµÄһЩÊôÐÔ¡£±È½ÏÖØÒªµÄÓÐSA_INTERRUPT£¬±êÃ÷Öжϴ¦Àí³ÌÐòÊÇ¿ìËÙ´¦Àí³ÌÐò(ÉèÖÃSA_INTERRUPT)»¹ÊÇÂýËÙ´¦Àí³ÌÐò(²»ÉèÖÃSA_INTERRUPT)¡£¿ìËÙ´¦Àí³ÌÐò±»µ÷ÓÃʱÆÁ±ÎËùÓÐÖжϡ£ÂýËÙ´¦Àí³ÌÐò²»ÆÁ±Î¡£»¹ÓÐÒ»¸öSA_SHIRQÊôÐÔ£¬ÉèÖÃÁËÒÔºóÔËÐжà¸öÉ豸¹²ÏíÖжϡ£dev_idÔÚÖжϹ²Ïíʱ»áÓõ½¡£Ò»°ãÉèÖÃΪÕâ¸öÉ豸µÄdevice½á¹¹±¾Éí»òÕßNULL¡£Öжϴ¦Àí³ÌÐò¿ÉÒÔÓÃdev_idÕÒµ½ÏàÓ¦µÄ¿ØÖÆÕâ¸öÖжϵÄÉ豸£¬»òÕßÓÃrq2dev_mapÕÒµ½Öж϶ÔÓ¦µÄÉ豸¡£¡¡
¡¡¡¡void free_irq(unsigned int irq,void *dev_id);
¡¡¡¡2.4.3 ʱÖÓ
¡¡¡¡Ê±ÖӵĴ¦ÀíÀàËÆÖжϣ¬Ò²ÊǵǼÇÒ»¸öʱ¼ä´¦Àíº¯Êý£¬ÔÚÔ¤¶¨µÄʱ¼ä¹ýºó£¬ÏµÍ³Ê±ÖӵĴ¦ÀíÀàËÆÖжϣ¬Ò²ÊǵǼÇÒ»¸öʱ¼ä´¦Àíº¯Êý£¬ÔÚÔ¤¶¨µÄʱ¼ä¹ýº
Ïà¹ØÎĵµ£º
ubuntu ϱàÒë linux fetion Ó¦ÓóÌÐòdemo
×¢£ºÕâÀï¸ø³ö½çÃæÄ£¿éµÄÔ´´úÂ룬¶ølibfetion¿â(32λ)ÔòÊÇÒÔ¾²Ì¬¿âµÄÐÎʽ·Å½øÈ¥ÁË¡£
1£º½¨Á¢±àÒë»·¾³£º
ÔÚÖÕ¶ËÖ´ÐÐÒÔÏÂÃüÁ
sudo apt-get install automake
sudo apt-get install libc-dev
sudo apt-get install g++
sudo apt-get install libcurl4-openssl-dev
sudo ......
½üÈÕ£¬ÔÚLinuxCON 2009´ó»áÉÏ£¬×ÀÃæ Linux ÓÖ³ÉΪҵ½ç¹Ø×¢µÄ½¹µãÖ®Ò»¡£¸÷ÖÖ²»Í¬µÄÉùÒô£¬É¤ÃŶ¼ºÜ´ó¡£ÔÚÕâ·×·×ÈÂȵķÕΧÖУ¬ Linux ÈçºÎ×ß³ö×ÀÃæÀ§¾³£¿
×ݹÛÈ«¾Ö£¬ÆÕ¼°×ÀÃæ Linux µÄ×î´óÕϰ֮һÊÇϵͳ°²×°µÄ²Ù×÷À§ÄÑÐÔ¡£Ô¤×° Windows Òѳɴó ......
linuxÈíÖжϻúÖÆ
ÖжϷþÎñ³ÌÐòÍùÍù¶¼ÊÇÔÚCPU¹ØÖжϵÄÌõ¼þÏÂÖ´Ðеģ¬ÒÔ±ÜÃâÖжÏǶÌ×¶øÊ¹¿ØÖƸ´ÔÓ»¯¡£µ«ÊÇCPU¹ØÖжϵÄʱ¼ä²»ÄÜÌ«³¤£¬·ñÔòÈÝÒ×¶ªÊ§ÖжÏÐźš£Îª´Ë£¬ Linux½«ÖжϷþÎñ³ÌÐòÒ»·ÖΪ¶þ£¬¸÷³Æ×÷“Top Half”ºÍ“Bottom Half”¡£Ç°Õßͨ³£¶Ôʱ¼äÒªÇó½ÏΪÑϸñ£¬ ......
Linux Îļþϵͳ¸ÅÊö
×÷Õߣº±±ÄÏÄϱ±
À´×Ô£ºLinuxSir.Org
ÕªÒª£º ±¾ÎÄͨ¹ýÎļþϵͳµÄ¶¨Òå˵Æð£¬È»ºóͨ¹ýÒýÎļòµ¥µÄ½éÉÜÁËÒ»ÏÂÎļþϵͳÀàÐÍ£»¶ÔLinux³£ÓõÄext2¡¢ext3¼°reiserfs ¸ù¾Ý±¾ÈËʹÓþÑéÒ²·º·ºµÄ̸ÁË̸£¬µ«²¢²»ÊÇרҵµÄ¡£ÈçºÎÔĶÁ±¾ÎÄ£¬»¹ÊÇÓÃÂí¿Ë˼ÀíÂÛ¸æËßÎÒÃǵķ½·¨£ºÒ»·ÖΪ¶þ£¬±ß¿´±ßÅú°É£»
Ŀ¼Ë÷Òý
Ò» ......