`
womendu
  • 浏览: 1510131 次
  • 性别: Icon_minigender_2
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

Linux设备驱动工程师之路——DM9000网卡驱动程序分析

 
阅读更多

Linux设备驱动工程师之路——DM9000网卡驱动程序分析

K-Style

转载请注明来自于衡阳师范学院08电2 K-Style http://blog.csdn.net/ayangke,QQ:843308498 邮箱:yangkeemail@qq.com

DM9000是开发板经采用的网络芯片,是一种高度集成而且功耗很低的高速网络控制器,可以和CPU直连,支持10/100M以太网连接,芯片内部自带16K SARM(3KB用来发送,13KB用来接收).

1.模块初始化

模块初始化完成了基于platfrom平台的DM9000网卡驱动的注册,当DM9000网卡找到其对应的能处理的platform设备后调用probe函数。

2.DM9000网卡初始化

在probe函数中完成了对DM9000网卡的初始化

DM9000的特性:DM9000地址信号和数据信号复用使用CMD引脚区分它们(CMD为低是读写DM900地址寄存器,CMD为高时读写DM9000数据寄存器),访问DM9000内部寄存器时,先将CMD置低,写DM900地址寄存器,然后将CMD置高,读写DM9000数据寄存器。


我们在来看看读写网卡寄存器所用的ior和iow


可以看得出是先将要访问的寄存器地址写入到地址寄存器,然后在将数据写入到数据寄存器。地址。

3.打开网卡

在linux终端下使用ifconfig命令时调用net_device的open函数打开网卡设备


4.数据发送

下面说一下DM9000A中的存储部分,DM9000A内部有一个4K Dword SRAM,其中3KB是作为发送,16KB作为接收,如下图所示。其中0x0000~0x0BFF是传说中的TX buffer(TX buffer中只能存放两个包),0x0C00~0x3FFF是RX buffer。因此在写内存操作时,当IMR的第7位被设置,如果到达了地址的结尾比如到了3KB,则回卷到0。相似的方式,在读操作中,当IMR的第7位被设置如果到达了地址的结尾比如16K,则回卷到0x0C00。


DM9000的TX RAM可以同时放两个包,可以第9行代码中看出如果大于TXRAM中的包大于2则返回,DM9000会先发送第一个包,然后再发第二个包。



4.中断


5.接收数据





6.发送完成




7.超时处理




分享到:
评论

相关推荐

    DM9000网卡驱动程序

    《DM9000网卡驱动程序详解》 在Linux操作系统中,硬件设备的正常运行离不开对应...总的来说,理解和掌握DM9000网卡驱动的原理和实践,对于Linux系统开发者和硬件工程师来说,都是提升系统性能和设备兼容性的关键技能。

    dm9000网卡驱动分析

    这些函数共同构成了驱动程序的核心逻辑,确保了DM9000网卡能够在Linux系统中正常工作。通过以上分析,可以深入理解DM9000网卡驱动的内部结构和工作原理,这对于进一步开发或调试类似的驱动程序具有重要的参考价值。

    dm9000网卡驱动程序分析

    ### DM9000网卡驱动程序分析 #### 引言 在ARM9开发板上进行网络通信,DM9000网卡驱动程序扮演着关键角色。DM9000是一款高性能、低功耗的以太网控制器,广泛应用于嵌入式系统中。本文将深入解析DM9000网卡驱动程序...

    dm9000内核网卡驱动分析

    网卡开发必须要熟悉的驱动流程 dm9000网卡驱动分析

    单片机驱动DM9000网卡芯片(详细调试过程).pdf

    然而,在网上找到关于DM9000网卡芯片的介绍,都是关于Linux或WinCE下的驱动程序或移植,很少有介绍单片机驱动DM9000的例子。 本文主要介绍单片机驱动DM9000E网卡芯片的详细过程,从网卡电路的连接到网卡初始化相关...

    嵌入式linux上的dm9000网卡驱动源代码和Makefile编译驱动文件源代码

    这里我们关注的是DM9000网卡的驱动程序,它是一款广泛应用于嵌入式系统的以太网控制器。DM9000芯片提供了对10/100Mbps以太网连接的支持,适用于多种工业和消费级应用。 首先,DM9000驱动源代码通常由几个关键部分...

    dm9000网卡驱动wince实现

    ### dm9000网卡驱动在WinCE下的实现与移植 #### 1. 引言 dm9000是一种高性能、低功耗的快速以太网控制器,广泛应用于嵌入式系统中,尤其在基于ARM架构的开发板上。在WinCE环境下移植和实现dm9000网卡驱动,对于...

    国嵌培训课件Linux驱动程序设计

    第一天 1.Linux驱动简介 2.字符设备驱动程序设计 3.驱动调试技术 4. 并发与竞态 第二天 1.Ioctl型驱动 ...3. Dm9000网卡驱动程序分析 4. 触摸屏驱动程序设计 第六天 1. PCI驱动程序设计 2. 串口驱动程序设计

    TQ2440arm9的DM9000网卡裸机驱动程序

    本知识点将深入探讨如何为 TQ2440 开发板上的 DM9000 网卡编写裸机驱动程序。DM9000 是一款广泛应用的以太网控制器,它支持 10/100Mbps 自适应速率,为嵌入式设备提供网络连接功能。 一、DM9000 硬件接口 DM9000 ...

    linux_DM9000驱动程序分析

    Linux DM9000驱动程序分析主要关注的是在Linux内核2.6.31版本中,如何为DM9000网络控制器编写和配置驱动,以便在Mini2440开发板上运行。DM9000是一款常见的以太网控制器,常用于嵌入式系统。在Linux中,驱动程序应与...

    Linux常见驱动源码分析(kernel hacker修炼之道全集)--李万鹏

    Linux驱动修炼之道-DM9000A网卡驱动框架源码分析(中).pdf Linux驱动修炼之道-DM9000A网卡驱动框架源码分析(下).pdf Linux驱动修炼之道-DM9000A网卡驱动框架源码分析(上).pdf Linux驱动修炼之道-clock框架....

    DM9000 网卡驱动

    DM9000网卡驱动是在嵌入式开发中经常用到的网络接口扩展技术。DM9000是一款高性能、高集成度的以太网控制芯片,广泛应用于各种嵌入式系统中,如基于ARM架构的系统。本文将介绍DM9000网卡驱动的相关知识点,以及如何...

    单片机驱动DM9000网卡芯片详细调试过程.pdf

    - 文档内容暗示DM9000网卡驱动程序可能已经适用于ARM-Linux、AVR等不同单片机平台。平台的多样性要求驱动程序具有良好的可移植性。 8. **调试过程**: - 调试过程可能包括检查硬件连接的正确性、验证寄存器配置...

    linux-2.6.28在mini2440上的移植之dm9000网卡驱动的移植

    ### Linux-2.6.28 在 Mini2440 上的移植之 DM9000 网卡驱动的移植 #### 背景与概述 本文将详细介绍如何将 Linux 2.6.28 内核移植到 Mini2440 开发板,并在此基础上实现 DM9000 网卡驱动的移植。Mini2440 是一款...

    dm9000网卡驱动

    【dm9000网卡驱动】是一款专为Linux操作系统设计的硬件驱动程序,用于支持DM9000系列的以太网控制器。这个驱动程序实现了基本的网络通信功能,经过了广泛的测试,确保了其稳定性和兼容性,非常适合在各种Linux系统中...

    DM9000网卡驱动

    linux设备驱动中的网卡驱动(DM9000),源代码分析,通俗易懂

    arm dm9000 网卡驱动

    **DM9000网卡驱动详解** DM9000是一款广泛应用的以太网控制器,尤其在嵌入式系统中颇为常见,如基于ARM架构的S3C2440处理器平台。这款芯片提供了全速的10/100Mbps以太网连接能力,适用于各种网络应用,如物联网设备...

    dm9000网卡驱动 for 2410

    总结,dm9000网卡驱动在2410平台的应用涉及到硬件连接、驱动程序开发、中断处理、数据传输等多个环节,每个环节都需要细致入微的考虑和调试。理解这些知识点,有助于我们更好地进行嵌入式系统的网络设计和优化。

    dm9000a源代码程序

    通过以上分析,我们可以看到 DM9000A 网卡驱动程序的实现涉及了硬件交互、中断处理、DMA 数据传输等多个层面。理解和掌握这些知识对于开发和维护相关硬件驱动,特别是在嵌入式系统中,是非常重要的。

Global site tag (gtag.js) - Google Analytics