欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費電子書(shū)等14項超值服

開(kāi)通VIP
基于linux2.6內核的dm9000移植(詳細簡(jiǎn)潔)
From:http://hi.baidu.com/soft_hard/blog/item/c54f8d23cf977dad4723e826.html

    linux-2.6.22內核下dm9000網(wǎng)卡移植具體步驟如下:
    平臺信息:
    開(kāi)發(fā)板:
             芯片     s3c2410
             系統內核 linux-2.6.22.19
    主機:
             操作系統:redhat9.0
             交叉編譯器:arm-linux-gcc3.4.1
   
1. 修改arch/arm/plat-s3c24xx/devs.c,加入dm9000的信息,并使用EXPORT_SYMBOL 宏將platform_device s3c_device_dm9000導出,在smdk2410.c中會(huì )用到先添加頭文件:
#include <linux/dm9000.h> //
再添加以下代碼:
//===========================================================================
/*注意:以下有兩個(gè)地方需要根據自己的開(kāi)發(fā)板上的dm9000與s3c2410硬件電路連接情況而定(一般在開(kāi)發(fā)板的手冊上有說(shuō)明):
    (1)dm9000的基地址 DM9000_BASE,   

    (2)所采用的是哪個(gè)外部中斷*/

#define    DM9000_BASE 0x18000300 //依個(gè)人情況而定
static struct resource s3c_dm9000_resource[] = {
        [0] = {
              .start = DM9000_BASE,
      .end   = DM9000_BASE+ 0x3,
      .flags = IORESOURCE_MEM
       },
       [1]={
              .start = DM9000_BASE + 0x4,
              .end = DM9000_BASE + 0x4 + 0x7c,
             .flags = IORESOURCE_MEM
       },
        [2] = {
      .start = IRQ_EINT0, //依個(gè)人情況而定
      .end   = IRQ_EINT0, //依個(gè)人情況而定

      .flags = IORESOURCE_IRQ
       }
};

static struct dm9000_plat_data s3c_device_dm9000_platdata = {
   .flags= DM9000_PLATF_16BITONLY,
};

struct platform_device s3c_device_dm9000 = {
        .name= "dm9000",
      .id= -1,
       .num_resources= ARRAY_SIZE(s3c_dm9000_resource),
       .resource= s3c_dm9000_resource,
      .dev= {
      .platform_data = &s3c_device_dm9000_platdata,
       }
};

EXPORT_SYMBOL(s3c_device_dm9000);     
//end of DM9000
//===========================================================================

2.在include/asm-arm/plat-s3c24xx/devs.h 文件中 添加一行
extern struct platform_device s3c_device_dm9000;


3.在arch/arm/mach-s3c2410/mach-smdk2410.c中將dm9000加入到要初始化的設備鏈表里去,內核啟動(dòng)時(shí)將會(huì )檢測設

備并加載驅動(dòng)

   static struct platform_device *smdk2410_devices[] __initdata = {
        &s3c_device_usb,
       &s3c_device_lcd,
       &s3c_device_wdt,
       &s3c_device_i2c,  

        &s3c_device_iis,
       &s3c_device_dm9000,//add for dm9000

        };

4, 以下是要在linux-2.6.24/drivers/net/dm9000.c文件中添加的內容:

   4.1 為dm9000添加硬件復位,在dm9000_reset函數開(kāi)頭添加以下代碼:
       /*reset hardware --add by Eric Fu */
        s3c2410_gpio_cfgpin(S3C2410_GPG2,S3C2410_GPG2_OUTP);   

       s3c2410_gpio_setpin(S3C2410_GPG2,0);
        udelay(500);
        s3c2410_gpio_setpin(S3C2410_GPG2,1);       

        udelay(500);
        s3c2410_gpio_setpin(S3C2410_GPG2,0);
        udelay(500);
        /*end of add*/

        注意:網(wǎng)上很多移植都沒(méi)有這一步,但在我的板子上如果沒(méi)有這一步,但板子硬件復位后會(huì )出現系統找不到網(wǎng)卡設備,并出現以下錯誤信息:
        dm9000 Ethernet Driver
        dm9000: read wrong id 0x00000000
        dm9000: read wrong id 0x00000000
        dm9000: wrong id: 0x00000000               

        dm9000: not found (0).
        ........

   4.2 MAC 地址設置:
       在dm9000_probe函數中添加兩處語(yǔ)句:
     (1)在函數體的開(kāi)頭兒添加:
        static char net_mac_addr[]={0x00,0xe0,0x3d,0xf4,0xdd,0xf7}; // 自己設的MAC地址,隨意設,盡量不要

