怎么从零开始写一个网卡驱动?

发布于 2022-09-29 13:34:40 字数 36 浏览 27 评论 0

自己写的操作系统,不知道怎么使用网卡,如何才能从零开始写一个网卡驱动呢?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(9

花落人断肠 2022-10-06 13:34:40

看手册呗,与硬件还有很大关系,是IO方式还是memory方式,而且中断和轮询写法不一样,你自己的操作系统怎么考虑设备层呢?比如ARM编程指南中有一个简单的操作系统SLOS,它里面有device driver framework,写设备驱动按照框架要求就可以了。

香草可樂 2022-10-06 13:34:40

我的操作系统刚刚写好键盘中断,时钟中断,多任务和内存管理,现在刚开始接触写驱动,想先从网卡开始,不知道该怎么写,大家有没有什么好文章可以推荐一下?

一念一轮回 2022-10-06 13:34:40

RTOS? or Embedded OS?
如果不考虑设备驱动框架的设计,最简单的方法就是直接找一个类似芯片的驱动程序,改一改,网上有很多rtl8019和rtl8139的程序

过潦 2022-10-06 13:34:40

楼上说的rtl8019的驱动程序好象都是针对WINDOWS或者LINUX的啊,没有针对裸机的吗

鱼忆七猫命九 2022-10-06 13:34:40

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

誰ツ都不明白 2022-10-06 13:34:40

实际上网卡驱动本身跟操作系统关系并不大,如果你自己实现操作系统,完全可以跨过操作系统,直接调用底层的程序。就NIC的驱动而言,最关键的就3个:初始化,接收和发送,其它的都是辅助。

请叫√我孤独 2022-10-06 13:34:40

原帖由 bilbo0214 于 2007-6-13 11:49 发表于 7楼  
实际上网卡驱动本身跟操作系统关系并不大,如果你自己实现操作系统,完全可以跨过操作系统,直接调用底层的程序。就NIC的驱动而言,最关键的就3个:初始化,接收和发送,其它的都是辅助。

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

好菇凉咱不稀罕他 2022-10-06 13:34:40

原帖由 plumlee 于 2007-6-15 23:07 发表于 8楼  

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

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

酒浓于脸红 2022-10-06 13:34:40

rtl8019as的驱动例子在:

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

网上也可以查到rtl8139的驱动代码,其实与操作系统基本没关系。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文