问一个网卡驱动学习的问题

发布于 2022-09-18 17:59:25 字数 174 浏览 22 评论 0

学习了一下DM9000 的驱动, 都是一些对硬件寄存器的操作, 这些只是一些最基本的设备操作,  难道内核里面网卡驱动只是需要按照这个框架搭建起来就行了?
要全面点的写网卡驱动还需要学习哪方面的知识呢?
分析TCP/IP 源码有没有太大的必要?   以太网协议也都在内核里面实现了吧.

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

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

发布评论

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

评论(9

苏璃陌 2022-09-25 17:59:25

找一个类似的网卡驱动源代码仔细分析一下。
学习linux最大的好处就是开源,这也是我们最丰富的资源,好好利用。

累赘 2022-09-25 17:59:25

对啊, 分析了一下 DM9000 的驱动, 好像没有多少内容跟协议有关系,

就是调用 netif_rx , netif_wake_queue  直接让内核处理了, 光看驱动内容的话, 跟单片机驱动没有什么关系

洋洋洒洒 2022-09-25 17:59:25

如果学习驱动,你学个框架就行。
如果学习网卡驱动,就要看看协议了。
同理,如果是写某个具体协议的驱动,还是要看协议和硬件文档,整明白协议有哪些功能,硬件已经实现其中的哪些功能和协议的哪些层面。然后就清楚驱动要实现剩下的那些。

征棹 2022-09-25 17:59:25

网卡驱动和什么协议有关?

恍梦境° 2022-09-25 17:59:25

原帖由 dreamice 于 2009-5-4 21:32 发表
网卡驱动和什么协议有关?

我也没发现DM9000驱动里面有什么协议, 如果有的话那就只有一个接收数据包判断的条件, 协议部分好像都通过netif调用到上层函数里面了.

指尖微凉心微凉 2022-09-25 17:59:25

操作系统一般来说还是分得很细得。网卡驱动一般只管和硬件打交道,也就是收发数据。具体协议那些由操作系统得其他部分做掉了。
这样做的好处是,支持一个新网卡只要加一些最基本的功能即可。其他协议部分不用动,可以用现成的

猫烠⑼条掵仅有一顆心 2022-09-25 17:59:25

原帖由 dreamice 于 2009-5-4 21:32 发表
网卡驱动和什么协议有关?

IEEE 802.3啊, 相当于2层的MAC,相当于1层的PHY。

其实这个规范不用怎么看, 只要拿一个现成的driver对照着datasheet看一遍就成了。

从此见与不见 2022-09-25 17:59:25

原帖由 albcamus 于 2009-5-5 18:02 发表

IEEE 802.3啊, 相当于2层的MAC,相当于1层的PHY。

其实这个规范不用怎么看, 只要拿一个现成的driver对照着datasheet看一遍就成了。

是啊,这个协议和写网卡驱动没有太紧密的联系,看看datasheet就差不多了。

心的憧憬 2022-09-25 17:59:25

IEE802.3 好像也是在上层函数里面完成的了, 内核太强大了, 什么都不要自己做,
相比较起来, 单片机下的网卡驱动以及协议都需要自己做, 也更能学到东西

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