免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 5432 | 回复: 9
打印 上一主题 下一主题

怎么从零开始写一个网卡驱动? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2007-06-12 10:22 |只看该作者 |倒序浏览
自己写的操作系统,不知道怎么使用网卡,如何才能从零开始写一个网卡驱动呢?

论坛徽章:
0
2 [报告]
发表于 2007-06-12 12:42 |只看该作者
看手册呗,与硬件还有很大关系,是IO方式还是memory方式,而且中断和轮询写法不一样,你自己的操作系统怎么考虑设备层呢?比如ARM编程指南中有一个简单的操作系统SLOS,它里面有device driver framework,写设备驱动按照框架要求就可以了。

论坛徽章:
0
3 [报告]
发表于 2007-06-12 13:50 |只看该作者
我的操作系统刚刚写好键盘中断,时钟中断,多任务和内存管理,现在刚开始接触写驱动,想先从网卡开始,不知道该怎么写,大家有没有什么好文章可以推荐一下?

论坛徽章:
0
4 [报告]
发表于 2007-06-13 09:01 |只看该作者
RTOS? or Embedded OS?
如果不考虑设备驱动框架的设计,最简单的方法就是直接找一个类似芯片的驱动程序,改一改,网上有很多rtl8019和rtl8139的程序

论坛徽章:
0
5 [报告]
发表于 2007-06-13 10:13 |只看该作者
楼上说的rtl8019的驱动程序好象都是针对WINDOWS或者LINUX的啊,没有针对裸机的吗

论坛徽章:
0
6 [报告]
发表于 2007-06-13 11:47 |只看该作者

回复 #5 shineyear 的帖子

不是吧,我以前就做过裸机上的rtl8019as芯片的网卡驱动,这个与操作系统是无关的。这里所说的驱动程序不是win或linux操作系统中的驱动,是指操作网卡芯片的程序。

论坛徽章:
0
7 [报告]
发表于 2007-06-13 11:49 |只看该作者
实际上网卡驱动本身跟操作系统关系并不大,如果你自己实现操作系统,完全可以跨过操作系统,直接调用底层的程序。就NIC的驱动而言,最关键的就3个:初始化,接收和发送,其它的都是辅助。

论坛徽章:
3
2015年迎新春徽章
日期:2015-03-03 17:23:07综合交流区版块每日发帖之星
日期:2015-08-19 06:20:00综合交流区版块每日发帖之星
日期:2015-09-15 06:20:00
8 [报告]
发表于 2007-06-15 23:07 |只看该作者
原帖由 bilbo0214 于 2007-6-13 11:49 发表于 7楼  
实际上网卡驱动本身跟操作系统关系并不大,如果你自己实现操作系统,完全可以跨过操作系统,直接调用底层的程序。就NIC的驱动而言,最关键的就3个:初始化,接收和发送,其它的都是辅助。



這部份一般都 是由廠家的芯片廠商提供的吧。

论坛徽章:
0
9 [报告]
发表于 2007-06-16 21:34 |只看该作者
原帖由 plumlee 于 2007-6-15 23:07 发表于 8楼  



這部份一般都 是由廠家的芯片廠商提供的吧。


就网络芯片而言,厂家一般只提供手册,主要讲操作方式、寄存器定义等,也会提供主流操作系统下的驱动程序。但如果没有操作系统,或用于RTOS这类非主流操作系统,那么只有根据手册自己去写驱动程序。所谓硬件驱动本质就是如何操作设备的寄存器,如何操作DMA,比如rtl8019as的驱动90%的代码都是在读写寄存器,处理DMA,判断寄存器状态。我觉得大家不应该被驱动二字迷惑而忘记本质的东西。

论坛徽章:
0
10 [报告]
发表于 2007-06-16 21:38 |只看该作者
rtl8019as的驱动例子在:

http://www.laskater.com/projects/uIPAVRcode/rtl8019.c

网上也可以查到rtl8139的驱动代码,其实与操作系统基本没关系。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP