Vxworks嵌入式操作系统下网络设备驱动程序设计
#endif /* INCLUDE_DM_9102_END */
/* include dm9102End driver support routines */
#ifdef INCLUDE_DM_9102_END
#include "sysDm9102End.c"
#endif /* INCLUDE_DM_9102_END */
#ifdef INCLUDE_DM_9102_END
sysDm9102PciInit ();
#endif /* INCLUDE_DM_9102_END */
通过上述过程相应的添加程序,然后重新编译Vxworks,这样就将所设计的网卡驱动程序添加到Vxworks内核中了。
2.4 PCI设备检测
如果所设计的网卡是基于PCI总线的,那么在程序开始就需要对PCI设备进行检测,在Vxworks5.4中有专门的PCI函数来检测设备的总线号、设备号和功能号。首先利用pciFindDevice( )函数对给定VendorID和DeviceID的设备进行检测,检测完后同时给出了设备的总线号、设备号和功能号;接下来就是获得该设备的中断号、基地址(包括IO和内存)。Vxworks中pciConfigLib.h文件中定义PCI总线的常量。如中断号:PCI_CFG_BRG_INT_LINE,IO基地址:PCI_CFG_BASE_ADDRESS_0,内存基地址:PCI_CFG_BASE_ADDRESS_1等等。所以利用函数pciConfigInByte和pciConfigInLong就可以很容易地获得设备的中断号和基地址。
2.5 调试方法
为了方便调试网卡驱动程序,推荐利用串口对程序进行下载并将Vxworks image拷贝到软盘中以从软盘来加载它。调试的时候首先应该给网卡分配一个IP(利用usrNetIfConfig函数),然后利用ping来对网卡进行测试。
3 结语
利用上述方法所设计的网卡后,不久可以利用它来进行程序下载,而且能满足网卡所有的功能,包括对TCP/IP和UDP/IP(组播、广播和单播)进行了测试。
《Vxworks嵌入式操作系统下网络设备驱动程序设计(第4页)》