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

linux Íø¿¨Çý¶¯

Tg3 Gbit NIC Driver Analysis
Ôڴ˽ö½öÌÖÂÛÍøÂçÉ豸Çý¶¯µÄÒ»°ãд·¨£¬ÓйØÓ²¼þ²¿·ÖµÄÏà¹Ø´úÂëÓÉÓÚÓ²¼þ¹æ¸ñ²»Í¬£¬ÓèÒÔÊ¡ÂÔ¡£ÓÐʲôµØ·½´íÎ󣬻ò²¹³ä£¬»¶Ó­´ó¼ÒÌá³ö¡£
1, Çý¶¯Ä£¿éµÄ¼ÓÔØºÍÐ¶ÔØ
Èç¹ûÍøÂçÉ豸£¨°üÀ¨wireless£©ÊÇPCI¹æ·¶µÄ£¬ÔòÏÈÊÇÏòÄÚºË×¢²á¸ÃPCIÉ豸(pci_register_driver)£¬È»ºóÓÉpci_driverÊý¾Ý½á¹¹ÖеÄprobeº¯ÊýÖ¸ÕëËùÖ¸ÏòµÄÕì²âº¯ÊýÀ´³õʼ»¯¸ÃPCIÉ豸£¬²¢ÇÒͬʱע²áºÍ³õʼ»¯¸ÃÍøÂçÉ豸¡£
Èç¹ûÍøÂçÉ豸£¨°üÀ¨wireless£©ÊÇPCMCIA¹æ·¶µÄ£¬ÔòÏÈÊÇÏòÄÚºË×¢²á¸ÃPCMCIAÉ豸(register_pccard_driver)£¬È»ºódriver_info_tÊý¾Ý½á¹¹ÖеÄattachº¯ÊýÖ¸ÕëËùÖ¸ÏòµÄÕì²âº¯ÊýÀ´³õʼ»¯¸ÃPCMCIAÉ豸£¬²¢ÇÒͬʱע²áºÍ³õʼ»¯¸ÃÍøÂçÉ豸¡£
static int __init tg3_init(void)
{
//ÏÈ×¢²á³ÉPCIÉ豸£¬²¢³õʼ»¯£¬Èç¹ûÊÇÆäËûµÄESIA£¬PCMCIA£¬ÓÃÆäËûº¯Êý
return pci_module_init(&tg3_driver);
}
static void __exit tg3_cleanup(void)
{
pci_unregister_driver(&tg3_driver);//×¢ÏúPCIÉ豸
}
module_init(tg3_init); //Çý¶¯Ä£¿éµÄ¼ÓÔØ
module_exit(tg3_cleanup); //Çý¶¯Ä£¿éµÄÐ¶ÔØ
ÉêÃ÷ΪPCIÉ豸£º
static struct pci_driver tg3_driver = {
.name = DRV_MODULE_NAME,
.id_table = tg3_pci_tbl, //´ËÇý¶¯ËùÖ§³ÖµÄÍø¿¨ÏµÁУ¬vendor_id, device_id
.probe = tg3_init_one, //³õʼ»¯ÍøÂçÉ豸µÄ»Øµ÷º¯Êý
.remove = __devexit_p(tg3_remove_one), //×¢ÏúÍøÂçÉ豸µÄ»Øµ÷º¯Êý
.suspend = tg3_suspend, //É豸¹ÒÆðº¯Êý
.resume = tg3_resume //É豸»Ö¸´º¯Êý
};
2£¬PCIÉ豸̽²âº¯Êýprobe£¬³õʼ»¯ÍøÂçÉ豸
static int __devinit tg3_init_one(struct pci_dev *pdev, const struct pci_device_id *ent)
{
//³õʼ»¯É豸£¬Ê¹I/O£¬memory¿ÉÓ㬻½ÐÑÉ豸
pci_enable_device(pdev);
//ÉêÇëÄÚ´æ¿Õ¼ä£¬ÅäÖÃÍø¿¨µÄI/O£¬memory×ÊÔ´
pci_request_regions(pdev, DRV_MODULE_NAME);
pci_set_master(pdev);
//ÉèÖÃDMAÊôÐÔ
pci_set_dma_mask(pdev, (u64) 0xffffffffffffffff);
//Íø¿¨ I/O,memory×ÊÔ´µÄÆôʼµØÖ·
tg3reg_base = pci_resource_start(pdev, 0);
//Íø¿¨I/O,memory×ÊÔ´µÄ´óС
tg3reg_len = pci_resource_len(pdev, 0);
//·ÖÅä²¢ÉèÖÃÍøÂçÉ豸
dev = alloc_etherdev(sizeof(*tp));
//ÉêÃ÷ΪÄÚºËÉ豸ģ¿é
SET_MODULE_OWNER(dev);
//³õʼ»¯Ë½ÓнṹÖеĸ÷³ÉÔ±Öµ
tp = dev->priv


Ïà¹ØÎĵµ£º

ʵսLinux Bluetooth±à³Ì£¨ËÄ£© L2CAP²ã±à³Ì

£¨L2CAPЭÒé¼ò½é£¬L2CAPÔÚBlueZÖеÄʵÏÖÒÔ¼°L2CAP±à³Ì½Ó¿Ú£©
Ò»£ºL2CAPЭÒé¼ò½é£º
Logical Link Control and Adaptation Protocol(L2CAP)
Âß¼­Á¬½Ó¿ØÖƺÍÊÊÅäЭÒé (L2CAP) ΪÉϲãЭÒéÌá¹©ÃæÏòÁ¬½ÓºÍÎÞÁ¬½ÓµÄÊý¾Ý·þÎñ£¬²¢Ìṩ¶àЭÒ鹦ÄܺͷָîÖØ×é²Ù×÷¡£L2CAP ³äÐíÉϲãЭÒéºÍÓ¦ÓÃÈí¼þ´«ÊäºÍ½ÓÊÕ×î´ó³¤¶ÈΪ 64K µÄ L2CAP Ê ......

linux ϸ÷ÖÖѹËõ¸ñʽµÄ½âѹºÍѹËõ

 £¨ËùÓеÄ#²»ÊÇÒªÊäÈëµÄÃüÁÊǶÔĿ¼µÄÊ¡ÂÔ£¬Îļþ¼ÐÒªºÍ¶ÔÓ¦µÄĿ¼Ïàͬ Èç ÄãµÄÎļþ¼Ð·ÅÔÚÁËdowload Ï£¬¾ÍÒª»Øµ½dowloadĿ¼Ï£¬Ò»°ãÎļþ¼ÐµÄÃüÃû²»ÒªÓúºÓ
¶ÔÓÚ¸Õ¸Õ½Ó´¥LinuxµÄÈËÀ´Ëµ£¬Ò»¶¨»á¸øLinuxÏÂÒ»´ó¶Ñ¸÷ʽ¸÷ÑùµÄÎļþÃû¸ø¸ãÔΡ£±ð
¸ö²»Ëµ£¬µ¥µ¥¾ÍѹËõÎļþΪÀý£¬ÎÒÃÇÖªµÀÔÚWindowsÏÂ×î³£¼ûµÄѹËõÎļþ¾ÍÖ ......

Unix/Linux ÃüÁî²Î¿¼

ÎļþÃüÁî
ls – ÁгöĿ¼
ls -al – ʹÓøñʽ»¯ÁгöÒþ²ØÎļþ
cd dir - ¸ü¸ÄĿ¼µ½ dir
cd – ¸ü¸Äµ½ home Ŀ¼
pwd – ÏÔʾµ±Ç°Ä¿Â¼
mkdir dir – ´´½¨Ä¿Â¼ dir
rm file – ɾ³ý file
rm -r dir – ɾ³ýĿ¼ dir
rm -f file – Ç¿ÖÆÉ¾³ý file
rm -rf dir – Ç¿ÖÆÉ¾ ......

linuxÆô¶¯ÐÅÏ¢ÍêÈ«Ïê½â Àý×Ó

 ÕªÒª
ÎÒÃÇÔÚÕâÀïÌÖÂÛµÄÊǶÔǶÈëʽlinuxϵͳµÄÆô¶¯¹ý³ÌµÄÊä³öÐÅÏ¢µÄ×¢ÊÍ£¬Í¨¹ýÎÒÃǵÄÌÖÂÛ£¬´ó¼Ò»á¶ÔǶÈëʽlinuxÆô¶¯¹ý³ÌÖгöÏֵġ¢ÒÔǰ¸Ð¾õÊìϤµÄ¡¢µ«È´ÓÖËÆÊǶø·ÇµÄ¶«Î÷ÓÐÒ»¸öÈ·ÇеÄÁ˽⣬²¢ÇÒÄÜÁ˽⵽ÕâЩÊä³öÐÅÏ¢µÄÀ´ÁúÈ¥Âö¡£
ǶÈëʽlinuxµÄÆô¶¯ÐÅÏ¢ÊÇÒ»¸öºÜÖµµÃÎÒÃÇÈ¥ºÃºÃÑо¿µÄ¶«Î÷£¬ËüÄܽ«Ò»·ùËõӰͼ³ÊÏÖÔÚÎÒà ......

Ubuntu Linux 8.04À¶ÑÀÉ豸Á¬½Ó¹ÜÀí·½·¨

1.Æô¶¯À¶ÑÀÉ豸
sudo /etc/init.d/bluetooth restart
»òÕß
sudo /etc/init.d/bluez-utils restart
 
2.ʹÓÃhcitool dev²é¿´¼ÆËã»úÉϵÄÀ¶ÑÀÉ豸
teapot@teapot:~$ hcitool dev
Devices:
hci0 00:16:CF:DB:B4:BF
teapot@teapot:~$
 
3.°²×°É豸
²éѯÉ豸µØÖ·
teapot@teapot:~$ sudo hidd - ......
© 2009 ej38.com All Rights Reserved. ¹ØÓÚE½¡ÍøÁªÏµÎÒÃÇ | Õ¾µãµØÍ¼ | ¸ÓICP±¸09004571ºÅ