taskDelay()滥用的结果~

    xiaoxiao2021-12-14  21

    STATUS netDevInit(void) { char opt = 0; int optval = 0; int tempAddrLen = 0; struct in_addr ifAddr;

    //--- 主网卡(fei0)初始化 if (ipAttach(0, "fei") == ERROR)... if (ifAddrSet("fei0", LOCAL_IP_ADDR) == ERROR)... if (ifMaskSet("fei0", LOCAL_MASK_CODE) == ERROR)... //--- 从网卡(fei1)初始化 if (ipAttach(1, "fei") == ERROR)... if (ifAddrSet("fei1", LOCAL_IP_ADDR_TEMP) == ERROR)... if (ifMaskSet("fei1", LOCAL_MASK_CODE_TEMP) == ERROR)... taskDelay(sysClkRateGet()); //--- 双网切换的主网卡(fei0)和从网卡(fei1)设置 if (InitNetSwitch(0, 1, 0) != 0)... //--- if ((sockFd = socket (AF_INET, SOCK_DGRAM, 0)) == ERROR)... taskDelay(10); if ((bind(sockFd, (struct sockaddr *)&localSockAddr, tempAddrLen)) == ERROR)... taskDelay(10); ifAddr.s_addr = inet_addr(LOCAL_IP_ADDR); if(setsockopt(sockFd, IPPROTO_IP, IP_MULTICAST_IF, (char *)&ifAddr, sizeof(struct in_addr)) == ERROR)... taskDelay(10); ipmr.imr_multiaddr.s_addr = inet_addr(REMOTE_IP_ADDR); ipmr.imr_interface.s_addr = inet_addr(LOCAL_IP_ADDR); if(setsockopt(sockFd, IPPROTO_IP, IP_ADD_MEMBERSHIP, (char *)&ipmr, sizeof(struct ip_mreq)) == ERROR)... taskDelay(10); if (AddMulticast(0, sockFd, &ipmr) != 0)... // errno=0x31 taskDelay(10); return OK;

    }

    测试采用某型号PC104板卡和对应的双冗余网卡库文件,厂家的demo运行没有问题,自己的程序总报错,后找到原因是因为taskDelay()的使用导致,未能够深入究其原因~

    转载请注明原文地址: https://ju.6miu.com/read-970348.html

    最新回复(0)