自 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。
此演示包含以下标准演示文件:
-
两个回显客户端任务
-
带有 IP 堆栈特定命令的命令控制台
构建此项目还可包括以下内容(可选):
-
两组简单的客户端任务和服务器任务,其中客户端
任务会将数据发送至服务器任务。 一组任务使用
标准套接字接口。 另一组任务使用零
拷贝套接字接口。
-
演示如何使用 FreeRTOS_select() 的两个任务。
过程中将创建多个套接字并将其添加至一组任务。 一个任务
会在任务组上阻塞,另一个任务则将数据发送给此组任务的(伪)随机
成员。
FreeRTOS-Plus-UDP 用于允许
通过 UDP 终端访问命令控制台。 请参阅下方
使用说明部分的内容。
-
下载包含源代码和项目文件的 zip 文件
。 将 zip 文件提取至方便的位置,以确保
目录结构体得到维护。
注意:已对此目录结构体进行设计,让其适用于
标准 FreeRTOS .zip 文件下载内容,
并使其在隔离模式下看上去不是最优选择。
-
打开 Visual Studio 解决方案文件 FreeRTOSUDP_Plus__with_CLI.sln
(在 visual Studio IDE 中) 。 此解决方案文件在
"FreeRTOS-Plus/Demo_Projects_Using_FreeRTOS_Simulator/FreeRTOS_Plus_UDP_with_CLI"
目录中。
-
演示使用 WinPCap,
通过访问真实网络连接上的原始以太网数据来创建虚拟网络连接。 许多
计算机都 不止一个真实网络端口。 设置
configNETWORK_INTERFACE_TO_USE 以告诉演示应使用哪个真实端口
创建虚拟端口。
configNETWORK_INTERFACE_TO_USE 被定义在 FreeRTOSConfig.h 中。
当执行应用程序时,可用端口号会显示在控制台上
(请参阅下文使用说明中的图像)
。
-
请按照
Echo 客户端示例文档页面
设置 echo 服务器并在
并在 FreeRTOSConfig.h 中设置回显服务器的地址。 或者,通过在 main.c 中
将 mainCREATE_SIMPLE_UDP_CLIENT_SERVER_TASKS
设置为 1 来创建简单的本地客户端和服务器任务。
-
虚拟端口有自己的 MAC 地址。
将常量 configMAC_ADDR0 设置为 configMAC_ADDR5 以确保
虚拟网络连接使用的 MAC 地址在网络上是唯一的。 这些常量
位于 FreeRTOSConfig.h 底部。
-
如果 IP 地址分配由
DHCP 服务器 管理,
则无需进一步进行配置。
如果 IP 地址分配不由 DHCP 服务器管理,
那么在 FreeRTOSIPConfig.h 中将 ipconfigUSE_DHCP 设置为 0,
然后编辑 FreeRTOSConfig.h 底部的常量,以确保它们对以太网有效,
这些常量设置了静态 IP 地址、DNS 服务器地址、
网关地址和网络掩码的默认值,确保它们对
以太网有效。 如果 IP 地址的前三个八位字节
与同一网络上的其他 IP 地址的前三个八位字节相匹配,那么该 IP 地址就有效
——网络上的每个 IP 地址都必须是唯一的
。
-
在 IDE 的 Build 菜单中选择 "Build Solution"(或按 F7 )
以构建应用程序。
在 Visual Studio 标准版中,F10 是
用来在进入 main() 时启动调试会话和中断的按键。
可使用同一台主机构建应用程序、调试应程序以及
并且(因为使用了 Win32 模拟器)运行应用程序。FreeRTOS
无特殊调试说明。
-
UDP/IP 相关的 CLI 命令
页面含有演示以下内容的视频:
-
连接至 FreeRTOS 命令行接口。
此演示使用 UDP 代替演示的 COM 端口——
请参见下文的注释 1。
-
查看由 DHCP 服务器分配给目标硬件的 IP 地址
。
-
使用 DNS 解析器来 ping 主机名。
-
查看回显客户端
(FreeRTOS-Plus-UDP 应用程序)和回显服务器之间的网络流量。
注释 1:
此视频展示了通过虚拟 COM 端口访问 FreeRTOS-Plus-CLI 的情况。
此演示通过 UDP 端口连接至 FreeRTOS-Plus-CLI。
支持免费 UDP 的哑终端程序包括
YAT 和
Hercules。
为允许建立 UDP 连接,
DHCP 服务器分配给(模拟)目标的 IP 地址
将显示在
应用程序开始执行时就会打开的 Windows 控制台中
。
从 Windows 控制台
显示的 DHCP 服务器获取的可用网络接口和配置
注释 2:
FreeRTOS-Plus-CLI 在 UDP 5001 端口接收命令,并将输出
发送至 UDP 5002 端口。
配置 YAT 终端以访问
在 IP 地址 10.134.134.83 上运行的命令接口
注释 3: Ping 回复
也显示在 Windows 控制台中(因此
通过 FreeRTOS-Plus-CLI 控制台发送的 ping 请求的回复
也显示在 Windows 控制台中)。
使用 YAT 发送 ICMP 回显 (ping) 请求。在
FreeRTOS Windows 模拟器
环境中,
ping 回复显示在 Windows 控制台中,而非在
FreeRTOS 控制台中。
-
增加 TwoEchoClients.c 中的 echoLOOP_DELAY 值将
减少产生的网络流量。
-
在 main.c 中定义以下常量,
以允许在构建中包含或排除任务:
#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.