网卡的驱动很简单,就是填充net_device结构体,
其应用层到网络协议层内核已经完成了,我们的工作就是填写这个net_device,然后注册就可以了。
像STM32 跑裸机或跑ucos的,因为没有tcp、udp协议栈层,所以要移植LWIP小型协议栈
修正一下:上面第三步应该是:register_netdev
下面代码实现一个虚拟网卡,这里没有实际的网卡,只是把发出去的数据模拟远程回复过来,把数据转发到接收缓存里面,也就是回环操作。
/*
* 参考 drivers\net\cs89x0.c
*/
#include <linux/module.h>
#include <linux/errno.h>
#include <linux/netdevice.h>
#include <linux/etherdevice.h>
#include <linux/kernel.h>
#include <linux/types.h>
#include <linux/fcntl.h>
#include <linux/interrupt.h>
#include <linux/ioport.h>
#include <linux/in.h>
#include <linux/skbuff.h>
#include <linux/slab.h>
#include <linux/spinlock.h>
#include <linux/string.