LinuxÒÁµéÔ°ÂÛ̳'s Archiver

njngypp ·¢±íÓÚ 2008-4-15 22:58

¡¾ÇóÖú¡¿¹ØÓÚinbºÍinwµÄÒÉÎÊ

³õѧlinuxÄںˣ¬ÔÚÔĶÁÍøÂçÉ豸Çý¶¯³ÌÐòʱ¶ÔinbºÍinwº¯ÊýµÄÓ÷¨¸Ðµ½²»½â£º
   
  £¨1£©ISAÍø¿¨Çý¶¯³ÌÐòµÄ̽²â¹ý³Ì£¨º¯Êýnetcard_probe1()ÖУ©£¬´ÓÆðʼ¶Ë¿Ú¶ÁÈ¡3×Ö½ÚÍø¿¨Ó²¼þµØÖ·½øÐÐУÑ飺
       if ( inb(ioaddr+0) != SA_ADDR0  ¦ ¦ inb(ioaddr+1) != SA_ADDR1  ¦ ¦ inb(ioaddr+2) != SA_ADDR3 )
      { return -ENODEV; }
      ...
      for ( i=0; i <6; i++ )
         printk("%2.2x" , dev->dev_addr[i] = inb(ioaddr+i));
   
  £¨2£©ÔÚ½ÓÊÕº¯ÊýÖУ¨º¯Êýnet_rx()£©£¬³öÏÖ:
      int status = inw(ioaddr);
      int pkt_len = inw(ioaddr);
      ·Ö±ð±íʾ¶Áȡ֡״̬ÂëºÍÖ¡³¤¶È£¬ÊÇ´Óͬһ¸ö¶Ë¿Ú¶Áµ½µÄÒ»¸ö°üÖеÄÁ½¸ö²»Í¬Êý¾Ý

   ÄÇô£¬ÎªÊ²Ã´£¨1£©ÖÐÈý¸ö×Ö½ÚµÄÓ²¼þµØÖ·ÊÇÔÚÈý¸öÁ¬Ðø¶Ë¿ÚÖжÁ³öÀ´µÄ£¨inbÖеÄ"+0"¡¢"+1"¡¢"+2"£©£¬¶ø£¨2£©ÖÐ֡״̬ÂëºÍ³¤¶ÈÈ´ÊÇͬһ¸ö¶Ë¿ÚÄØ£¿
   ¶øÇÒÈç¹û¶Ôͬһ¶Ë¿ÚµÄÁ¬Ðø¶ÁÈ¡»áµÃµ½²»Í¬µÄÊý¾Ý£¬ÔÚ£¨1£©ÖУ¬¶ÁÈ¡µØÖ·Ð£ÑéÍêºóµÄ´òÓ¡¹ý³Ì£¨inb(ioaddr+i)£©»¹ÄÜÈ·¶¨ÊÇУÑéʱ¶ÁÈ¡µÄÓ²¼þµØÖ·Êý¾Ýô£¿

   Çë¸ßÊÖÖ¸½Ì£¬Ð»Ð»£¡

zltjiangshi ·¢±íÓÚ 2008-4-16 13:06

ÎÒÏ룬Õâ¸öioaddrÊǾֲ¿±äÁ¿°É£¬Á½¸öº¯ÊýÖеľֲ¿±äÁ¿Ó¦¸ÃÊÇ·çÂíÅ£²»Ï༰µÄ°É¡£

njngypp ·¢±íÓÚ 2008-4-16 14:11

»Ø¸´ #2 zltjiangshi µÄÌû×Ó

Á½¸öº¯ÊýÖеÄioaddr¶¼ÊÇÖ¸µÄÍø¿¨µÄIO»ùµØÖ·£¬ÎÒ¶ÔIO_BASEÀí½â²»É¿´µ½×ÊÁÏÉÏ˵¡°Íø¿¨macµØÖ·´æÓÚ¿ªÊ¼µÄÁù¸ö¼Ä´æÆ÷ÖС±£¬²»ÖªÊÇ·ñÓë»ùµØÖ·Ïà¹Ø¡£

zltjiangshi ·¢±íÓÚ 2008-4-16 19:27

ÎÒ»¹ÊǾõµÃÁ½¸öº¯ÊýÖеÄioaddr²»ÊÇÒ»¸öµØÖ·£¬Òª²»Äã°ÑËüÃǵÄÉùÃ÷´¦Ìù³öÀ´¿´¿´¡£
Èç¹ûº¯Êý²»³¤£¬°ÑÕû¸öº¯ÊýÌù³öÀ´Ò²¿ÉÒÔ¡£

linkstack ·¢±íÓÚ 2008-4-18 13:24

ioaddrÕâ¸öportÒ»Ö±¶¼ÊDZ£´æÍø¿¨Ó²¼þµØÖ·Âð£¿

ÎÒû¿´¹ýÍø¿¨Çý¶¯,Ö»¿´¹ýɨÃèÒÇÇý¶¯,ËùÒԸе½ºÜºÃÆæ,Ò»°ãÊÇÏòcontrol port·¢ËÍÖ¸Áî,È»ºó´Ódata port»òstatus portÖжÁÈ¡Êý¾Ý.ÎÒÈÏΪioaddrÊÇÒ»¸ödata port»òstatus port,ÔÚ½ÓÊÕº¯ÊýÖÐÓ¦¸ÃÒѾ­Ïòcontrol port·¢ËÍÖ¸ÁîÁË,È»ºó´ÓioaddrÖжÁÈ¡Êý¾Ý

ÎÒ¶ÔÍø¿¨Çý¶¯ÖªµÀµÄºÜÉÙ,ÎÞÖªÕßÎÞη´ó¸Å˵µÄ¾ÍÊÇÎÒÁË

njngypp ·¢±íÓÚ 2008-4-23 22:36

ÊܽÌÁË£¬ÊÇÎÒ¿´´úÂë¿´µÄÌ«ËÀÁË£¬Ð»Ð»£¡

Ò³: [1]

Powered by Discuz! Archiver 6.1.0  © 2001-2007 Comsenz Inc.