全0或全1
     (2) 在/* Set Node Address */
        for (i = 0; i < 6; i++)
            ndev->dev_addr[i] = db->srom[i];
        的后面
        if (!is_valid_ether_addr(ndev->dev_addr)) {
        /* try reading from mac */
        for (i = 0; i < 6; i++)
            ndev->dev_addr[i] = ior(db, i+DM9000_PAR);
        }
        的前面,添加:
       /*********** add by Eric Fu ************/
       for(i=0;i<6;i++){
         ndev->dev_addr[i]=net_mac_addr[i];
       }            

       /******************end **************/

      注意:至此編譯內核下載系統就能加載dm9000網(wǎng)卡設備了,啟動(dòng)信息中會(huì )出現:
        dm9000 Ethernet Driver
        eth0: dm9000 at c485e300,c4860304 IRQ 16 MAC: 00:e0:3d:f4:dd:f7

    4.3 設置外部中斷:
        (1)在dm9000.c頂部添加以下頭文件:
          #include <asm-arm/arch/irqs.h>
          #include <asm-arm/arch/hardware.h>
          #include <asm-arm/arch/regs-gpio.h>
          #include <linux/irq.h>

        (2)在4.2步添加代碼處添加一句中斷設置語(yǔ)句,連同4.2步整體效果如下:
          /*********** add by Eric Fu ************/
          for(i=0;i<6;i++){
              ndev->dev_addr[i]=net_mac_addr[i];
           }

            /*Set external intruppt*/
          set_irq_type(IRQ_EINT0,IRQT_HIGH);//IRQ_EINT0要根據自己開(kāi)發(fā)板而定,與步驟1中對應.

          /******************end **************/
       
        注意:代碼修改完成,配合第5步,第6步,編譯下載可以ping通其他機器了.

5,配置內核:
     Device Drivers --->
            Network device support --->
                  Ethernet (10 or 100Mbit) --->
                           <*> DM9000 support   //選上該項


6,網(wǎng)絡(luò )設置:
     下載內核,啟動(dòng)后執行以下命令(否則ifconfig命令無(wú)效):
      / $ cd sbin
      /sbin $ ifconfig lo up
      /sbin $ ifconfig eth0 192.168.0.106 netmask 255.0.0.0 up         
      eth0: link up, 100Mbps, full-duplex, lpa 0x45E1
      /sbin $ inetd
      /sbin $ mount -t proc proc /proc
      /sbin $ ifconfig
     
      出現如下信息:
      eth0      Link encap:Ethernet HWaddr 00:E0:3D:F4:DD:F7
          inet addr:192.168.0.106 Bcast:192.255.255.255 Mask:255.0.0.0
          UP           BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
          Interrupt:19 Base address:0xe300
                                                                               
     lo        Link encap:Local Loopback
          inet addr:127.0.0.1 Mask:255.0.0.0
          UP LOOPBACK RUNNING MTU:16436 Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)

       這時(shí)可以ping通其它機器了,如果ping不通,可以試著(zhù)把ip設成與你要ping的機器在同一網(wǎng)段,網(wǎng)關(guān)也設成一樣.

      / $ ping 192.168.0.105
      PING 192.168.0.105       (192.168.0.105): 56 data bytes
      84 bytes from 192.168.0.105: icmp_seq=0 ttl=64 time=2.0 ms            84 bytes from

192.168.0.105: icmp_seq=1 ttl=64 time=0.5 ms
      84 bytes from 192.168.0.105:       icmp_seq=2 ttl=64 time=0.5 ms
      84 bytes from 192.168.0.105: icmp_seq=3 ttl=64 time=0.5 ms
      84 bytes from 192.168.0.105: icmp_seq=4 ttl=64 time=0.5 ms
至此dm9000移植完成,如果內核配置了nfs,這時(shí)就可以直接使用了.

       本文在參考了網(wǎng)上一些文章的基礎上針對自己遇到的問(wèn)題做了一些修改和補充,主要是指出了針對不同開(kāi)發(fā)板需要修改的地方,并將外部中斷的設置方式改為函數設置,從而將原來(lái)的十句代碼化簡(jiǎn)到一句,執行效率上也許比不上直接代碼設置,但是對于新手來(lái)說(shuō)這樣更簡(jiǎn)潔明了,節省時(shí)間。

       參考文章:http://blog.ednchina.com/brucedeng/76545/message.aspx

                        http://blog.21ic.com/user1/3074/archives/2009/57085.html

                        http://blog.csdn.net/yang_dk/archive/2008/05/01/2357664.aspx

本站僅提供存儲服務(wù),所有內容均由用戶(hù)發(fā)布,如發(fā)現有害或侵權內容,請點(diǎn)擊舉報。
打開(kāi)APP,閱讀全文并永久保存 查看更多類(lèi)似文章
猜你喜歡
類(lèi)似文章
基于S3C2440嵌入式Linux下網(wǎng)卡DM9000E移植
dm9000驅動(dòng) 簡(jiǎn)析1
網(wǎng)卡驅動(dòng)(CS8900)在A(yíng)RM上的移植和測試
LINUX DEVICE 第三版(快速參考)
Linux I2C驅動(dòng)完全分析(一)
LCD驅動(dòng)二
更多類(lèi)似文章 >>
生活服務(wù)
分享 收藏 導長(cháng)圖 關(guān)注 下載文章
綁定賬號成功
后續可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服

欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久