zoukankan      html  css  js  c++  java
  • 网卡驱动程序

    网卡驱动程序框架:

    app: socket

           ---------------
           --------------- 若干层网络协议--纯软件
           ---------------
           ---------------
    

    hard_start_xmit|| /
    / || netif_rx sk_buff
    ---------------
    硬件相关的驱动程序(要提供hard_start_xmit, 有数据时要用netif_rx上报)

               硬件           
    

    怎么写网卡驱动程序?

    1. 分配一个net_device结构体
    2. 设置:
      2.1 发包函数: hard_start_xmit
      2.2 收到数据时(在中断处理函数里)用netif_rx上报数据
      2.3 其他设置
    3. 注册: register_netdevice

    测试1th/2th:
    nfs 30000000 192.168.31.202:/work/nfs_root/uImage_nonand
    bootm 30000000

    1. insmod virt_net.ko //装载驱动
    2. ifconfig vnet0 3.3.3.3 //装载vnet0网卡
      ifconfig // 查看
    3. ping 3.3.3.3 // 成功
      ping 3.3.3.4 // 死机

    测试DM9000C驱动程序:

    1. 把dm9dev9000c.c放到内核的drivers/net目录下

    2. 修改drivers/net/Makefile

      obj-((CONFIG_DM9000) += dm9000.o 改为 obj-)(CONFIG_DM9000) += dm9dev9000c.o

    3. make uImage
      cp arch/arm/boot/uImage /work/nfs_root/uImage_dm9000c
      开发板重启
      nfs 30000000 192.168.31.202:/work/nfs_root/uImage_dm9000c
      bootm 30000000
      使用新内核启动

    使用NFS启动

    ifconfig eth0 192.168.1.17
    ping 192.168.1.1

    版权声明:本文为博主原创文章,转载请注明文章来源,有需要帮忙可加QQ:871263854
  • 相关阅读:
    IT程序猿”是怎样练成的? 之 提升内驱力的7大秘籍转
    wp7 退出程序的提示对话框
    生活不容易
    Decorator模式学习
    用序列化方法实现的Prototype的深拷贝
    Observer pettern
    Adapter模式学习
    bridge模式学习
    Composite模式学习
    Prototype原形设计模式
  • 原文地址:https://www.cnblogs.com/Dream998/p/8540796.html
Copyright © 2011-2022 走看看