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

LinuxÉ豸Çý¶¯¼òÎö dm9000Íø¿¨Çý¶¯


/*
*By Neil Chiao (neilchiao at gmail.com)
*תÔØÇë×¢Ã÷³ö´¦£ºneilengineer.cublog.cn
*±¾ÎIJ¿·ÖÄÚÈÝÀ´×ÔÍøÂç
*»¶Ó­µ½“ÐÂÐÇÍå(www.xinxingwan.com)”Ö¸µ¼
*/
 
1¡¢LinuxÍøÂçÉ豸Çý¶¯µÄÌåϵ½á¹¹
LinuxÍøÂçÇý¶¯³ÌÐòµÄÌåϵ½á¹¹¿É»®·ÖΪ4¸ö²ã´Î¡£LinuxÄÚºËÔ´´úÂëÖÐÌṩÁËÍøÂçÉ豸½Ó¿Ú¼°ÒÔÉϲã´ÎµÄ´úÂ룬Òò´ËÒÆÖ²Ìض¨ÍøÂçÓ²¼þµÄÇý¶¯³ÌÐòµÄÖ÷Òª¹¤×÷¾ÍÊÇÍê³ÉÉ豸Çý¶¯¹¦ÄܲãµÄÏàÓ¦´úÂ룬¸ù¾Ýµ×²ã¾ßÌåµÄÓ²¼þÌØÐÔ£¬¶¨ÒåÍøÂçÉ豸½Ó¿Ústruct net_deviceÀàÐ͵ĽṹÌå±äÁ¿£¬²¢ÊµÏÖÆäÖÐÏàÓ¦µÄ²Ù×÷º¯Êý¼°Öжϴ¦Àí³ÌÐò¡£
LinuxÖÐËùÓеÄÍøÂçÉ豸¶¼³éÏóΪһ¸öͳһµÄ½Ó¿Ú£¬¼´ÍøÂçÉ豸½Ó¿Ú£¬Í¨¹ýstruct net_deviceÀàÐ͵ĽṹÌå±äÁ¿±íʾÍøÂçÉ豸ÔÚÄÚºËÖеÄÔËÐÐÇé¿ö£¬ÕâÀï¼È°üÀ¨»Ø»·£¨loopback£©É豸£¬Ò²°üÀ¨Ó²¼þÍøÂçÉ豸½Ó¿Ú¡£ÄÚºËͨ¹ýÒÔdev_base<drives/net/space.c>ΪͷָÕëµÄÉ豸Á´±íÀ´¹ÜÀíËùÓеÄÍøÂçÉ豸¡£
 
net_deviceÊý¾Ý½á¹¹
struct net_device½á¹¹ÌåÊÇÕû¸öÍøÂçÇý¶¯½á¹¹µÄºËÐÄ£¬ÆäÖж¨ÒåÁ˺ܶ๩ÍøÂçЭÒé½Ó¿Ú²ãµ÷ÓÃÉ豸µÄ±ê×¼·½·¨£¬¸Ã½á¹¹ÔÚ<include/linux/netdevice.h>ÎļþÖж¨Ò壬ÏÂÃæÖ»ÁгöÆäÖÐÖ÷ÒªµÄ³ÉÔ±¡£
 
1£©È«¾ÖÐÅÏ¢¼°µ×²ãÓ²¼þÐÅÏ¢
name:      ÍøÂçÉ豸Ãû³Æ£»
base_addr,irq:         ÍøÂçÉ豸µÄI/O»ùµØÖ·£¬ÖжϺţ¬ifconfigÃüÁî¿ÉÏÔʾºÍÐ޸ģ»
hard_header_len:    Ó²¼þÍ·µÄ³¤¶È£¬ÒÔÌ«ÍøÖÐֵΪ14£»
mtu:               ×î´ó´«Êäµ¥Ôª£¬ÒÔÌ«ÍøÖÐֵΪ1500B£»
dev_addr[MAX_ADDR_LEN]:      MACµØÖ·£¬ether_setup»á¶ÔÆä½øÐÐÕýÈ·µÄÉèÖã»
 
2£©Ö÷ÒªµÄ²Ù×÷·½·¨
int (*init)(struct net_device *dev);       É豸³õʼ»¯ºÍÏòϵͳע²áµÄº¯Êý£¬½öµ÷ÓÃÒ»´Î£»
int (*open)(struct net_device *dev);     É豸´ò¿ª½Ó¿Úº¯Êý£¬µ±ÓÃifconfig¼¤»îÍøÂçÉ豸ʱ±»µ÷Óã¬×¢²áËùÓõÄϵͳ×ÊÔ´£¨I/O¶Ë¿Ú£¬IRQ£¬DMAµÈ£©Í¬Ê±¼¤»îÓ²¼þ²¢Ôö¼ÓʹÓüÆÊý£»
int (*stop)(struct net_device *dev);      Ö´ÐÐopen·½·¨µÄ·´²Ù×÷£»
*hard_start_xmit£» ³õʼ»¯Êý¾Ý°ü´«ÊäµÄº¯Êý£»
 
