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£» ³õʼ»¯Êý¾Ý°ü´«ÊäµÄº¯Êý£»
ÍøÂçÇý¶¯³ÌÐ
Ïà¹ØÎĵµ£º
ÀýÒ»£º·¢ËÍSignaling Packet£º
Signaling CommandÊÇ2¸öBluetoothʵÌåÖ®¼äµÄL2CAP²ãÃüÁî´«Êä¡£ËùÒÔµÃSignaling CommandʹÓÃCID 0x0001.
¶à¸öCommand¿ÉÒÔÔÚÒ»¸öC-frame£¨control frame£©Öз¢ËÍ¡£
Èç¹ûÒªÖ±½Ó·¢ËÍSignaling Command.ÐèÒª½¨Á¢SOCK_RAWÀàÐ͵ÄL2CAPÁ¬½ÓSocket¡£ÕâÑù²ÅÓлú»á×Ô¼ºÌî³äCommand Code£¬Identi ......
£¨1£©zImage×Ô½âѹ
±¾ÎÄÒÔÁ÷ÐеÄSamsung¹«Ë¾µÄS3C2410£¬mini2440ƽ̨ºÍlinux-2.6.29ΪÀý£¬½éÉÜÈçºÎÔÚZIXǶÈëʽ¿ª·¢»·¾³ÏÂ̽Ë÷linuxÄÚºËÆô¶¯¹ý³Ì¡£
LinuxÄÚºËÆô¶¯Ò»°ãÓÉÍⲿµÄbootloaderÒýµ¼£¬Ò²¿ÉÒÔÔÚÄÚºËÍ·²¿Ç¶ÈëÒ»¸öloader£¬Êµ¼ÊµÄÓ¦ÓÃÖÐÕâÁ½ÖÖ·½Ê½¶¼»á¾³£Óöµ½¡£ËùÒÔÒªÁ˽âÄÚºËÆô¶¯×ʼµÄ¹ý³Ì£¬±ØÐë¶ÔbootloaderÈçºÎ ......
Skate
¡¡
¡¡¡¡²é¿´osϵͳ¿éµÄ´óС
¡¡
¡¡¡¡[root]# /sbin/tune2fs -l /dev/sda1
¡¡
¡¡¡¡²é¿´osϵͳҳµÄ´óС
¡¡
¡¡¡¡[oracle@skate-test ~]$ getconf PAGESIZE
¡¡
¡¡¡¡4096
¡¡
¡¡¡¡Ð޸ĿéµÄ´óС£º
¡¡
¡¡¡¡´´½¨Îļþϵͳʱ£¬¿ÉÒÔÖ¸¶¨¿éµÄ´óС¡£Èç¹û½«À´ÔÚÄãµÄÎļþϵͳÖÐÊÇһЩ±È½Ï´óµÄÎļþµÄ»°£¬Ê¹ÓýϴóµÄ¿é´óС ......
ÖÚËùÖÜÖª£¬ÎļþϵͳÊDzÙ×÷ϵͳ×îÎªÖØÒªµÄÒ»²¿·Ö¡£Ã¿ÖÖ²Ù×÷ϵͳ¶¼ÓÐ×Ô¼ºµÄÎļþϵͳ¡£Îļþϵͳֱ½ÓÓ°Ïì×ŲÙ×÷ϵͳµÄÎȶ¨ÐԺͿɿ¿ÐÔ¡£LinuxϵÄÎļþϵͳͨ³£ÓÐÁ½ÖÖ£¬¼´ÈÕÖ¾ÎļþϵͳºÍ·ÇÈÕÖ¾Îļþϵͳ£¬ÒÔϼòµ¥½éÉÜÁ½ÀàÎļþϵͳ¡£
Ò»¡¢ ·ÇÈÕÖ¾Îļþϵͳ
·ÇÈÕÖ¾ÎļþϵͳÔÚ¹¤×÷ʱ£¬²»¶ÔÎļþϵͳµÄ¸ü¸Ä½øÐÐÈÕÖ¾¼Ç¼¡£
Îļþϵͳͨ ......
fedora linux ¼¸ºõÖ§³ÖÈκθñʽµÄÎļþϵͳ ntfsÒ²ÄÜÖ§³Ö
×°linux ʱѡÔñ¶¨ÖÆ·ÖÇø ÔÚ´ÅÅÌÉèÖÃϼǼÄãµÄ¸÷¸öÅÌ·ûµÄÇé¿ö
ÀýÈçÎҵĻú×ÓÓ²ÅÌ·ÖÇøµÄ¹ÒÔØÇé¿öÊÇÕâÑùµÄ£¬Ã¿¸öÈ˶¼²»Í¬ ×°»ú×ÓµÄʱºò×¢Òâ¼ÇÏÂÀ´
ÎҵĻú×Ó£º /dev/sda 1 ¶ÔÓ¦µÄ ......