精华内容
下载资源
问答
  • VxWorks网络配置及分析  VxWorks支持两种形式的网络驱动,一种是BSD驱动支持通用的BSD4.4网络,API,结构等和大多数BSD网络的驱动类似.另一种是END网络驱动,是VxWorks独有的,根据VxWorks MUX接口编程,不过END驱动在...
  • VxWorks网络配置及分析.docVxWorks网络配置及分析.docVxWorks网络配置及分析.docVxWorks网络配置及分析.doc
  • 关于VXworks网络配置报错问题。

    千次阅读 2016-07-03 21:15:35
    vxworks 网络下载容易出错的地方,整理了下,供大家参考。

    关于配置FTP网络启动的心得:

     环境:xp系统,Tornado2.2 ,pc104+平台。

    1、首先需要BSP目录下在config.h 设置为网络启动

    2、CF卡中配置文件也要为网络启动。

    3、要明白硬件平台IP地址是 和config.h 中的 e:xxx.xxx.xxx.xxx 目标机地址没有关系的。

    比如:h:192.168.0.103,e:192.168.0.88  这两个地址是用于ftp通信。而硬件本身地址可能是192.168.1.88,如果要从计算机ping通硬件,需要在TCP/IP下,在高级设置里,多添加一个和硬件IP(192.168.1.88)地址同网段的IP。这样你在PC机下,ping 192.168.1.88才能ping通,而ping 192.168.0.88是ping不通的。当然你可以将他们设置在同一个网段里。

    4、FTP常规设置都和网上一样,先配置usr/right 里的信息。包括新建用户,设置密码,指定要下载的vxworks镜像文件的绝对路径。

    最后,要在下图host addr处, 一定要设置为目标机地址,并且选择allow.否则不会成功哦!

     


    展开全文
  • VxWorks网络驱动配置及分析

    千次阅读 2013-02-22 14:12:03
    VxWorks支持两种形式的网络驱动,一种是BSD驱动支持通用的BSD4.4网络,API,结构等和大多数BSD网络的驱动类似....VxWorks网络驱动可参见VxWorks网络驱动   1.BSD4.4网络驱动设置.  网络设备驱动的调用主要在/targ

       VxWorks支持两种形式的网络驱动,一种是BSD驱动支持通用的BSD4.4网络,API,结构等和大多数BSD网络的驱动类似.另一种是END网络驱动,是VxWorks独有的,根据VxWorks MUX接口编程,不过END驱动在底层也要转换成BSD的形式.

     

    VxWorks网络驱动可参见VxWorks网络驱动

     

    1.BSD4.4网络驱动设置.

      网络设备驱动的调用主要在/target/src/config/usrNetwork.c文件中,下面说明BSD4.4驱动在VxWorks系统调用.

    主要调用过程如下:

      VxWorks系统执行的第一个任务target\config\all\usrConfig.c文件中 usrRoot()=======>>target\src\config\usrNetwork.c文件中的usrNetInit
    ( )通过数组表netIf[]初始化相应的BSD网卡驱动.

    在usrNetwork.c中的调用过程如下:

    usrNetInit()函数中调用usrNetIfAttach():

    #ifdef INCLUDE_BSD
    if (!attached)
    {
        if ( (usrNetIfAttach (pNetDev, params.unitNum, pBootString) !=OK))
            return (ERROR);
        attached = TRUE;
    }
    #endif /*INCLUDE_BSD*/

    usrNetIfAttach ()函数中调用数组表usrNetIfTbl

    for (pNif = usrNetIfTbl; pNif->ifName != 0; pNif++)
        {
        if (strcmp (buf, pNif->ifName) == 0)
        break;
        }

     

    网络BSD驱动数组表usrNetIfTbl在文件/target/src/config/usrNetwork.c中的定义初始化:

    ...

    LOCAL NETIF netIf [] =    /* 网络接口,定义网卡驱动 */
    {

    /* 下面是定义包含的各种网络驱动 */

    #ifdef INCLUDE_DC        /* 从DEC 芯片启动,即系统有NVRAM存在,现在已过时*/
    {  "dc", dcattach, (char*)IO_ADRS_DC, INT_VEC_DC, INT_LVL_DC,
        DC_POOL_ADRS, DC_POOL_SIZE, DC_DATA_WIDTH, DC_RAM_PCI_ADRS,
        DC_MODE },
    #endif /* INCLUDE_DC */
    #ifdef    INCLUDE_FEI       /* 如果定义了INCLUDE_FEI,初始化Intel 网卡 */
    {   "fei", feiattach, (char*)FEI_POOL_ADRS, 0, 0, 0, 0},
    #endif    /* INCLUDE_FEI */
    #ifdef    INCLUDE_EX        /* Excelan 网卡 */
    {   "ex", exattach, (char*)IO_ADRS_EX, INT_VEC_EX, INT_LVL_EX,
        IO_AM_EX_MASTER, IO_AM_EX },
    #endif    /* INCLUDE_EX */
    #ifdef    INCLUDE_ENP        /* CMC 网卡 */
    {   "enp", enpattach, (char*)IO_ADRS_ENP, INT_VEC_ENP, INT_LVL_ENP,
        IO_AM_ENP },
    #endif    /* INCLUDE_ENP */

    ...

    }

    设置方法: 

    从以上可以看出BSD网络驱动只需在BSP配置文件config.h中将网络(#define INCLUDE_NETWORK)BSD网卡宏定义(#define INCLUDE_xxx)和一些I/O参数(一般不需要)加入,则在文件usrNetwork.c中进行相应的初始化.

    如: 在VxWorks加入支持intel的网卡驱动.在config.h中加入"#define    INCLUDE_FEI".

     

    主要网卡定义如下:

    #define    INCLUDE_ENE        /* include Eagle/Novell NE2000 interface */
    #define    INCLUDE_ELT        /* include 3COM EtherLink III interface */
    #define    INCLUDE_ESMC        /* include SMC 91c9x Ethernet interface */
    #define    INCLUDE_FEI        /* include Intel Ether Express PRO100B PCI */
    #define    INCLUDE_ELC        /* include SMC Elite16 interface */
    #define    INCLUDE_EEX        /* include INTEL EtherExpress interface */
    #define    INCLUDE_EEX32        /* include INTEL EtherExpress flash 32 */
    #define    INCLUDE_EX        /* include Excelan Ethernet interface */
    #define    INCLUDE_ENP        /* include CMC Ethernet interface*/
    #define    INCLUDE_SM_NET        /* include backplane net interface */
    #define    INCLUDE_SM_SEQ_ADDR  /* shared memory network auto address setup */
    #define    INCLUDE_EL_3C90X_END /* 3com fast etherLink XL PCI */
    #define   INCLUDE_LN_97X_END /* AMD 79C972 END DRIVER */
    ....

     

    2.END网络驱动设置.

       END网络设备的初始化主要通过定义在文件configNet.h中的一个数组表实现.初始化网络时muxDevLoad()会按这个表的定义把end初始化安装到VxWorks系统.

    主要调用过程:

    VxWorks系统执行的第一个任务target\config\all\usrConfig.c文件中 usrRoot()=======>>target\src\config\usrNetwork.c文件(该文件初始化TCP/IP)中 usrNetInit(BOOT_LINE_ADRS)(该函数作用是添加MUX END)========>>pcooki = pCookie = muxDevLoad(pDevTbl->unit,.....)其中pDevTbl在BSP网络配置文件configNet.h中定义.END_TBL_ENTRY endDevTbl[]={...},该表定义了网络设备的具体参数.

    configNet.h部分定义如下所示:

    #define DEC_LOAD_FUNC dec21x40EndLoad   /* 定义加载网络设备的入口程序 */
    #define DEC_BUFF_LOAN 1

    /* 网络设备硬件的物理定义数据串,一般BSP已经定义,不到必要时,无需更改 */

    /*
    * <devAdrs>:<PCIadrs>:<ivec>:<ilevel>:<numRds>:<numTds>:<memBase>: \
    * <memSize>:<userFlags>
    */
    # define DEC_LOAD_STRING
    "0x81020000:0x80000000:0x12:0x12:-1:-1:-1:0:0x80800
    000"
    IMPORT END_OBJ* DEC_LOAD_FUNC (char*, void*);

    /* 网络END设备表 */

    END_TBL_ENTRY endDevTbl [] =
    { 0, DEC_LOAD_FUNC, DEC_LOAD_STRING, DEC_BUFF_LOAN, NULL, FALSE},
    { 0, END_TBL_END, NULL, 0, NULL, FALSE},
    };

    设置方法:

    由以上可看出在VxWorks添加END网络驱动

    1. 在文件config.h中添加"#define INCLUDE_NETWORK"和"#define INCLUDE_END".
    1. configNet.h中加入END驱动的入口函数"#define xxx_LOAD_FUNC  xxxxxEndLoad"和一些相关的初始化字符串.

       这样就会在生成BSP包含END/MUX,系统网络初始化调用函数muxDevLoad()会更据这个表初始化END网络.

     

    文件configNet.c关于END驱动初始化的主要内容:

    #ifdef INCLUDE_END
       IMPORT int     ipAttach ();
       IMPORT END_TBL_ENTRY endDevTbl[];    /* 定义这个表 */
    #endif /* INCLUDE_END */

    ..........

    #ifdef INCLUDE_END                
       int count;
       END_TBL_ENTRY* pDevTbl;             /* END设备列表 */
       END_OBJ* pCookie = NULL;
       END_OBJ* pEnd;
    #endif /* INCLUDE_END */

    #if defined(INCLUDE_END)
       muxMaxBinds = MUX_MAX_BINDS;        /* 初始化MUX接口 */
       if (muxLibInit() == ERROR)

    ..........

     

    关于DEFAULT_BOOT_LINE 的解释

     

    这一行对配置网络,连通Target Server及下载调试程序非常重要

    DEFAULT_BOOT_LINE 的原意是为没有NVRAM的target设计的,这样用户就不需要在每次系统启动是手工输入这些参数了.

    系统启动网络时xxxEndLoad()会解释这一行并按这一行的定义进行加载.

    Emac(0,0) : 启动设备,可是是软盘,硬盘,PCMCIA卡等 其他的设备名称如:

    fd为软盘,(0,0)表示第一个软驱,3.5寸盘.
    dc则表示从DEC 21x4x 芯片启动,即系统有NVRAM存在,这种方式现在已不采用.
    elpci表示启动设备为3COM EtherLink XL PCI网卡.
    fei:Intel 82559 EtherExpress网卡.
    ene: NE2000网卡
    ELT: 3COM以太网卡
    EEX: Intel网卡
    ata: ATA/IDE 硬盘 ............

    405GP: 主机名
    vXworks 从主机加载的VxWorks文件
    h=172.16.1.159   主机的IP地址    

    e=172.16.254.52 目标机的IP地址,若网络启动Target Server时,这个IP必须和主机上Target Server配置的Target IP地址一致,且设置Back End选项为wdbrpc
    u=xxx  用户名,pw=xxx  密码: 若通过网络加载调试时,主机的Ftp服务器和目标机的用户名和密码必须相同
    tn=vxTarget 目标机名称

    */

    #define DEFAULT_BOOT_LINE \
            "Emac(0,0)405GP:vxWorks h=172.16.1.159 e=172.16.254.52 \
                    u=xxx pw=xxx tn=vxTarget"

    展开全文
  • VxWorks6-8中部分网络服务的配置和使用说明.pdf
  • 以下是VxWorks系统网络编程TCP协议应用代码,相关解释在注释中。(关于Linux的TCP应用代码在另外一篇博客) #include <vxWorks.h> #include <sockLib.h> #include <inetLib.h> #include <...

    以下是VxWorks系统网络编程TCP协议应用代码,相关解释在注释中。(关于Linux的TCP应用代码在另外一篇博客)

    #include <vxWorks.h>
    #include <sockLib.h>
    #include <inetLib.h>
    #include <stdioLib.h>
    #include <strLib.h>
    #include <hostLib.h>
    #include <ioLib.h>
    //#include <tcpExample.h>
    
    #define SERVER_PORT_NUM 5001
    #define SERVER_WORK_PRIORITY 100
    #define SERVER_STACT_SIZE 10000
    #define SERVER_MAX_CONNECTIONS 4
    #define REQUEST_MSG_SIZE 1024
    #define REPLY_MSG_SIZE 500
    #define ERROR (-1)
    
    
    int tcp_server(void)
    {
    	struct sockaddr_in serverAddr;
    	struct sockaddr_in clientAddr;
    	char rcvBuf[REQUEST_MSG_SIZE];
    	int sockAddrSize;
    	int sFd;
    	int newFd;
    	int nByte;
    
    	//1 create socket
    	if((sFd = socket(AF_INET, SOCK_STREAM, 0)) == ERROR)
    	{
    		printf("create socket error!\n");
    		return ERROR;
    	}
    	
    	//2 init some parameter
    	sockAddrSize=sizeof(struct sockaddr_in);
    	bzero((char *)&serverAddr, sockAddrSize);
    	serverAddr.sin_family = AF_INET;
    	serverAddr.sin_port = htons(SERVER_PORT_NUM);
    	serverAddr.sin_addr.s_addr=htonl(INADDR_ANY);
    	serverAddr.sin_len=(unsigned char)sockAddrSize;
    	
    	//3 bind socket
    	if(bind(sFd,(struct sockaddr*)(&serverAddr),sockAddrSize)== ERROR)
    	{
    		printf("bind error!\n");
    		close(sFd);
    		return ERROR;
    	}
    
    	//3 listen client
    	if(listen(sFd,SERVER_MAX_CONNECTIONS) == ERROR)
    	{
    		printf("listen error!\n");
    		close(sFd);
    		return ERROR;
    	}	
    //下面可以使用死循环或线程创建accept,并创建相对应的接收线程
    	//4.accept server
    	newFd = accept(sFd,(struct sockaddr*)(&clientAddr),&sockAddrSize);//娉ㄦ剰:绗?涓弬鏁颁负socklen_t*锛堟暣褰㈢殑鎸囬拡锛?
    	printf("server get connection from %s\n",inet_ntoa(clientAddr.sin_addr)); //灏嗘暣鏁板瀷鐨処P鍦板潃杞寲涓哄瓧绗﹀瀷(192.168.1.1)
    			
    	while(1)
    	{
    
    		//5.receive
    		nByte = recv(newFd, rcvBuf, REQUEST_MSG_SIZE, 0);//收不到数据阻塞
    		rcvBuf[nByte] = '\0';
    		printf("server received datas : %s\n", rcvBuf);
    		
    		if(rcvBuf[0]=='q')
    			break;
    	}	
    	//6.close *Fd
    	close(newFd);
    	close(sFd);
    	
    	return 0;
    	
    }	
    
    int tcp_client(char * serverName)
    {
    	struct sockaddr_in serverAddr;
    	char sendBuf[REQUEST_MSG_SIZE];
    	int sockAddrSize;
    	int sFd;
    
    	//1 create socket
    	if((sFd = socket(AF_INET, SOCK_STREAM, 0)) == ERROR)
    	{
    		printf("create socket error!\n");
    		return ERROR;
    	}
    	
    	//2 init some parameter
    	sockAddrSize=sizeof(struct sockaddr_in);
    	bzero((char *)&serverAddr, sockAddrSize);
    	serverAddr.sin_family = AF_INET;
    	serverAddr.sin_port = htons(SERVER_PORT_NUM);
    	serverAddr.sin_len=(unsigned char)sockAddrSize;
    
    	if((serverAddr.sin_addr.s_addr = inet_addr(serverName))== ERROR &&
    	   (serverAddr.sin_addr.s_addr = hostGetByName(serverName)) == ERROR)
    	{
    		printf("unknown serverName\n");
    		close(sFd);
    		return ERROR;
    	}
    	//3 connnect server
    	if(connect(sFd,(struct sockaddr*)(&serverAddr),sockAddrSize) == ERROR)
    	{
    		printf("connect error\n");
    		return ERROR;
    	}
    	
    	//4:send datas to server
    	printf("please input chars:\n");
    
    //	send(sFd,sendBuf, strlen(sendBuf), 0);
    	while(1){
    		fgets(sendBuf,REQUEST_MSG_SIZE,stdin);	
    		write(sFd,sendBuf, strlen(sendBuf));
    		if(sendBuf[0] == 'q')
    			break;
    	}
    	//5 close sFd
    	close(sFd);
    	
    	return 0;
    	
    }
    
    
    
    
    展开全文
  • VxWorks的VLAN VxWorks中的一种实现,用于检查所有网络接口的基于子网的VLAN体系结构。
  • VxWorks 6.9下的ifconfig网络配置命令
  • VxWorks网络程序员指南.pdf

    热门讨论 2010-04-15 22:43:36
    本书涉及Vxworks 网络编程概述,VxWorks网络栈,数据链路层组件,网络栈配置,网络配置协议,动态路由协议,套接字DNS,添加网络服务等 chp 1 概述 chp 2 VxWorks网络栈 chp 3 数据链路层组件 chp 4 网络栈配置 chp 5 网络...
  • 虚拟机中VxWorks网络设置

    千次阅读 2012-08-27 20:40:46
    虚拟机中设置VxWorks用的Host-Only方式,在网上邻居中把Vmnet1的IP地址修改为好记的:192.168.1.11 然后在vmware的config.h中把bootline修改成host ip=192.168.1.11(即Vmnet1的IP地址);把target IP设置为192.168...

    LZ用主机上本地连接没有连接任何东西,禁用了。上网用的3G上网卡。

     

    虚拟机中设置VxWorks用的Host-Only方式,在网上邻居中把Vmnet1的IP地址修改为好记的:192.168.1.11

    然后在vmware的config.h中把bootline修改成host ip=192.168.1.11(即Vmnet1的IP地址);把target IP设置为192.168.1.200(要与Vmnet1同地址段);

    然后不用做其他修改了,编译bootrom,打开ftp serverd等后边的操作都知道了吧。。。。

     

    后续:

    后来才知道,PC机上不用连任何网络,只要PC机上有网卡就能实现虚拟机与host的连接,虚拟机创建的两个网卡Vmnet1和Vmnet8是自动连接到host的网卡上的,所以对于虚拟机来说,根本不用管host的真正IP地址,只需要知道Vmnet1货Vmnet8的IP地址就可以了,因为这两个网卡就是虚拟机与外界通信的网口。

    所以,上面的例子中,即使断掉外网,即使用NAT方式,只要知道了原理,设置很简单。

    展开全文
  • 备注:此处修改的IP等信息将会在VxWorks7启动后默认为此配置。 当需要修改IP时可以按照以下方式进行: 方式1:在VxWorks7中按照如下操作,检查(断电)系统重启后IP值是否生效 方式2:在uboot下执行命名 setenv ...
  • 本文提供在系统运行中对网口进行配置的方法。
  • VxWorks单步调试环境的搭建
  • vxworks ftp设置

    2021-03-12 10:45:13
    auto-booting... Error reading target netmask information. Defaulting netmask to 0xFFFFFF00. Using default network mask = 0xFFFFFF00 boot device : motetsec ...host name : vxworks file n...
  • 本书描述了基于BSD4.4 TCP/IP 协议版本标准的Vxworks网络栈,描述了如何配置Vxworks,以及添加或删除某一特定的网络协议或utility使用程序等。
  • vxWorks 下如何配置双网卡 简单的问题,最好不要浪费积分了。。。不过分多就无所谓了。。
  • vxworks下FTP使用说明

    2018-04-27 09:25:31
    vxworks下FTP使用说明
  • VxWorks应用程序下的网络缓冲演示程序
  • 单播路由协议初始化在TMS初始化中,根据MIB配置确定初始化哪个单播路由协议,RIP初始化可以在网络初始化时,OSPF初始化在TMS初始化中根据TMSMIB配置确定,END的IP地址在网络初始化时设置,SwEND的IP地址在网管配置时...
  • 2_软件的安装与配置(Tornado篇)续1_cghomer_新浪博客.files 2_软件的安装与配置(Tornado篇)续2_cghomer_新浪博客.files ...Tilcon在VxWorks操作系统中的应用.pdf 嵌入式图形系统Tilcon及应用研究.pdf
  •  为了能够兼容更多的网络设备和网络协议,VxWorks操作系统专门在网络设备驱动程序和网络协议层之间增加了MUX接口层。网络设备驱动程序不关心用户通过何种网络协议访问设备,只需要将数据传递给MUX层,或者从MUX层...
  • 实时系统vxWorks - 增加删除ip

    千次阅读 2021-12-17 01:37:12
    windows系统下,操作系统为我们提供了一种可以添加多个ip地址的方法,用户可以很方便的把多个网段ip加入到系统网络中,这样就避免了频繁修改ip的工作,那么在vxWorks下有没有这种机制呢?答案是当然有。
  • Vxworks学习笔记

    2017-11-03 17:04:16
    24 如何将VxWorks的系统定时间隔或系统Ticks设置为1ms????? 95 25 read/write、fread/fwrite、fopen/open有什么区别 96 26 快速启动??????????????? 100 27 启动时报ATA0a和硬盘启动相关问题 100 28 如何安装USB2.2...
  • 1.5.网络通信 11 1.6.中断服务程序 14 1.7.时间管理器 14 2.VxWorks应用指导 16 2.1.系统启动 17 2.2. 应用系统配置 19 2.3. 板级支持包 BSP 21 2.4.VxWorks 系统任务 23 2.5. 应用软件开发指导 23 2.6. 应用示例...
  • Vxworks启动参数详解

    千次阅读 2017-06-26 19:59:02
    VxWorks启动参数详解  (2011-08-10 21:47:40) ...网络文件访问   it   分类: VxWorks 上次讲过NI8106控制器如何从SATA磁盘启动VxWorks。但是,看来单是讲磁盘启动还不够,有同事按照里面
  • vxworks中的数据是二进制,用ue打开修改相对较烦,这个软件可以轻松解决这个问题
  • 概述在之前的文章小编就讲过,在小编的字典中,调试能力的重要性是要强过开发设计能力的。关于调试为何如此重要等等,这里就不再过多的赘述了。注意★环境:vxWorks<6.9.4>...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 5,778
精华内容 2,311
关键字:

vxworks网络配置