查看: 2901|回复: 1

[MQX] MQX 总线 扩展 双网口 两个dm9000a

[复制链接]

该用户从未签到

1

主题

1

帖子

0

新手上路

Rank: 1

积分
23
最后登录
2018-12-7
发表于 2017-11-1 15:56:12 | 显示全部楼层 |阅读模式
单独初始化 其中任何一个 网口都好用;把两个都开,两个都不好用,两个都配置为服务器。大牛给看下有没有遇到过
只开2口程序:(开两个时i从1开始循环)
    /* Bind IP address for each interface */
    for (i = 2; i <=2; i++)
    {
        _enet_address           address;
        uint32_t                 phy_addr;
       // uint32_t                 sock;

       // sock = socket(AF_INET,SOCK_STREAM,0);
        phy_addr = i;
        if(i==2)
        ip_addr = IPADDR(A1,B1,C1,D1);
        else
          if(i==1)
            ip_addr = IPADDR(config1[5],config1[6],config1[7],config1[8]);  

        ENET_get_mac_address(phy_addr, ip_addr, address);

        /* Init ENET device */
        error = ipcfg_init_device (phy_addr, address);
        if (error != RTCS_OK)
        {
            printf("IPCFG: Device n.%d init failed. Error = 0x%X\n", i, error);
            _task_set_error(MQX_OK);
            n_devices--;
            i--;
            continue;
        }

        #if RTCSCFG_ENABLE_IP4
        ip_data.ip      = ip_addr;
        ip_data.mask    = IPADDR(config1[9],config1[10],config1[11],config1[12]);
       // if(i==1)
        ip_data.gateway = IPADDR(config1[13],config1[14],config1[15],config1[16]);
        /* Bind IPv4 address */
        error = ipcfg_bind_staticip (phy_addr, &ip_data);
        if (error != RTCS_OK)
        {
         //   printf("\nIPCFG: Failed to bind IP address. Error = 0x%X", error);
            _task_block();
        }
        #endif

    }

网口1任务:
void net1_rev_task(uint32_t initial_data)
{
uint32_t listensock,error,length;
uint16_t len;
int32_t          value = 256;
sockaddr_in  addr,addrin;
//char str[200];
listensock = socket(AF_INET,SOCK_STREAM,0);
addr.sin_addr.s_addr = ip_addr[1];
//addr.sin_addr.s_addr = INADDR_ANY;
addr.sin_family = AF_INET;
addr.sin_port = config1[17];
error = bind(listensock,&addr,sizeof(addr));
error = listen(listensock,5);
while(1)

{任务程序}
}
网口2任务程序:
void net2_rev_task(uint32_t initial_data)
{
uint32_t sock1,listensock1,error1,length1;
uint16_t len1;
int32_t          value1 = 256;
sockaddr_in  addr1,addrin1;
//char str[1200];
listensock1 = socket(AF_INET,SOCK_STREAM,0);
addr1.sin_addr.s_addr = ip_addr[2];
//addr.sin_addr.s_addr = INADDR_ANY;
addr1.sin_family = AF_INET;
addr1.sin_port = 205;
error1 = bind(listensock1,&addr1,sizeof(addr1));
error1 = listen(listensock1,5);

//setsockopt(listensock,SOL_TCP,OPT_TBSIZE,&value,sizeof(value));
   while(1)
   {

  任务程序
}
}
[img]file:///C:\Users\Administrator\AppData\Roaming\Tencent\Users\502708396\QQ\WinTemp\RichOle\PR6258HL{`4P1I2M[N4T79K.png[/img]

最佳答案

请检查是否有MAC地址冲突,MQX默认情况下把MAC都设置成一个固定值 请在community的这个帖子更新 http://community.nxp.com/thread/463226
回复

使用道具 举报

该用户从未签到

712

主题

6371

帖子

0

超级版主

Rank: 8Rank: 8

积分
24879
最后登录
2025-7-20
发表于 2017-11-3 10:34:17 | 显示全部楼层
请检查是否有MAC地址冲突,MQX默认情况下把MAC都设置成一个固定值
请在community的这个帖子更新
http://community.nxp.com/thread/463226
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 注册/登录

本版积分规则

关闭

站长推荐上一条 /3 下一条

Archiver|手机版|小黑屋|恩智浦技术社区

GMT+8, 2025-7-20 16:19 , Processed in 0.087344 second(s), 23 queries , MemCache On.

Powered by Discuz! X3.4

Copyright © 2001-2024, Tencent Cloud.

快速回复 返回顶部 返回列表