tim4146 发表于 2017-3-7 22:06:28

MQX3.7版本的RTCS移植后发现PING时通时不通,求解

以下是代码,按照官方的流程并且参照了苏大MQX书籍进行一步步的编写,PHY芯片是KZS8041和MQX默认的PHY芯片匹配,使用的硬件是某鸦开发板
关键代码是这样的:
int_32            error;
   _enet_address   address;//mac 地址 等同于char
   IPCFG_IP_ADDRESS_DATA ip_data;
   ip_data.ip = ENET_IPADDR;
   ip_data.mask = ENET_MASKADDR;
   ip_data.gateway = ENET_GATEWAYADDR;
   //step1:创建RTCS组件
   error = RTCS_create();// 备注:内部已经包含IP_init() ICMP_init()等组件
   if(error == RTCS_OK)
   {
      printf("RTCS_create is OK\r\n");
   }
   else
   {
      printf("Failed!!");
      _task_block();
   }
   
   //step2:获得mac地址存在address中
   if(1 == ENET_get_mac_address(DEMOCFG_DEFAULT_DEVICE, ip_data.ip, address))//第一个参数是 1 ,第二个参数是IP地址,第三个是char待更新的数组
   {
   printf("ENET_get_mac_address is OK\n ");
   }
   else
   {
      printf("Failed!!");
      _task_block();
   }
   
   //step3:物理层设备初始化
   error = ipcfg_init_device(DEMOCFG_DEFAULT_DEVICE,address);
   if (error == 0)
   {
       printf (" init ethernet device OK \n");
   }
   else
   {
       printf("Failed!!");
       _task_block();
   }
   
   //step4:绑定IP地址
   error = ipcfg_bind_staticip(DEMOCFG_DEFAULT_DEVICE,&ip_data);
   if(error == IPCFG_OK )
   {
       printf("Bind OK \n");
      
   }
   else
   {
       printf("Failed!!");
       _task_block();
   }

while(1)
{
    /* 闪烁小灯 */
    GPIO_ToggleBit(HW_GPIOE, 6);
    _time_delay(200);
}
出现的问题:
1、和公司电脑直连。PING和UDP全都正常
2、和公司电脑通过交换机连,PING不稳定,经常连接超时
3、回家和自家电脑PING,不稳定,经常超时。
这个问题疑惑了好几天了一直没找到原因,真是不甘心呀,工程已经在附件上传了,开发环境是IAR 6.30

lantian0099 发表于 2017-3-8 09:16:01

确定PHY配置正确么,看你程序里phy相关的文件是phy_dp83xxx.h,跟ksz8041是同一的?

tim4146 发表于 2017-3-10 00:17:27

lantian0099 发表于 2017-3-8 09:16
确定PHY配置正确么,看你程序里phy相关的文件是phy_dp83xxx.h,跟ksz8041是同一的? ...

感谢提醒,刚刚看了代码确实会生成这个83XXX的.H文件,却不会生成8041对应的.H文件,系统配置暂时没发现问题,准备今天再在实物上测试一下

lantian0099 发表于 2017-3-10 12:13:34

tim4146 发表于 2017-3-10 00:17
感谢提醒,刚刚看了代码确实会生成这个83XXX的.H文件,却不会生成8041对应的.H文件,系统配置暂时没发现 ...

恩,没用过3.7的,用的4.1版本的,这个是从里面拷出来的。




tim4146 发表于 2017-3-15 00:30:04

lantian0099 发表于 2017-3-10 12:13
恩,没用过3.7的,用的4.1版本的,这个是从里面拷出来的。

感谢,回公司再下载。要说是MQX3.7 底层驱动的问题也不无可能。
哎,现在MQX用的人好少啊,基本是找不到交流的地方了
页: [1]
查看完整版本: MQX3.7版本的RTCS移植后发现PING时通时不通,求解