Linux开发十八_网卡驱动

Linux开发十八

网卡驱动

象棋小子    1048272975

Internet作为全球最大的互联网络,几乎总汇了全球的信息资源,越来越多的设备需要连接Internet,共享信息资源。Linux内核已经支持dm9000网卡驱动。

1. dm9000设备

dm9000设备包含了名字、独有的资源等等一些驱动程序的硬件或自定义信息。通过platform_add_devices(platform_device_register)函数将定义的平台设备注册到内核中,用于匹配设备驱动。

内核在drivers\net\ethernet\davicom\dm9000.c中实现了dm9000的网卡驱动, dm9000设备平台代码如下。

#include

#define MACH_HOME2416_DM9K_BASE        (S3C2410_CS1 + 0x0)

/* DM9000AEP 10/100 ethernet controller*/

static struct resourcehome2416_dm9k_resource[] = {

       [0]= DEFINE_RES_MEM(MACH_HOME2416_DM9K_BASE, 4),

       [1]= DEFINE_RES_MEM(MACH_HOME2416_DM9K_BASE + 4, 4),

       [2]= DEFINE_RES_NAMED(IRQ_EINT4, 1, NULL, IORESOURCE_IRQ \

                                          |IORESOURCE_IRQ_HIGHEDGE),

};

 

static struct dm9000_plat_datahome2416_dm9k_pdata = {

       .flags             = (DM9000_PLATF_16BITONLY |DM9000_PLATF_NO_EEPROM),

       .dev_addr= {0x00, 0x22, 0x12, 0x34, 0x56, 0x90}

};

 

static struct platform_devicehome2416_device_eth = {

       .name            = "dm9000",

       .id          = -1,

       .num_resources    = ARRAY_SIZE(home2416_dm9k_resource),

       .resource       = home2416_dm9k_resource,

       .dev        = {

              .platform_data     = &home2416_dm9k_pdata,

       },

};

在static struct platform_device*home2416_devices[]板级平台设备列表中加入&home2416_device_eth,使dm9000设备能够注册到内核中。

2. 内核配置

Linux配置支持dm9000设备驱动,选中Device Drivers->Network devicesupport->Ethernet driver support->DM9000 support。

Linux开发十八_网卡驱动_第1张图片

Linux配置支持tcpip协议,选中Networkingsupport->Networking options->TCP/IP Networking。

Linux开发十八_网卡驱动_第2张图片

3. 网卡测试

网线连接板端以及主机,主机端采用静态ip,192.168.0.10。板启动后,设置板端ip,192.168.0.20。

ifconfig eth0 192.168.0.20 up

主机端ping板端,ping 192.168.0.20。

Linux开发十八_网卡驱动_第3张图片

板端ping主机端,ping 192.168.0.10。

Linux开发十八_网卡驱动_第4张图片

4. 附录

https://pan.baidu.com/s/1slczwhJ

bootloader源码以及使用说明

https://pan.baidu.com/s/1eRDJtNs

Qt5.8官网源码

https://pan.baidu.com/s/1nuGmSqt

本系列例程的根文件系统

https://pan.baidu.com/s/1i5btLGT

opev3.2.0官网源码

https://pan.baidu.com/s/1pLpuHw3

yaffs官网源码 

https://pan.baidu.com/s/1bpkZynt

busybox-1.26.2官网源码

https://pan.baidu.com/s/1i4EtjfR

tslib官网源码

https://pan.baidu.com/s/1i5MGRhb

mplayer-1.3.0官网源码

https://pan.baidu.com/s/1sl0fXlr

基于S3C2416修改的linux-4.10.10源码

 

你可能感兴趣的:(嵌入式linux开发,linux内核,s3c2416,网卡驱动,dm9000)