Interrupt in Linux£¨Ó²¼þƪ£©—— PIC
±¾ÎÄÀ´×Ô£º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ͨ¹ý¸Ã¹Ü½ÅÓ¦´ðÖжÏÇëÇ󣬲¢Í¨ÖªPICÌá½»ÖжϵÄvectorµ½Êý¾ÝÏߣ©¡£´ËÍ⣬ÓÉÓÚһƬ8259AÖ»ÄÜÁ¬½Ó8¸öÉ豸£¬¶ÔÓÚÏÖ´úPC¼Ü¹¹À´ËµÏԵùýÉÙ£¬Í¨³£»áͨ¹ýCS£¨Æ¬Ñ¡£©½«Á½¸ö8259AÁ¬ÔÚÒ»Æð¹¹³ÉÒ»¸ö¿ÉÒÔÁ¬½Ó15¸öÉ豸£¨ÓÐÒ»¸ö¹Ü½ÅÓÃÓÚ´®ÁªÁíһƬ8259A£©µÄPIC¡£
¼ÈÈ»Êǿɱà³ÌµÄоƬ£¬8259Aµ±È»ÉÙ²»Á˼ĴæÆ÷¡£³ýÁËICW£¨Initialization Command Word£¬³õʼ»¯ÃüÁî¼Ä´æÆ÷£¬ÓÃÓÚ³õʼ»¯8259A£©ºÍOCW£¨Operation Command Word£¬²Ù×÷ÃüÁî×Ö£¬ÓÃÓÚ¿ØÖÆ8259A£©Í⣬×îÖØÒªµÄÓÐ3¸ö¼Ä´æÆ÷£º
u IRR£ºInterrupt Request Register£¬ÖжÏÇëÇó¼Ä´æÆ÷£¬¹²8bit£¬¶ÔÓ¦IR0~IR7°Ë¸öÖжϹܽ𣵱ij¸ö¹Ü½ÅµÄÖжÏÇëÇóµ½À´ºó£¬Èô¸Ã¹Ü½ÅûÓб»ÆÁ±Î£¬IRRÖжÔÓ¦µÄbit±»ÖÃÒ»¡£±íʾPICÒѾÊÕµ½É豸µÄÖжÏÇëÇ󣬵«»¹Î´Ìá½»¸øCPU¡£
u ISR£ºIn Service Register£¬·þÎñÖмĴæÆ÷£¬¹²8bit£¬Ã¿bitÒâÒåͬÉÏ¡£µ±IRRÖеÄij¸öÖжÏÇëÇó±»·¢Ë͸øCPUºó£¬ISRÖжÔÓ¦µÄbit±»ÖÃÒ»¡£±íʾÖжÏÒÑ·¢Ë͸øCPU£¬µ«CPU»¹Î´´¦ÀíÍê¡£
u IMR£ºInterrupt Mask Register£¬ÖÐ¶ÏÆÁ±Î¼Ä´æÆ÷£¬¹²8bit£¬Ã¿bitÒâÒåͬÉÏ¡£ÓÃÓÚÆÁ±ÎÖжϡ£µ±Ä³bitÖÃһʱ£¬¶ÔÓ¦µÄÖжϹܽű»ÆÁ±Î¡£
ÓëAPIC²»Í¬£¬PICµÄÿ¸ö¹Ü½Å¾ßÓÐÓÅÏȼ¶£¬ÒÔ0ºÅ¹Ü½Å×î¸ß¡£Ò²¾Í˵£¬Á¬½ÓºÅÂë½ÏСµÄÉ豸¾ßÓнϸߵÄÖжÏÓÅÏȼ¶¡£Í¨¹ý¶ÔPICµÄICW¼Ä´æÆ÷±à³Ì£¬¿ÉÒÔÉ趨ÆðʼvectorºÅ£¬ÒÔ¼ÆË㵱ǰÖжϵÄvector¡£ÀýÈ磬ÆðʼvectorºÅÉèΪ16£¬IR3¹Ü½Å²úÉúÁËÖжÏÇëÇó£¬ÔòIR3¶ÔÓ¦µÄvector = 16+3 =19¡£Í¨¹ýPIC·¢ÆðÖжϵĵäÐÍÁ÷³ÌÈçÏ£º
1¡¢ Ò»¸ö»ò¶à¸öIR¹Ü½ÅÉϲúÉúµçƽÐźţ¬Èô¶ÔÓ¦µÄÖжÏûÓб»ÆÁ±Î£¬IRRÖÐÏàÓ¦µÄbit±»ÖÃÒ»¡£
2¡¢ PICÀ¸ßINT¹Ü½Å֪ͨCPUÖжϷ¢Éú¡£
3¡¢ CPUͨ¹ýINTA¹Ü½ÅÓ¦´ðPIC£¬±íʾÖжÏÇëÇóÊÕµ½¡£
4¡¢ PICÊÕµ½INTAÓ¦´ðºó£¬½«IRRÖоßÓÐ×î¸ßÓÅÏȼ¶µÄbitÇåÁ㣬²¢ÉèÖÃISRÖжÔÓ¦µÄbit¡£
5¡¢ CPUͨ¹ýINTA¹Ü½ÅµÚ¶þ´Î·¢³öÂö³å£¬PICÊÕµ½ºó¼ÆËã×î¸ßÓÅÏȼ¶ÖжϵÄvector£¬²¢½«ËüÌá½»µ½Êý¾ÝÏßÉÏ¡£
6¡¢ µÈ´ýCPUдEO
Ïà¹ØÎĵµ£º
-------------------------------------------------------------------------------------------------------
//By:yuyongbao
//QQ:673360056
//ƽ̨powerpc mpc8379e linux 2.6.22
£±¡¢ÏÈÓÃfdisk ¸øSD¿¨·ÖÇø£¬ÓÃ×÷Îļþϵͳ¡£
½«¶Á¿¨Æ÷²åÈëPC»úÐéÄâ»ú£¬ÔÚPC»úÉÏÖ´ÐÐfdisk /dev/sdb
Ñ¡Ôñn¡¡¡£¡£¡£¡£¡£¡£¡£¡£² ......
Linux Execution and Virtual Memory Utilization
LinuxÖ´ÐÐÒÔ¼°ÐéÄâÄÚ´æÖ®ÓÃ
When Linux boots, it starts with the MMU disabled, so initially it deals only with physical
memory. The kernel image is copied to physical address 0x8000 in DRAM and executed. First a master page table is created ......
-------------------------------------------------------------------------------------------------------
//By:yuyongbao
//QQ:673360056
LINUX Äں˽ṹÌå
struct attribute
{
const char * name;
struct module &nb ......
LinuxÉ豸Çý¶¯Ñ§Ï°£Davinci¿ª·¢°åÉÏÔËÐеÄhelloÄ£¿é
¿´Á˺ܶà¸öhello worldÁË£¬×Ô¼ºÀ´Ð´Ò»¸öÔÚdavinci°å¿éÉÏÅܵİɡ£
Ö÷ÌåºÜ¼òµ¥£¬¾ÍÊÇÒ»¸öCÎļþhello_davinci.c¡£
/*================hello_davinci.c==============*/
#include <linux/module.h> /*ËùÓÐÄ£¿é¶¼ÐèÒªµÄÍ·Îļþ*/
#include <lin ......
·find path -option [ -print ] [ -exec -ok command ] {} \;
#-print ½«²éÕÒµ½µÄÎļþÊä³öµ½±ê×¼Êä³ö
#-exec command {} \; -----½«²éµ½µÄÎļþÖ´ÐÐcommand²Ù×÷,{} ºÍ \;Ö®¼äÓпոñ
#-ok ºÍ-execÏàͬ£¬Ö»²»¹ýÔÚ²Ù×÷ǰҪѯ ......