查看: 1394|回复: 0

[评测分享] 【米尔-芯驰D9车规级开发板 测评】+ 两路网卡收发测试

[复制链接]

该用户从未签到

发表于 2023-11-29 23:54:16 | 显示全部楼层 |阅读模式
分享到:
芯驰D9开发板上有路以太网接口,测试下两个以太网接口通信。1、开发板接口
20231129230928.jpg


2、将两个**接口都连接到交换机,通过命令配置**连接
root@myd-jd9x:~# ifconfig eth0 192.168.1.100 netmask 255.255.255.0 up

root@myd-jd9x:~# ifconfig eth1 192.168.1.101 netmask 255.255.255.0 up

3、查看**的IP地址
20231129231532.jpg


4、使用ubuntu虚拟机ping两个**
20231129231855.jpg
**连接正常
5、两个**同时登录SSH
20231129232151.jpg
20231129232138.jpg


6、测试程序
udp_server.c
  1. <font size="3">
  2. #include <stdio.h>
  3. #include <string.h>
  4. #include <unistd.h>
  5. #include <stdlib.h>
  6. #include <sys/types.h>
  7. #include <sys/socket.h>
  8. #include <netinet/in.h>
  9. #include <net/if.h>
  10. #include <linux/sockios.h>
  11. #include <sys/ioctl.h>

  12. #include <arpa/inet.h>
  13. #include <errno.h>
  14. #include <net/if.h>
  15. #include <netinet/ether.h>
  16. #include <netinet/in.h>
  17. #include <netpacket/packet.h>
  18. #include <stdio.h>
  19. #include <stdlib.h>
  20. #include <string.h>
  21. #include <sys/ioctl.h>
  22. #include <sys/socket.h>
  23. #include <sys/types.h>
  24. #include <time.h>
  25. #include <unistd.h>
  26. #include <fcntl.h>
  27. #include <termios.h>


  28. #define BUF_SIZE    2048
  29. #define INTERFAXENAME "udp"

  30. int sock;

  31. int main(int argc, char *argv[])
  32. {
  33.     int ret = 0;
  34.         char buf[1024];
  35.         memset(buf,1,1024);

  36.         if ( (sock=socket(AF_INET, SOCK_DGRAM, 0)) <0)
  37.         {
  38.                 perror("socket");
  39.                 exit(1);
  40.         }
  41.         struct sockaddr_in server_addr;
  42.     memset(&server_addr, 0, sizeof(server_addr));
  43.     server_addr.sin_family = AF_INET;
  44.         server_addr.sin_port = htons(5050);
  45.         server_addr.sin_addr.s_addr = inet_addr("192.168.1.100");
  46.        
  47.         ret = bind(sock, (struct sockaddr *)&server_addr, sizeof(server_addr));
  48.         if (ret < 0)
  49.     {
  50.                 printf("%s: bind 192.168.1.100 failed\n", __FUNCTION__);
  51.                 close(sock);
  52.                 return 0;
  53.         }
  54.         else
  55.         printf("bind 192.168.1.100 success \r\n");
  56.        
  57.         struct sockaddr_in client_addr;
  58.         socklen_t        len;
  59.         len = sizeof(client_addr);
  60.         while(1)
  61.         {
  62.                 ret = recvfrom(sock, buf, 1024, 0,(struct sockaddr *)&client_addr, &len);
  63.                 printf("recvfrom 192.168.1.101 ret:%d\n", ret);
  64.         }
  65.        
  66.         close(sock);
  67.         return 0;
  68. }
  69. </font>
复制代码


udp_client.c
  1. <font size="3">
  2. #include <stdio.h>
  3. #include <string.h>
  4. #include <unistd.h>
  5. #include <stdlib.h>
  6. #include <sys/types.h>
  7. #include <sys/socket.h>
  8. #include <netinet/in.h>
  9. #include <net/if.h>
  10. #include <linux/sockios.h>
  11. #include <sys/ioctl.h>

  12. #include <arpa/inet.h>
  13. #include <errno.h>
  14. #include <net/if.h>
  15. #include <netinet/ether.h>
  16. #include <netinet/in.h>
  17. #include <netpacket/packet.h>
  18. #include <stdio.h>
  19. #include <stdlib.h>
  20. #include <string.h>
  21. #include <sys/ioctl.h>
  22. #include <sys/socket.h>
  23. #include <sys/types.h>
  24. #include <time.h>
  25. #include <unistd.h>
  26. #include <fcntl.h>
  27. #include <termios.h>


  28. #define BUF_SIZE    2048
  29. #define INTERFAXENAME "udp"

  30. int sock;

  31. int main(int argc, char *argv[])
  32. {
  33.     int js=0;
  34.     int ret = 0;
  35.         char buf[1024];
  36.         memset(buf,1,1024);
  37.        
  38.         if ( (sock=socket(AF_INET, SOCK_DGRAM, 0)) <0)
  39.         {
  40.                 perror("socket");
  41.                 exit(1);
  42.         }

  43.         struct sockaddr_in addr;
  44.         memset(&addr, 0, sizeof(addr));
  45.         addr.sin_family = AF_INET;
  46.         addr.sin_port = htons(5050);
  47.         addr.sin_addr.s_addr = inet_addr("192.168.1.101");

  48.         ret = bind(sock, (struct sockaddr *)&addr, sizeof(addr));
  49.         if (ret < 0) {
  50.                 printf("%s: bind 192.168.1.101 failed\n", __FUNCTION__);
  51.                 close(sock);
  52.                 return 0;
  53.         }
  54.         else
  55.         printf("bind 192.168.1.101 success \r\n");
  56.        
  57.     struct sockaddr_in server_addr;
  58.     memset(&server_addr, 0, sizeof(server_addr));
  59.     server_addr.sin_family = AF_INET;
  60.         server_addr.sin_port = htons(5050);
  61.         server_addr.sin_addr.s_addr = inet_addr("192.168.1.100");
  62.        
  63.         while(1)
  64.         {
  65.                 ret = sendto(sock, buf, 1024, 0,(struct sockaddr *)&server_addr, sizeof(server_addr));
  66.                 printf("sendto 192.168.1.100 ret:%d js:%d\n", ret,js++);
  67.                 usleep(200000);
  68.         }
  69.        
  70.         close(sock);
  71.         return 0;
  72. }


  73. </font>
复制代码


7、编译
ubuntu:/opt/myd-jd9# aarch64-linux-gnu-gcc -o udp_server udp_server.c

ubuntu:/opt/myd-jd9# aarch64-linux-gnu-gcc -o udp_client udp_client.c





ip:192.168.1.100 运行udp_server
ip:192.168.1.101 运行udp_client


8、两路网口收发测试
20231129234428.jpg

回复

使用道具 举报

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

本版积分规则

关闭

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

手机版|小黑屋|与非网

GMT+8, 2024-12-24 07:49 , Processed in 0.113624 second(s), 17 queries , MemCache On.

ICP经营许可证 苏B2-20140176  苏ICP备14012660号-2   苏州灵动帧格网络科技有限公司 版权所有.

苏公网安备 32059002001037号

Powered by Discuz! X3.4

Copyright © 2001-2024, Tencent Cloud.