《VxWorks设备驱动开发详解》笔记——第十章 网络设备驱动

本文深入探讨了VxWorks环境下网络设备驱动的设计与实现,解析了网络设备的特殊性质,包括异步数据接收机制、与网络栈的交互方式,以及如何利用MUX中间层隔离网络栈与底层驱动。此外,还介绍了中断处理的上下文划分,以及如何优化中断响应,确保系统的高效运行。

1.网络设备是一类非常特殊的设备,其没有普通文件接口,网络设备不存在对应的设备节点,不属于IO子系统管理,不向IO子系统注册驱动和设备。当一个网络设备驱动完成其内核层的注册后,用户即可对网络设备进行操作。

2.网络设备对外界数据的接收时异步的,当用户层没有任何数据读取请求时,其也在不断的从外界接收数据,缓存到内核专门分配的缓冲区中。实际上所有用户层将来读取数据都是从这个内核缓冲区中获得的。

3.网络设备驱动从协议栈接收一个已经封装的数据帧,而后只需要控制网络设备原封不动地将这个帧发送到网络介质上即可。对于网络介质本身的共用及冲突解决都是由网络硬件设备自动进行处理,无需网络设备驱动负责。因此,网络设备的功能就仅包括:

(1)其从网络栈接收一个数据帧,操作网络设备,将这个帧发送出去;

(2)其从网络设备接收一个帧,通过调用网络栈提供的接口函数,将这个帧传递给网络栈;

4.VxWorks早期使用网络栈与底层网络设备直接交互的方式,即4.3BSD网络驱动类型。在这种方式下,底层驱动与网络栈的耦合性比较紧密,这一点对于底层驱动开发比较不利,尤其对于VxWorks这种闭源操作系统。因此,VxWorks在后来的版本中(如5.5)提供了另一种驱动开发类型,即基于可裁剪的增强型网络栈(SENS:scalable enhanced networks stack)实现的底层驱动开发类型。风河将使用SENS编写的网络设备驱动称为增强型网络驱动,即END(enhanced network driver)。

5.END网络设备驱动内核层次

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

weekman93

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值