11-S3C2440驱动学习(五)嵌入式linux-网络设备驱动(二)移植DM9000C网卡驱动程序_第1页
11-S3C2440驱动学习(五)嵌入式linux-网络设备驱动(二)移植DM9000C网卡驱动程序_第2页
11-S3C2440驱动学习(五)嵌入式linux-网络设备驱动(二)移植DM9000C网卡驱动程序_第3页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第第页11-S3C2440驱动学习(五)嵌入式linux-网络设备驱动(二)移植DM9000C网卡驱动程序我们实现了一个虚拟网卡驱动程序,现在我们针对真实的网卡芯片DM9000C,编写移植DM9000C网卡驱动程序。

一、移植分析协议类的驱动,我们的主要工作往往是将现有的驱动和我们的硬件所匹配起来。协议类的函数往往已经成型不需要我们去修改和编写。比如发包函数:hard_start_xmit函数和netif_rx上报函数都不需要我们编写。网络驱动是针对很多硬件编写出来的,我们使用的是什么硬件CPU,比如ARM9,以及我们使用的系统版本。我们只需要修改驱动,告诉驱动现在的硬件情况是怎么样的,基地址是多少,中断引脚是哪个、设置下内存管理器以满足时序等等。这也是网络驱动移植的简单之处。

(1)DM9000C

一般一款网卡芯片,出厂的时候会有厂家自带的驱动程序代码,我们只需要在厂家的基础上去修改移植成适合我们CPU和系统的驱动程序。

(2)厂家自带驱动程序分析

入口函数:=0ns,*所以它设为0*Tacc[10:8]:读写信号的脉冲长度,*DM9000C的T2>=10ns,*所以它设为1,表示2个hclk周期,hclk=100MHz,就是20ns*Tcoh[7:6]:当读信号nOE变为高电平后,片选信号还要维持多长时间*DM9000C进行写操作时,nWE变为高电平之后,数据线上的数据还要维持最少3ns*DM9000C进行读操作时,nOE变为高电平之后,数据线上的数据在6ns之内会消失*我们取一个宽松值:让片选信号在nOE放为高电平后,再维持10ns,*所以设为01*Tcah[5:4]:当片选信号变为高电平后,地址信号还要维持多长时间*DM9000C的片选信号和CMD信号可以同时出现,同时消失*所以设为0*PMC[1:0]:00-正常模式**/*bankcon4=(1<<8)|(1<<6);/*对于DM9000C可以设Tacc为1,对于DM9000E,Tacc要设大一点,比如最大值7*///*bankcon4=(7<<8)|(1<<6);/*MINI2440使用DM9000E,Tacc要设大一点*/

iounmap(bwscon);iounmap(bankcon4);。。。

}

三、代码及测试(1)驱动代码:

主要为修改的以上内容

(2)makefile

KERN_DIR=/work/system/linux-2.6.22.6all:make-C$(KERN_DIR)M=`pwd`modulesclean:make-C$(KERN_DIR)M=`pwd`modulescleanrm-rfmodules.orderobj-m+=dm9dev9000c.o(3)测试DM9000C驱动程序:1.把dm9dev9000c.c放到内核的drivers/net目录下2.修改drivers/net/Makefile把obj-$(CONFIG_DM9000)+=dm9000.o改为obj-$(CONFIG_DM9000)+=dm9dev9000c.o3.makeuImage使

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论