VxWorks网络配置详解:BSD与END驱动比较

1 下载量 20 浏览量 更新于2024-08-31 收藏 63KB PDF 举报
在通信与网络领域,VxWorks操作系统提供了多样化的网络配置选项,以适应不同的应用场景。其中,VxWorks支持两种主要的网络驱动形式:BSD驱动和END驱动。 BSD驱动是VxWorks的标准选择,它基于通用的BSD4.4网络协议栈,支持API和结构,这些特性使其能够兼容大部分的BSD网络设备。这种驱动的配置主要集中在`/target/src/config/usrNetwork.c`文件中,该文件负责处理网络设备驱动的初始化和调用。VxWorks系统启动时,会首先执行`target\config\all\usrConfig.c`文件中的`usrRoot`部分,接着调用`usrNetInit`函数,这个函数会通过数组表`netIf[]`来初始化相应的BSD网卡驱动。在`usrNetInit()`函数内部,会调用`usrNetIfAttach()`函数,检查网卡是否已连接并尝试进行初始化,如果成功,将设置`attached`标志为真。 另一种独特的网络驱动是END驱动,这是VxWorks专有的,它依赖于VxWorks MUX接口进行编程。尽管END驱动底层也需要转换成BSD形式以与操作系统交互,但它的设计更符合VxWorks系统的特定需求。对于END驱动的配置,开发者需要参考VxWorks提供的网络驱动文档。 在具体操作上,如果你正在使用BSD4.4驱动,务必关注`usrNetIfAttach()`函数,它会遍历`usrNetIfTbl`数组,通过比较网卡名称(存储在`buf`中)与数组中的`ifName`字段,找到对应的网卡设备并执行相应的驱动初始化步骤。 总结来说,VxWorks网络配置的关键在于理解和掌握这两个驱动类型的使用,包括它们的调用流程、配置文件位置以及可能遇到的问题和解决方案。熟悉`usrNetwork.c`文件的结构和其中的函数调用顺序,对于在VxWorks环境中有效管理网络配置至关重要。