在 WIZnet Pico 板上使用 FreeRTOS 和 LWIP 运行 IPerf

本文详述了如何在WIZnetW5100S-EVB-Pico板上通过FreeRTOS和LWIP移植和运行IPerf,包括步骤如克隆库、添加依赖、代码调整和验证过程,以及后续扩展工业协议的计划。
摘要由CSDN通过智能技术生成
如何运行 FreeRTOS、LWIP 和 Iperf 的终极指南

转发: Running IPerf with FreeRTOS and LWIP on WIZnet Pico board


项目介绍

介绍

该项目旨在指导如何使用 FreeRTOS 和 LWIP 在 WIZnet W5100S-EVB-Pico 板上运行 IPerf。

如何

步骤 0. 克隆存储库

克隆 pico-sdk、pico-examples 或克隆我的示例存储库。

步骤 1. 移植 FreeRTOS

由于 FreeRTOS 内核中已经有 RP2040 端口,因此我们使用它。 在您的环境中定义 FREERTOS_KERNEL_PATH,然后将以下行添加到 CMakeLists.txt

include(${FREERTOS_KERNEL_PATH}/portable/ThirdParty/GCC/RP2040/FreeRTOS_Kernel_import.cmake)

然后只需将 FreeRTOS-Kernel-Heap4 添加到 target_link_libraries 中即可。

步骤 2. 移植 LWIP 和 IPERF

由于LWIP已经移植到pico-sdk,使用时我们只需将以下库添加到CMakeLists.txt中的target_link_libraries中

pico_lwip_nosys
pico_lwip_iperf

步骤 3. 移植 WIZnet ioLibrary

将 ioLibrary 驱动程序克隆到您的项目中。 在我的项目中,有 w5x00_lwip.c 及其头文件,它们提供了将 WIZnet 与 LWIP 结合使用的多个函数。 有一些重要的代码调整需要完成。 由于W5100S将在MACRAW模式下使用,我们需要将内存分配给socket 0,如下所示。

void wizchip_initialize(void)
{
...
   /* W5x00 initialize */
    uint8_t temp;
#if (_WIZCHIP_ == W5100S)
    uint8_t memsize[2][4] = {{8, 0, 0, 0}, {8, 0, 0, 0}}; // For LWIP
    //uint8_t memsize[2][4] = {{2, 2, 2, 2}, {2, 2, 2, 2}};
    ....

端口文件夹可以在 Github 上的各种 WIZnet RP2040 SDK 中找到。 它基本上为 RP2040 和 WIZnet 芯片提供通信层。

步骤 4. 让我们编写代码

示例代码非常简单。 在 Main 中,我们创建一个 iperf_task 并启动 Scheduler。 在 iperf_task 中,我们初始化 WIZnet 芯片、LWIP 堆栈并启动 IPERF 服务器。

结果。

构建项目后,将生成的 uf2 文件复制到您的开发板上并运行。 通过串行终端,我们可以验证代码正在运行。

我们来看看实际的iperf性能

下一步计划

使用此设置(FreeRTOS 和 LWIP),我们可以使用 WIZnet W5100S-EVB-Pico 板实现各种工业协议。 请继续关注下一个项目!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值