1- 网卡驱动框架
这里的网卡驱动不是网络驱动,不是协议相关的内容,知识硬件网卡收发包的驱动程序
初始化网卡步骤:
- 1)使用alloc_netdev()来分配一个net_device结构体
- 2)设置网卡硬件相关的寄存器
- 3)设置net_device结构体的成员
- 4)使用register_netdev()来注册net_device结构体
网卡的发包接口:net_device->hard_start_xmit()
收包接口在终端中完成:netif_rx()
2- 编写虚拟网卡驱动
3- DM9000C网卡驱动移植
3.1- 如何移植
a- 从厂商拿到DM9000C的驱动代码
b- 修改和和硬件、配置相关的内容。
和硬件、配置相关的内容包括:基地址(和硬件原理图、SC2440芯片手册有关);中断(引脚、出发方式);位宽
3.2- 实际操作
配置DM9000c的时钟,结合SC2440和DM9000C芯片手册,配置时间参数。
将编写好的驱动编译到内核操作:
a- 把dm9dev9000c.c放到内核的drivers/net目录下,来替换原来内核的DM9000C
b- 修改drivers/net/Makefile
把 obj-$(CONFIG_DM9000) += dm9000.o 改为(如下图所示) obj-$(CONFIG_DM9000) += dm9dev9000c.o
c- make uImage
d- 使用新内核启动