Aurix Tricore TC397使用LWIP协议栈测试以太网网速

一、LWIP

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

链接地址: lwIP - A Lightweight TCP/IP stack - Summary [Savannah]

二、以太网测试

使用LWIP的TCP进行链接,上位机测试工具使用jperf。

1、测试代码

void iperf_client(void *thread_param)
{
    struct netconn *conn;
    int i;
    int ret;
    uint8 send_buf[1024];

    float speed;
    uint64 sentlen = 0;
    uint32 tick1, tick2;
    ip4_addr_t ipaddr;

    for (i = 0; i < IPERF_BUFSZ; i++)
        send_buf[i] = i & 0xff;

    while (1)
    {
        ulTaskNotifyTake(pdTRUE, portMAX_DELAY);

        conn = netconn_new(NETCONN_TCP);
        if (conn == NULL)
        {
            log_i("create conn failed!\r\n");
            vTaskDelay(10);
            continue;
        }
        else
        {
            log_i("create conn ok!\r\n");
        }

        IP4_ADDR(&ipaddr, 192, 168, 5, 100);

        ret = netconn_connect(conn, &ipaddr, 5001);
        if (ret == -1)
        {
            log_i("Connect failed!\r\n");
            netconn_close(conn);
            vTaskDelay(10);
            continue;
        }
        else
        {
            log_i("connect ok %d!\r\n", ret);
        }

        tick1 = sys_now();
        while (1)
        {
            tick2 = sys_now();

            if (tick2 - tick1 >= configTICK_RATE_HZ * 5)
            {
                speed = (float)(sentlen / 1048576.0f) / ((tick2 - tick1) / 1000.0f);
                
                log_i("send speed = %.2f MBps!\r\n", speed);

                tick1 = tick2;
                sentlen = 0;
            }
            
            ret = netconn_write(conn, send_buf, IPERF_BUFSZ, 0);
            if (ret == ERR_OK)
            {
                sentlen += IPERF_BUFSZ;
            }
            else
            {
                log_i("netconn write error %d \r\n",ret);
            }
        }
    }
}

2、测试结果

测试工具使用jperf,采用TCP链接,端口为5001

测试TC397发送的平均网速约16Mbyte/sec

 

 测试的结果与千兆以太网理论速度(125Mbyte/sec)还是存在一定的差距。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Huskiey

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值