VxWorks 6.9:网络驱动程序何时/如何成为接口?

时间:2018-10-24 23:35:13

标签: network-programming embedded driver vxworks wind-river-workbench

作为背景,我已经在驱动程序代码中摸索了好几个星期,试图建立一个新的“虚拟”(1)PLB驱动程序接口并附加到MUX,而最持久的问题似乎非常严重。 basic:无论我做什么,我似乎都无法获取创建网络接口的代码,甚至无法获取IP Attach将协议绑定到我的驱动程序。

在尝试挖掘输出以找到解决方案的过程中,我回溯了网络堆栈的初始化。我放入.cdf文件的入口点存储在prjConfig.c中,并使用对所有需要调用的方法的引用来调用vxbDevRegister。对于hwconf.c(2)中hcfDeviceList中此驱动程序的每个实例,无论是否已调用usrNetworkInit,vxbDevRegister都会自动调用devInstInit,devInstInit2和devInstanceConnect。此时,三个驱动程序已注册,但似乎不是接口。

在这一点上,通常,网络接口将通过usrNetInit或usrNetworkInit进行初始化,并且MUX将自动启动所有已注册的接口,但是在vxbDevRegister 中注册的三个驱动程序不会这样做。点。在假设已经配置了usrNetworkInit的情况下工作(这需要手动的驱动程序连接例程),我经历了对muxDevLoad的手动调用,该调用又两次调用了xLoad例程(如预期的那样),然后我调用muxDevStart开始司机。但是,此时,对ipAttach等的调用仍然无法进行,并且ifShow不会接听该接口。

我的问题是,在该链中的 中应该在哪里创建接口?我缺少步骤吗?任何信息都可以帮助我弄清楚我在哪里弄乱了我的配置,并帮助我永远解决了这个问题。

(1)目标是为MUX建立多个接口,我们可以根据配置内容动态分配物理层。这可能不是最好的设计,但这是我现在需要坚持的。

(2)为了初始化PLB驱动程序,需要在此表的hwconf中列出它们,并且它们必须具有与物理硬件地址关联的'regBase'。因为这被指定为“虚拟”驱动程序,所以我将在静态内存中提供三点作为偏移量,因为我将不使用任何设备寄存器。是否可以防止创建接口?

0 个答案:

没有答案