下载 FreeRTOS
 

出色的 RTOS & 嵌入式软件

最新资讯
简化任何设备的身份验证云连接。
利用 CoAP 设计节能型云连接 IoT 解决方案。
11.0.0 版 FreeRTOS 内核简介:
FreeRTOS 路线图和代码贡献流程。
使用 FreeRTOS 实现 OPC-UA over TSN。
自 FreeRTOS V10.1.0 开始,FreeRTOS+UDP 已从 (自 FreeRTOS V10.1.0 开始)。请参阅替代方案:FreeRTOS+TCP 堆栈 (此堆栈可配置为仅供 UDP 使用)。

FreeRTOS-Plus-UDP 示例项目
适用于 FreeRTOS Win32 模拟器


本页内容包括:



源代码和项目文件

此演示应用程序可从官方 FreeRTOS zip 文件下载内容的以下目录获取:
FreeRTOS-Plus/Demo/FreeRTOS_Plus_UDP_and_CLI_Windows_Simulator


目标硬件

此项目使用 FreeRTOS Windows 模拟器。 Windows 模拟器提供了一个方便的评估平台,但它 不显示实时操作。 模拟时间比实际时间 慢很多。


编译器/工具链

已预配置此项目,以使用 Microsoft Visual C++ (MSVC) 的免费 Express 版本 进行构建。 使用的是 MSVC Express Edition 2010。


功能

此演示包含以下标准演示文件:
  1. 两个回显客户端任务
  2. 带有 IP 堆栈特定命令的命令控制台

构建此项目还可包括以下内容(可选):

  • 两组简单的客户端任务和服务器任务,其中客户端 任务会将数据发送至服务器任务。 一组任务使用 标准套接字接口。 另一组任务使用零 拷贝套接字接口。

  • 演示如何使用 FreeRTOS_select() 的两个任务。 过程中将创建多个套接字并将其添加至一组任务。 一个任务 会在任务组上阻塞,另一个任务则将数据发送给此组任务的(伪)随机 成员。


命令控制台输入和输出

FreeRTOS-Plus-UDP 用于允许 通过 UDP 终端访问命令控制台。 请参阅下方使用说明部分的内容。


构建说明

  1. 下载包含源代码和项目文件的 zip 文件 。 将 zip 文件提取至方便的位置,以确保 目录结构体得到维护。

    注意:已对此目录结构体进行设计,让其适用于 标准 FreeRTOS .zip 文件下载内容, 并使其在隔离模式下看上去不是最优选择。

  2. 打开 Visual Studio 解决方案文件 FreeRTOSUDP_Plus__with_CLI.sln (在 visual Studio IDE 中) 。 此解决方案文件在 "FreeRTOS-Plus/Demo_Projects_Using_FreeRTOS_Simulator/FreeRTOS_Plus_UDP_with_CLI" 目录中。

  3. 演示使用 WinPCap, 通过访问真实网络连接上的原始以太网数据来创建虚拟网络连接。 许多 计算机都 不止一个真实网络端口。 设置 configNETWORK_INTERFACE_TO_USE 以告诉演示应使用哪个真实端口 创建虚拟端口。

    configNETWORK_INTERFACE_TO_USE 被定义在 FreeRTOSConfig.h 中。 当执行应用程序时,可用端口号会显示在控制台上 (请参阅下文使用说明中的图像) 。

  4. 请按照 Echo 客户端示例文档页面 设置 echo 服务器并在 并在 FreeRTOSConfig.h 中设置回显服务器的地址。 或者,通过在 main.c 中 将 mainCREATE_SIMPLE_UDP_CLIENT_SERVER_TASKS 设置为 1 来创建简单的本地客户端和服务器任务。

  5. 虚拟端口有自己的 MAC 地址。 将常量 configMAC_ADDR0 设置为 configMAC_ADDR5 以确保 虚拟网络连接使用的 MAC 地址在网络上是唯一的。 这些常量 位于 FreeRTOSConfig.h 底部。

  6. 如果 IP 地址分配由 DHCP 服务器 管理, 则无需进一步进行配置。

    如果 IP 地址分配不由 DHCP 服务器管理, 那么在 FreeRTOSIPConfig.h 中将 ipconfigUSE_DHCP 设置为 0, 然后编辑 FreeRTOSConfig.h 底部的常量,以确保它们对以太网有效, 这些常量设置了静态 IP 地址、DNS 服务器地址、 网关地址和网络掩码的默认值,确保它们对 以太网有效。 如果 IP 地址的前三个八位字节 与同一网络上的其他 IP 地址的前三个八位字节相匹配,那么该 IP 地址就有效 ——网络上的每个 IP 地址都必须是唯一的 。

  7. 在 IDE 的 Build 菜单中选择 "Build Solution"(或按 F7 ) 以构建应用程序。



调试说明

在 Visual Studio 标准版中,F10 是 用来在进入 main() 时启动调试会话和中断的按键。

可使用同一台主机构建应用程序、调试应程序以及 并且(因为使用了 Win32 模拟器)运行应用程序。FreeRTOS 无特殊调试说明。


使用说明

  • UDP/IP 相关的 CLI 命令 页面含有演示以下内容的视频:

    1. 连接至 FreeRTOS 命令行接口。 此演示使用 UDP 代替演示的 COM 端口—— 请参见下文的注释 1。

    2. 查看由 DHCP 服务器分配给目标硬件的 IP 地址 。

    3. 使用 DNS 解析器来 ping 主机名。

    4. 查看回显客户端 (FreeRTOS-Plus-UDP 应用程序)和回显服务器之间的网络流量。

  • 注释 1: 此视频展示了通过虚拟 COM 端口访问 FreeRTOS-Plus-CLI 的情况。 此演示通过 UDP 端口连接至 FreeRTOS-Plus-CLI。 支持免费 UDP 的哑终端程序包括 YATHercules

    为允许建立 UDP 连接, DHCP 服务器分配给(模拟)目标的 IP 地址 将显示在 应用程序开始执行时就会打开的 Windows 控制台中 。

    可用以太网接口和 IP 地址配置
    从 Windows 控制台
    显示的 DHCP 服务器获取的可用网络接口和配置


    注释 2: FreeRTOS-Plus-CLI 在 UDP 5001 端口接收命令,并将输出 发送至 UDP 5002 端口。

    配置 UDP 设置,以向 UDP 5001 端口发送并从 UDP 5002 端口接收
    配置 YAT 终端以访问
    在 IP 地址 10.134.134.83 上运行的命令接口


    注释 3: Ping 回复 也显示在 Windows 控制台中(因此 通过 FreeRTOS-Plus-CLI 控制台发送的 ping 请求的回复 也显示在 Windows 控制台中)。

    发送 ICMP 回显请求
    使用 YAT 发送 ICMP 回显 (ping) 请求。在 FreeRTOS Windows 模拟器
    环境中, ping 回复显示在 Windows 控制台中,而非在 FreeRTOS 控制台中。


  • 增加 TwoEchoClients.c 中的 echoLOOP_DELAY 值将 减少产生的网络流量。

  • 在 main.c 中定义以下常量, 以允许在构建中包含或排除任务:


    /* Set the following constants to 1 or 0 to define which tasks to include and
    exclude. */

    #define mainCREATE_UDP_CLI_TASKS 1
    #define mainCREATE_SIMPLE_UDP_CLIENT_SERVER_TASKS 0
    #define mainCREATE_UDP_ECHO_TASKS 1


Copyright (C) Amazon Web Services, Inc. or its affiliates. All rights reserved.