You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

4.5 KiB

LWIP IPERF 测试

1. 例程介绍

介绍例程的用途,使用场景,相关基本概念,描述用户可以使用例程完成哪些工作

本例程示范了MAC控制器在lwip ipv4模式下的初始化流程,同时通过iperf工具,可以对网卡进行收发数据包带宽测试。

1.1 网卡iperf client测试例程 (lwip_iperf_client_example.c)

  • ipv4模式下初始化开发板上所有网口以及对应网卡控制器
  • 为每个网卡配置静态IPv4地址
  • 开启iperf tcp client,向对应的iperf server发出连接请求
  • 通过iperf 工具充当iperf server,可以测出网卡发送数据包速度大小

1.2 网卡iperf server测试例程 (lwip_iperf_server_example.c)

  • ipv4模式下初始化开发板上所有网口以及对应网卡控制器
  • 为每个网卡配置静态IPv4地址
  • 开启iperf tcp server,等待来自iperf client的连接
  • 通过iperf 工具向对应网卡进行连接请求,可以测出网卡接收数据包速度大小

2. 如何使用例程

描述开发平台准备,使用例程配置,构建和下载镜像的过程

本例程需要以下硬件,

  • E2000D/Q Demo板,FT2000/4开发板,D2000开发板,PhytiumPi
  • 串口线和串口上位机

2.1 硬件配置方法

哪些硬件平台是支持的,需要哪些外设,例程与开发板哪些IO口相关等(建议附录开发板照片,展示哪些IO口被引出)

  • 为方便测试,一般需要自带路由器设备。
  • 关于路由器配置,请参考网上相关资料自行配置。

2.2 SDK配置方法

依赖哪些驱动、库和第三方组件,如何完成配置(列出需要使能的关键配置项)

本例程需要:

  • LWIP组件,依赖 USE_LWIP
  • Letter Shell组件,依赖 USE_LETTER_SHELL

对应的配置项是,

  • CONFIG_USE_LWIP

  • CONFIG_USE_LETTER_SHELL

  • 本例子已经提供好具体的编译指令,以下进行介绍:

    1. make 将目录下的工程进行编译
    2. make clean 将目录下的工程进行清理
    3. make image 将目录下的工程进行编译,并将生成的elf 复制到目标地址
    4. make list_kconfig 当前工程支持哪些配置文件
    5. make load_kconfig LOAD_CONFIG_NAME=<kconfig configuration files> 将预设配置加载至工程中
    6. make menuconfig 配置目录下的参数变量
    7. make backup_kconfig 将目录下的sdkconfig 备份到./configs下
  • 具体使用方法为:

    • 在当前目录下
    • 执行以上指令

2.3 构建和下载

描述构建、烧录下载镜像的过程,列出相关的命令

本文档将以E2000demo开发板为例,对于其它平台,使用对应的默认配置

  • 在host端完成配置
  • 选择目标平台
make load_kconfig LOAD_CONFIG_NAME=e2000d_aarch64_demo_lwip_iperf
  • 选择例程需要的配置
make menuconfig
  • 进行编译
make
  • 将编译出的镜像放置到tftp目录下
make image
  • host侧设置重启host侧tftp服务器
sudo service tftpd-hpa restart
  • 开发板侧使用bootelf命令跳转
setenv ipaddr 192.168.4.20  
setenv serverip 192.168.4.50 
setenv gatewayip 192.168.4.1 
tftpboot 0x90100000 baremetal.elf
bootelf -p 0x90100000

2.4 输出与实验现象

描述输入输出情况,列出存在哪些输出,对应的输出是什么(建议附录相关现象图片)

2.4.1 网卡iperf client测试例程 (lwip_iperf_client_example.c)

lwip iperfc

iperf_client_example_result iperf_client_test_result

2.4.2 网卡iperf server测试例程 (lwip_iperf_server_example.c)

lwip iperfs

iperf_server_example_result iperf_server_test_result

3. 如何解决问题

主要记录使用例程中可能会遇到的问题,给出相应的解决方案

  • Q: 如何静态配置开发板的ip地址?
  • A: ipv4下在board_mac_config静态变量中修改如下成员变量即可:
      .ipaddr="192.168.4.10",
      .gw="192.168.4.1",
      .netmask="255.255.255.0",
  • A: ipv6下在board_mac_config静态变量中修改如下成员变量即可:
      .mac_address={0x98, 0x0e, 0x24, 0x00, 0x11, 0x1},

4. 修改历史记录

记录例程的重大修改记录,标明修改发生的版本号