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£» ³õʼ»¯Êý¾Ý°ü´«ÊäµÄº¯Êý£»
ÍøÂçÇý¶¯³ÌÐ
Ïà¹ØÎĵµ£º
1. HCI²ãÐÒé¸ÅÊö£º
HCIÌṩһÌ×ͳһµÄ·½·¨À´·ÃÎÊBluetoothµ×²ã¡£ÈçͼËùʾ£º
´ÓͼÉÏ¿ÉÒÔ¿´³ö£¬Host Controller Interface(HCI) ¾ÍÊÇÓÃÀ´¹µÍ¨HostºÍModule¡£Hostͨ³£¾ÍÊÇPC£¬ ModuleÔòÊÇÒÔ¸÷ÖÖÎïÀíÁ¬½ÓÐÎʽ£¨USB,serial,pc-cardµÈ£©Á¬½Óµ½PCÉϵÄbluetooth Dongle¡£
ÔÚHostÕâÒ»¶Ë£ºapplication,SDP,L2capµÈÐÒé ......
Ò»£ºÇ°ÑÔ
×î½üÔÚÑо¿androidµÄsensor driver£¬Ö÷ÒªÊÇE-compass£¬ÆäÖÐÓõ½ÁËLinux input×Óϵͳ.ÔÚÍøÉÏÒ²¿´Á˺ܶàÕâ·½ÃæµÄ×ÊÁÏ£¬¸Ð¾õ»¹ÊÇÕâÆª·ÖÎöµÄ±È½ÏϸÖÂ͸³¹£¬Òò´Ë×ªÔØÒ»ÏÂÒÔ±ã×Ô¼ºÑ§Ï°£¬Í¬Ê±ºÍ´ó¼Ò·ÖÏí£¡
£¨ÕâÆª²©¿ÍÖ÷ÒªÊÇÒÔ¼üÅÌÇý¶¯ÎªÀýµÄ£¬²»¹ý½²½âµÄÊÇLinux Input Subsystem£¬¿ÉÒÔ×ÐϸµÄÑо¿Ò»Ï£¡£©
¼üÅÌÇý¶¯½«¼ì ......
½âÊÍÒ»:
¸ß¶ËÄÚ´æÊÇÖ¸ÎïÀíµØÖ·´óÓÚ 896M µÄÄÚ´æ¡£
¶ÔÓÚÕâÑùµÄÄڴ棬ÎÞ·¨ÔÚ“ÄÚºËÖ±½ÓÓ³Éä¿Õ¼ä”½øÐÐÓ³Éä¡£
Ϊʲô£¿
ÒòΪ“ÄÚºËÖ±½ÓÓ³Éä¿Õ¼ä”×î¶àÖ»ÄÜ´Ó 3G µ½ 4G£¬Ö»ÄÜÖ±½ÓÓ³Éä 1G ÎïÀíÄڴ棬¶ÔÓÚ´óÓÚ 1G µÄÎïÀíÄڴ棬ÎÞÄÜΪÁ¦¡£
ʵ¼ÊÉÏ£¬“ÄÚºËÖ±½ÓÓ³Éä¿Õ¼ä”Ò²´ï²»µ½ 1G£¬ »¹µÃÁôµã ......
½á¹¹ÌåºÍ¹²ÓÃÌåµÄÄÚ´æ·ÖÅäÊÇCÓïÑÔµÄÒ»¸öÄѵ㣬ҲÊÇÃæÊÔÌâÖеÄÈȵ㡣
ʾÀý1£º
Union data1
{
double d;
int i;
char c1;
char c2[9];
};
sizeof(union data1 ......
ϵͳÊÕµ½Óʼþ¶¼»á±£´æÔÚ“/var/spool/mail/[linuxÓû§Ãû]”ÎļþÖС£
ÔÚlinuxÖÐÊäÈëmail£¬¾Í½øÐÐÁËÊÕ¼þÏ䣬²¢ÏÔʾ¶þÊ®·âÓʼþÁÐ±í¡£
´ËʱÃüÁîÌáʾ·ûΪ"&"
unread ±ê¼ÇΪδ¶ÁÓʼþ
h|headers ÏÔʾµ±Ç°µÄÓʼþÁбí
l|list ÏÔʾµ±Ç°Ö§³ÖµÄÃüÁîÁбí
?|help ÏÔʾ¶à¸ö²é¿´ÓʼþÁбíµÄÃüÁî²ÎÊýÓ÷¨
d ɾ³ýµ±Ç°ÓÊ ......