Interrupt in Linux£¨Ó²¼þƪ£©—— APIC
1.2ÏÖ´úµÄAPIC
APICËäºÅ³ÆÏÖ´ú£¬µ«Ò²³öÏÖ10¼¸ÄêÁË£¬PC»úÊг¡×ÜÊǺÜÍí²ÅÄܽӴ¥µ½Ðµļ¼Êõ£¬Ç°ÃæËµÁË£¬ÎÒµÄT42ÓõϹÊÇPICÄØ¡£APICÏà½ÏÓÚPICÀ´Ëµ£¬×î´óµÄÓŵãÊÇÄÜÊÊÓÃÓÚMPƽ̨£¬µ±È»£¬¹Ü½Å¶àÊÇËüÁíÒ»¸öÓŵ㡣APICÓÉÁ½²¿·Ö×é³É£¬Ò»¸ö³ÆÎªLAPIC£¨Local APIC£¬±¾µØ¸ß¼¶ÖжϿØÖÆÆ÷£©£¬Ò»¸ö³ÆÎªIOAPIC£¨I/O APCI£¬I/O¸ß¼¶ÖжϿØÖÆÆ÷£©¡£Ç°ÕßλÓÚCPUÖУ¬ÔÚMPƽ̨£¬Ã¿¸öCPU¶¼ÓÐÒ»¸ö×Ô¼ºµÄLAPIC¡£ºóÕßͨ³£Î»ÓÚÄÏÇÅÉÏ£¬ÏñPICÒ»Ñù£¬Á¬½Ó¸÷¸ö²úÉúÖжϵÄÉ豸¡£ÔÚÒ»¸öµäÐ͵ľßÓжà¸ö´¦ÀíÆ÷µÄPCƽ̨£¬Í¨³£ÓÐÒ»¸öIOAPICºÍ¶à¸öLAPIC£¬ËüÃÇÏ໥ÅäºÏ£¬ÐγÉÒ»¸öÖжϵķַ¢ÍøÂ磬ͼ1-3ÏÔʾÁËÕâ¸öµäÐ͵ÄÇé¿ö£º
ͼ1-3 APICģʽ£¨Õª×Ô¡¶ÉîÈëÀí½âLinuxÄںˡ·£©
ͼÖеÄÖжϿØÖÆÆ÷ͨÐÅ×ÜÏߣ¬ÊÇIOAPICºÍLAPICͨÐŵÄÇÅÁº£¬ÔÚIntelµÄP6¼Ü¹¹ºÍPentiumϵÁÐCPUÖУ¬ËüÊÇÒ»Ìõµ¥¶ÀµÄAPIC×ÜÏß¡£Ê±´úÔÚ½ø²½£¬Pentium4ºÍXeonϵÁÐCPU³öÏÖºó£¬APIC BusÒѾ²»´æÔÚ£¬ÏµÍ³µÄǰ¶Ë×ÜÏß´úÌæÁËËü¡£
1.2.1 IOAPIC
»°·ÖÁ½Í·£¬ÈÃÎÒÃÇÏÈÀ´¿´¿´IOAPIC¡£ºÍPIC¶Ô±È£¬IOAPIC×î´óµÄ×÷ÓÃÔÚÓÚÖжϷַ¢¡£¸ù¾ÝÆäÄÚ²¿µÄPRT£¨Programmable Redirection Table£©±í£¬IOAPIC¿ÉÒÔ¸ñʽ»¯³öÒ»ÌõÖжÏÏûÏ¢£¬·¢Ë͸øÄ³¸öCPUµÄLAPIC£¬ÓÉLAPIC֪ͨCPU½øÐд¦Àí¡£Ä¿Ç°µäÐ͵ÄIOAPIC¾ßÓÐ24¸öÖжϹܽţ¬Ã¿¸ö¹Ü½Å¶ÔÓ¦Ò»¸öRTE£¨Redirection Table Entry£¬PRT±íÏ¡£ÓëPIC²»Í¬µÄÊÇ£¬IOAPICµÄ¹Ü½ÅûÓÐÓÅÏȼ¶£¬Ò²¾ÍÊÇ˵£¬Á¬½ÓÔڹܽÅÉϵÄÉ豸ÊÇÆ½µÈµÄ¡£µ«Õâ²¢²»Òâζ×ÅAPICϵͳÖÐûÓÐÓ²¼þÓÅÏȼ¶¡£É豸µÄÖжÏÓÅÏȼ¶ÓÉËü¶ÔÓ¦µÄvector¾ö¶¨£¬APIC½«ÓÅÏȼ¶¿ØÖƵŦÄܷŵ½ÁËLAPICÖУ¬ÎÒÃÇÔÚºóÃæ»á¿´µ½¡£
Òª¸ãÇå³þIOAPICÊÇÔõô¹¤×÷µÄ£¬PRT±íÊǹؼü£¬Ï±íÁгöÁËRTEµÄ¸ñʽ£º
Bit
ÃèÊö
63:56
Destination Field£¬Ä¿µÄ×ֶΣ¬R/W£¨¿É¶Áд£©¡£¸ù¾ÝDestination Filed£¨¼ûÏ£©ÖµµÄ²»Í¬£¬¸Ã×Ö¶ÎÖµµÄÒâÒ岻ͬ£¬ËüÓÐÁ½¸öÒâÒ壺
Physical Mode£¨Destination ModeΪ0ʱ£©£º ÆäֵΪAPIC ID£¬ÓÃÓÚ±êʶһ¸öΨһµÄAPIC¡£
Logical Mode£¨Destination ModeΪ1ʱ£©£ºÆäÖµ¸ù¾ÝLAPICµÄ²»Í¬ÅäÖ㬴ú±íÒ»×éCPU£¨¾ßÌå¼ûLAPICÏà¹ØÄÚÈÝ£©
55:17
Reserved£¬Ô¤ÁôδÓá£
16
Interrupt Mask£¬ÖÐ¶ÏÆÁ±Î룬R/W¡£ÖÃһʱ£¬¶ÔÓ¦µÄÖжϹܽű»ÆÁ±Î£¬Õâʱ²úÉúµÄÖжϽ«±»ºöÂÔ¡£ÇåÁãʱ£¬¶ÔÓ¦¹Ü½Å²úÉúµÄÖжϱ»·¢ËÍÖÁLAPIC¡£
15
Trigger Mode£¬´¥·¢Ä£Ê½£¬R/W¡£Ö¸Ã÷¸Ã¹Ü½ÅµÄµÄÖжÏÓÉʲô·½Ê½´¥·¢¡£
1£ºLevel£¬µçƽ´¥·¢
2£ºEdge£¬±ßÑØ´¥·¢
14
Remote IRR£¬Ô¶³ÌIRR£¬RO£¨Ö»¶Á£©
Ïà¹ØÎĵµ£º
-------------------------------------------------------------------------------------------------------
//By:yuyongbao
//QQ:673360056
//ƽ̨powerpc mpc8379e linux 2.6.22
£±¡¢ÏÈÓÃfdisk ¸øSD¿¨·ÖÇø£¬ÓÃ×÷Îļþϵͳ¡£
½«¶Á¿¨Æ÷²åÈëPC»úÐéÄâ»ú£¬ÔÚPC»úÉÏÖ´ÐÐfdisk /dev/sdb
Ñ¡Ôñn¡¡¡£¡£¡£¡£¡£¡£¡£¡£² ......
-------------------------------------------------------------------------------------------------------
//By:yuyongbao
//QQ:673360056
LinuxÏÂÓÃBusy BoxÖÆ×÷RamdiskÈ«¹ý³Ì
1 ½¨Á¢¸ùÎļþϵͳ½á¹¹
#mkdir rootfs
#cd rootfs
#mkdir bin dev etc lib proc sbin tmp usr var
#chmod 1777 tmp
#mk ......
¾¹ý¼è¿àµÄ·Ü¶·£¬ÖÕÓڸ㶨ÁËfedoraϵͳ´Ó°²×°µ½3DÌØÐ§(±¾È˰²×°µÄÊÇfedora
11)£¬ÎªÁË·½±ãºóÀ´µÄlinuxer£¬ÌØÁôϱ¾È˵ÄÈ«¹ý³ÌÒÔ¹©²Î¿¼¡£ÒÔϲ½ÖèÓеÄÀ´×ÔÓÚgoogleËÑË÷£¬Óв¿·ÖÀ´×ÔÓÚ¼ÎÓÓÖÐÎIJ©¿Í
£¨http://www.my-guides.net/en/content/view/164/26/£©£¬²¢¸Ðл¸÷·½Ç°±²µÄ±Ê¼£¡£
1.Ìí¼Órpm fusionÔ´
rpm -ivh
http://do ......
1¡¢ÒýÑÔ
ÔÚlinuxϵͳÏ£¬Èç¹ûÄãÏÂÔØ²¢°²×°ÁËÓ¦ÓóÌÐò£¬ºÜÓпÉÄÜÔÚ¼üÈëËüµÄÃû³ÆÊ±³öÏÖ“command not found”µÄÌáʾÄÚÈÝ¡£Èç¹ûÿ´Î¶¼µ½°²×°Ä¿±êÎļþ¼ÐÄÚ£¬ÕÒµ½¿ÉÖ´ÐÐÎļþÀ´½øÐвÙ×÷¾ÍÌ«·±ËöÁË¡£ÕâÉæ¼°µ½»·¾³±äÁ¿PATHµÄÉèÖÃÎÊÌ⣬¶øPATHµÄÉèÖÃÒ²ÊÇÔÚlinux϶¨ÖÆ»·¾³±äÁ¿µÄÒ»¸ö×é³É²¿·Ö¡£±¾ÎÄ»ùÓ ......
±¾ÎÄÀ´×Ô£ºhttp://blog.chinaunix.net/u2/66786/showart.php?id=601766
1.1ʷǰµÄPIC
8259AÊǼ´ÎÒÃÇͨ³£ËµµÄPIC£¬Èçͼ1-1Ëùʾ£º
ͼ1-1 8259A
ÆäÖÐ×îÖØÒªµÄ¹Ü½ÅÊÇIR0~IR7£¨Interrupt Request0~7£¬ÓÃÓÚÁ¬½ÓÉ豸£©¡¢INT£¨Á¬½ÓCPU,µ±ÓÐÖжÏÇëÇóʱ£¬À¸ß¸Ã¹Ü½ÅÒÔ֪ͨCPUÖжϵĵ½À´£©¡¢INTA£¨Á¬½ÓCPU£¬CPUͨ¹ý¸Ã¹Ü½ ......