实验 111 网络驱动移植分析Word格式文档下载.docx

上传人:b****6 文档编号:19175489 上传时间:2023-01-04 格式:DOCX 页数:11 大小:420.41KB
下载 相关 举报
实验 111 网络驱动移植分析Word格式文档下载.docx_第1页
第1页 / 共11页
实验 111 网络驱动移植分析Word格式文档下载.docx_第2页
第2页 / 共11页
实验 111 网络驱动移植分析Word格式文档下载.docx_第3页
第3页 / 共11页
实验 111 网络驱动移植分析Word格式文档下载.docx_第4页
第4页 / 共11页
实验 111 网络驱动移植分析Word格式文档下载.docx_第5页
第5页 / 共11页
点击查看更多>>
下载资源
资源描述

实验 111 网络驱动移植分析Word格式文档下载.docx

《实验 111 网络驱动移植分析Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《实验 111 网络驱动移植分析Word格式文档下载.docx(11页珍藏版)》请在冰豆网上搜索。

实验 111 网络驱动移植分析Word格式文档下载.docx

.flags=IORESOURCE_MEM,

},

[1]={

.start=IRQ_GPIO(10),//XSBDVK_ETH_IRQ,

.end=IRQ_GPIO(10),//XSBDVK_ETH_IRQ,

.flags=IORESOURCE_IRQ,

}

};

2、网卡驱动平台接口配置结构体,主要用于设置网卡驱动所使用的名称、ID以及所利用的资源,EELiod平台使用Linux操作系统的smc91x系列网卡驱动。

staticstructplatform_devicesmc91x_device={

.name="

smc91x"

.id=0,

.num_resources=ARRAY_SIZE(smc91x_resources),

.resource=smc91x_resources,

3、声明平台初始化时需要初始化的一些设备。

staticstructplatform_device*platform_devices[]__initdata={

&

smc91x_device,

&

xsbase270_audio_device,

xsbase270_flash_device,

4、

系统启动时调用xsbase270_init(void)函数,用于完成对板级硬件的配置,其中platform_add_devices(platform_devices,ARRAY_SIZE(platform_devices))函数实现添加EELiod平台板级设备驱动,该代码主要实现整个IntelPXA架构硬件初始化。

staticvoid__initxsbase270_init(void)

{

structrtc_timewtime;

wtime=get_rtc4513_time();

xtime.tv_sec=mktime(wtime.tm_year,wtime.tm_mon,wtime.tm_mday,wtime.tm_hour,wtime.tm_min,wtime.tm_sec);

ARB_CNTRL=ARB_CORE_PARK|0x234;

pxa_gpio_mode(GPIO45_SYSCLK_AC97_MD);

platform_add_devices(platform_devices,ARRAY_SIZE(platform_devices));

xsbase270_pxafb_info.modes=&

lb064v02_mode;

set_pxa_fb_info(&

xsbase270_pxafb_info);

pxa_set_ohci_info(&

xsbase270_ohci_platform_data);

pxa_set_mci_info(&

xsbase270_mci_platform_data);

}

第二步:

网卡驱动的配置

1、内核配置过程中,选择DeviceDrivers--->

,然后进入设备驱动配置,选中<

*>

Networkdevicesupport--->

,按<

Select>

,进入对网络驱动的配置选项,选中Ethernet(10or100Mbit)--->

选项,按<

Select>

按钮,进入网卡驱动配置。

【图11-1-1】

2、

因为将采用模块的方式编译网卡驱动,所以暂不选中网卡驱动。

【图11-1-2】

3、修改linux-2.6.22.10/drivers/net/目录下的Makefile文件,屏蔽obj-$(CONFIG_MII)+=mii.o。

并增加obj-y+=mii.o,使mii(媒介无关接口)工具模块编译到内核中。

【图11-1-3】

利用makezImage命令重新编译内核,并将内核下载到EELiod平台

【图11-1-4】

第三步:

网卡模块驱动编译分析

1、将linux-2.6.22.10/drivers/net/目录下的smc91x.c和smc91x.h文件复制到Linux的一个目录工作中,如root/work/netdriver,然后修改smc91x.h文件,增加如下内容:

#elifdefined(CONFIG_MACH_XSBASE270)

#defineSMC_CAN_USE_8BIT0

#defineSMC_CAN_USE_16BIT1

#defineSMC_CAN_USE_32BIT0

#defineSMC_IO_SHIFT0

#defineSMC_NOWAIT1

#defineSMC_USE_PXA_DMA1

#defineSMC_inw(a,r)readw((a)+(r))

#defineSMC_outw(v,a,r)writew(v,(a)+(r))

#defineSMC_insw(a,r,p,l)readsw((a)+(r),p,l)

#defineSMC_outsw(a,r,p,l)writesw((a)+(r),p,l)

【图11-1-5】

2、利用vi工具新建一个用于编译smc91x网络模块驱动的Makefile文件。

其中KERNELDIR?

=/root/work/linux-2.6.22.10为内核源码位置。

#Addyourdebuggingflag(ornot)toCFLAGS

ifeq($(DEBUG),y)

DEBFLAGS=-O-g-DSBULL_DEBUG#"

-O"

isneededtoexpandinlines

else

DEBFLAGS=-O2

endif

CFLAGS+=$(DEBFLAGS)

CFLAGS+=-I..

ifneq($(KERNELRELEASE),)

obj-m:

=smc91x.o

KERNELDIR?

=/root/work/linux-2.6.22.10

PWD:

=$(shellpwd)

default:

$(MAKE)-C$(KERNELDIR)M=$(PWD)modules

clean:

rm-rf*.o*~core.depend.*.cmd*.ko*.mod.c.tmp_versions*.symvers

depend.dependdep:

$(CC)$(CFLAGS)-M*.c>

.depend

ifeq(.depend,$(wildcard.depend))

include.depend

3、

利用make命令编译smc91x.c,利用串口将编译后的网卡驱动模块文件smc91x.ko文件下载到目标平台。

【图11-1-6】

4、在目标平台终端利用insmod命令动态加载驱动模块,同时利用lsmod命令查看驱动模块的加载情况.

【图11-1-7】

5、

利用ifconfig命令建立网络设备,并指定IP地址和掩码地址,然后利用ifconfig命令查看网络配置情况。

【图11-1-8】

6、利用ftp命令验证网络是否正常,其中192.168.0.100为PC机的IP

【图11-1-9】

第四步:

网卡驱动到内核分析

1、修改linux-2.6.22.10/drivers/net/目录下smc91x.h文件,增加如下内容:

【图11-1-10】

2、利用makemenuconfig命令配置内核,选择DeviceDrivers--->

【图11-1-11】

选中[*]Ethernet(10or100Mbit),在展开后配置菜单下选中

<

SMC91C9x/91C1xxsupport

【图11-1-12】

4、利用makezImage命令重新编译内核,并将内核下载到EELiod平台

【图11-1-13】

重启EELiod目标,查看目标平台启动时网卡驱动加载信息。

【图11-1-14】

6、利用ifconfig命令查看系统启动后的网络配置情况。

【图11-1-15】

7、利用ftp命令验证网络是否正常,其中192.168.0.100为PC机的IP

【图11-1-16】

 

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 工程科技 > 兵器核科学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1