<style type="text/css">
<!--
@page { margin: 0.79in }
P { margin-bottom: 0.08in }
PRE.cjk { font-family: "AR PL UMing HK", monospace }
A:link { so-language: zxx }
-->
</style>
硬件平台:FL2440(s3c2440)
内核版本:2.6.35
主机平台:Ubuntu11.04
内核版本:2.6.39
交叉编译器:arm-linuc-gcc4.3.2
原创作品,转载请标明出处http://blog.csdn.net/yming0221/article/details/6615027
本文接上文
ARM-Linux驱动--DM9000网卡驱动分析(一)
ARM-Linux驱动--DM9000网卡驱动分析(二)
下面开始看网卡设备的打开、关闭函数和操作函数
1、DM9000的打开函数
由于在函数alloc_netdev_mq()中分配net_device和网卡的私有数据是一起分配的,详见函数的实现
所以使用函数netdev_priv()函数返回的是网卡的私有数据的地址,函数的实现如下:
这样两者会同时生存和消失。
dm9000_open()函数
2、网卡关闭函数
下面是调用的dm9000_shutdown(ndev)函数,该函数的功能是复位phy,配置寄存器GPR位0为1,关闭dm9000电源,配置寄存器IMR位7为1,disable中断,配置寄存器RCR,disable接收
函数如下:
3、接下来了解一下数据的发送函数dm9000_start_xmit
上图可以看出DM9000的SRAM中地址0x0000到0x0BFF是TXBuffer,从0x0C00到0x3FFF是RXBuffer,包的有效数据必须提前放到TXBuffer缓冲区,使用端口命令来选择MWCMD寄存器。最后设置TXCR寄存器的bit[0]TXREQ来自动发送包。
发送包的步骤如下:
(1)检查存储器宽度,通过读取ISR的bit[7:6]来确定位数
(2)写数据到TXSRAM
(3)写传输长度到TXPLL和TXPLH寄存器
(4)设置TXCR的bit[0]TXREQ来发送包
上面函数调用下面的函数dm9000_send_packet来发送数据
5、下面看一下当一个数据包发送完成后的中断处理函数dm9000_tx_done
更多查看
ARM-Linux驱动--DM9000网卡驱动分析(四)
分享到:
相关推荐
arm9开发板上 dm9000网卡驱动程序分析
linux dm9000网卡完全驱动 实现基本的网络通信经过大量测试 适合移植使用
研究分析了Linux内核中经典的bus-device-driver框架结构及Linux内核中提供的输入子系统框架,以及LCD、触摸屏、网卡、摄像头驱动框架等,分别设计并实现了LCD、触摸屏、摄像头、按键四种设备驱动程序,并对DM9000网卡...
1. 移植DM9000网卡驱动 之前配置使用的SMDK2440开发板,默认不支持DM9000网卡驱动,但是其中的MINI2440开发板支持,所以要将MINI2440中的DM9000驱动移植到SMDK2440中。 进入内核源码目录里面,找到 arch/arm/mach-s3...
本文主要介绍单片机驱动DM9000E网卡芯片的详细过程。从网卡电路的连接,到网卡初始化相关程序调试,再到ARP协议的实现,一步一步详细介绍调试过程。如果有时间也会把UDP和TCP通讯实验过程写出来。当然,会用单片机...
·嵌入式Linux之我行——Linux-2.6.30.4在2440上的移植之DM9000E网卡驱动 ·嵌入式Linux之我行——Linux-2.6.30.4在2440上的移植之USB驱动 ·嵌入式Linux之我行——Linux-2.6.30.4在2440上的移植之MMC/SD卡驱动 ·...
linux2.6.28 开发板:飞凌TE6410 (256M RAM 2G NAND) 网卡:ENC28J60 SPI 测试用的工具:Saleae logic (逻辑分析仪),Iris 抓包工具 6410作为一颗强大的ARM11处理器,网卡模块已经是相当的成熟(如:DM9000/3 ...
1 引言要实现小型嵌入式设备的Internet接入,TCP/IP首先要解决的是底层硬件问题,即协议的物理层。Ethernet具有成熟的技术...寄存器操作简单有效,有成熟的Linux驱动程序支持;3.3V接口电平;成本相当低廉;还可以使用
linux2.6.28 开发板:飞凌TE6410 (256M RAM 2G NAND) 网卡:ENC28J60 SPI 测试用的工具:Saleae logic (逻辑分析仪),Iris 抓包工具 6410作为一颗强大的ARM11处理器,网卡模块已经是相当的成熟(如:DM9000/3 ...
涵盖2.6.36内核和文件系统搭建...注意:arm-none-linux-guneabi version 4.5.2;NAND FLASH 256M (SLC);DM9000 的网卡;yaffs2 文件系统。NAND FLASH是SLC 256M,并非MLC 2G,否则需要修改相应的nand flash 驱动。
10/100M以太网卡DM9000驱动 以太网口2 CPU内部自带MAC层的以太网驱动 LCD 320x240,480x272,640x480,800x480四种屏的驱动 touch screen 触摸屏驱动 音频 音频驱动 MMC/SD SDIO模式驱动 USB host 可支持USB接口的...
介绍了一种基于ARM的综采面无线传感器网络的网关设计。...阐述了网关的硬件设计,重点论述了无线收发模块和以太网接口模块,并介绍了DM9000以太网卡的移植,CC2420无线模块驱动的开发,以及上层应用程序等软件设计。