ÍøÂçÇý¶¯³ÌÐ


Ïà¹ØÎĵµ£º

Linux³õʼ»¯ÄÚºËÁÙʱҳ±íÖ®ºóµÄsetup_memoryº¯Êý

»°ËµÔÚlinuxÄں˳õʼ»¯ÍêÄÚºËÁÙʱҳ±íÀ´Ó³ÉäÇ°8MBÄÚ´æºó£¬ÔÚÓûÍûµÄÇýʹÏ£¬linux¿ªÊ¼×ÅÊÖÇÀÕ¼
896MBÒÔϵÄÄÚ´æÁË¡£È»¶øÇÀ¶áÕâ896MBÄÚ´æ¾ø·ÇÒ×Ê¡£linux»¹ÓÐÐí¶àÂé·³µÄÊÂÒª×ö¡£±ÈÈç˵½ø¹¥ºÍÕ¼ÁìÒÁÀ­¿ËµÈµÈ¡£ÓÚÊÇ
setup_memoryº¯Êý¿ªÊ¼Îªlinux²ß»®ºÍ³ï±¸´ËÊ¡£Ö÷ÒªÈÎÎñÊǽ¨Á¢Ò»ÕÅÓëÎïÀíÄÚ´æÒ³¿òºÅ¶ÔÓ¦µÄλͼ¡£Èç¹û¸ÃÒ³¿ò±»Õ ......

sizeofÃæÊÔÌâÑ¡ Linux C±à³Ìʵս

   ½á¹¹ÌåºÍ¹²ÓÃÌåµÄÄÚ´æ·ÖÅäÊÇCÓïÑÔµÄÒ»¸öÄѵ㣬ҲÊÇÃæÊÔÌâÖеÄÈȵ㡣
ʾÀý1£º
   Union data1
 {
  double  d;
  int     i;
  char    c1;
  char    c2[9]; 
 };
  sizeof(union data1 ......

º£·çµÄLinux¿ª·¢»·¾³½éÉÜ


Title: `º£·çµÄLinux¿ª·¢»·¾³½éÉÜ
  tag: linux¿ª·¢ÈëÃÅ, ¿ª·¢»·¾³, samba, indent, SourceInsight, Winux
  Îĵµ·¢²¼ÉùÃ÷: ÈκÎÈ˶¼¿ÉÒÔÕë¶Ô±¾Îĵµ×ÔÓÉתÌù£¬¿½±´£¬ÒýÓ㬼°Ð޸ĺóÔÙ·¢²¼£¬¶øÎÞÐè¹ýÎÊÎÒ±¾ÈË£¬Ö»Ï£ÍûÄܹ»ÁôÏÂÊôÓÚÔ­×÷ÕßµÄһЩ°æȨÐÅÏ¢£¬Çë×ðÖØÔ­×÷ÕßµÄÀͶ¯¡£
  `º£·ç = ......

Linux:mailµÄÓʼþÊÕ·¢¼°²é¿´


ϵͳÊÕµ½Óʼþ¶¼»á±£´æÔÚ“/var/spool/mail/[linuxÓû§Ãû]”ÎļþÖС£
ÔÚlinuxÖÐÊäÈëmail£¬¾Í½øÐÐÁËÊÕ¼þÏ䣬²¢ÏÔʾ¶þÊ®·âÓʼþÁÐ±í¡£
´ËʱÃüÁîÌáʾ·ûΪ"&"
unread ±ê¼ÇΪδ¶ÁÓʼþ
h|headers ÏÔʾµ±Ç°µÄÓʼþÁбí
l|list ÏÔʾµ±Ç°Ö§³ÖµÄÃüÁîÁбí
?|help ÏÔʾ¶à¸ö²é¿´ÓʼþÁбíµÄÃüÁî²ÎÊýÓ÷¨
d ɾ³ýµ±Ç°ÓÊ ......

±¾»úlinux·ÃÎʱ¾»úwindowsÄÚÈÝ

fedora linux ¼¸ºõÖ§³ÖÈκθñʽµÄÎļþϵͳ ntfsÒ²ÄÜÖ§³Ö
×°linux  ʱѡÔñ¶¨ÖÆ·ÖÇø  ÔÚ´ÅÅÌÉèÖÃϼǼÄãµÄ¸÷¸öÅÌ·ûµÄÇé¿ö
ÀýÈçÎҵĻú×ÓÓ²ÅÌ·ÖÇøµÄ¹ÒÔØÇé¿öÊÇÕâÑùµÄ£¬Ã¿¸öÈ˶¼²»Í¬  ×°»ú×ÓµÄʱºò×¢Òâ¼ÇÏÂÀ´
     ÎҵĻú×Ó£º   /dev/sda 1     ¶ÔÓ¦µÄ ......
© 2009 ej38.com All Rights Reserved. ¹ØÓÚE½¡ÍøÁªÏµÎÒÃÇ | Õ¾µãµØͼ | ¸ÓICP±¸09004571ºÅ