下载 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 示例项目
适用于 NXP LPC1830 Cortex-M3 微控制器


本页面包含:

由 NGX Technologies 开发的 LPC1830 Xplorer 板



源代码和项目文件

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


目标硬件

项目为预配置,面向 由 NGX Technologies 开发的非常低成本的 LPC1830 Xplorer。

在美国,目标硬件可以从 NewarkDigikey 等渠道购买。 在欧洲,硬件可以从 Farnell 等渠道购买。 在亚洲,硬件可以直接从 NGX Technologies 购买。 NGX 网站还列出了其他经销商。


编译器/工具链

该预配置为预配置,使用 免费的 LPCXpresso IDE 进行构建, 该 IDE 随附 GCC ARM 编译器。


功能

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

构建此项目还可以选择性地包含 FreeRTOS-Plus-Trace 记录功能以及 开始和停止追踪记录的 FreeRTOS-Plus-CLI 命令


命令控制台输入和输出

第三方 USB CDC 驱动程序允许 通过标准哑终端(如超级终端或 Tera Term)访问命令控制台。 main.c 顶部的 目标硬件必须通过 USB0 连接器 (以太网插口的对侧)供电 ,以使虚拟 COM 端口可用。

注意:第三部分 USB 驱动程序已能满足命令控制台输入和输出的需求, 但在重负载下不稳健。


构建说明

  1. 执行 CreateProjectDirectoryStructure.bat 批处理文件以创建 演示项目目录结构体。 批处理文件位于主 FreeRTOS下载内容的以下目录中: FreeRTOS-Plus/Demo/FreeRTOS_Plus_UDP_and_CLI_LPC1830_GCC/

  2. 启动 LPCXpresso IDE。 新建工作区,或在出现提示时选择现有工作区。

  3. 在 IDE 的 "File" 菜单中选择 "Import",然后选择 "Existing Projects Into Workspace", 如下所示,再点击 "Next"。

    在 LPCXpresso IDE 中选择 Existing Project Into Workspace
    在 Import 对话框中选择 "Existing Projects Into Workspace"


  4. 单击 "Select Root Directory" 单选按钮, 然后导航到 并选择 FreeRTOS-Plus/Demo/FreeRTOS_Plus_UDP_and_CLI_LPC1830_GCC 目录,该目录位于 FreeRTOS 下载页面。

    对话框将显示单个项目, 确保项目选中后,单击 finish。 导入的项目 将出现在 LPCXpresso IDE 的项目资源管理器窗口。

    选择 LPC1830 嵌入式以太网项目
    显示单个项目的导入对话框


  5. 请按照 Echo 客户端示例文档页面 设置 echo 服务器并在 FreeRTOSConfig.h 中设置回显服务器的地址。

  6. 将常量 configMAC_ADDR0 设置为 configMAC_ADDR5, 以确保使用的 MAC 地址在网络上是唯一的。 这些常量位于 位于 FreeRTOSConfig.h 底部。

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

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

  8. 若要构建项目,请在项目资源管理器中选择 "FreeRTOS_UDP_Demo", 然后从 IDE 的 "Project" 菜单中选择 "Build Project" 。

    构建嵌入式以太网项目,方法是在 Eclipse 项目资源管理器中选择嵌入式以太网项目并单击构建
    在项目资源管理器中先选择 FreeRTOS_UDP_Demo,然后选择 "Build Project"



调试说明

目标硬件必须使用单独的调试硬件连接到调试主机 (运行 LPCXpresso IDE 的计算机)。 因此,推荐使用红色探针 (带有 10 针适配器),但 LPCLink 提供了成本较低 (但性能更低)的替代方案。 如果您有 LPCXpresso 硬件板, 那么可以通过切割 从目标侧连接 LPCXpresso 硬件调试接口侧的轨道, 制作一个独立的 LPCLink。

LPCLink 硬件调试器
LPCXpresso 板的 LPCLink 侧

将 LPC1830 Xplorer 板连接到调试器, 单击 LPCXpresso 快速启动面板中的调试选项。

在 LPCXpresso 嵌入式 IDE 中启动调试会话
快速启动面板中的调试选项


使用说明

  • UDP/IP 相关的 CLI 命令 页面含有演示以下内容的视频:
    1. 连接到 FreeRTOS 命令行界面。
    2. 查看由 DHCP 服务器分配给目标硬件的 IP 地址 。
    3. 使用 DNS 解析器来 ping 主机名。
    4. 查看回显客户端 (FreeRTOS-Plus-UDP 应用程序)和回显服务器之间的网络流量。

  • 注 1: FreeRTOS-Plus-CLI 通过虚拟 COM 端口 (USB CDC) 进行访问。 该 COM 端口在应用程序开始执行时枚举, 但每次重启调试会话时都会消失。 为此,请确保用作 FreeRTOS-Plus-CLI 接口的终端 在调试会话停止之前断开与 COM 端口的连接 。 如果应用程序停止运行时, 或调试会话重启时, 终端仍连接着 COM 端口,则在终端程序自身关闭或重启之前, COM 端口可能无法再访问 。

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

  • LED D3 将每 500 毫秒切换一次,以显示应用程序正在运行。

  • 目标硬件第一次插入到主机时, 系统可能会提示您安装虚拟 COM 端口驱动程序。 完成安装所必需的 .inf 包含在 演示的 zip 文件的 ThirdParty/USB_CDC/inf 目录下 。


使用 FreeRTOS-Plus-Trace

该示例演示了 FreeRTOS-Plus-Trace 的一些功能:
  • 命名了一些 队列和信号量,以便在 FreeRTOS-Plus-Trace 中查看,以及
  • 零拷贝回显客户端在发出回显请求前立即将一个用户事件插入追踪, 在等待回显回复前又立即插入了另一个用户事件 。

要将追踪记录器包含在构建中,请执行以下操作:

  1. 构建项目之前,先将 configINCLUDE_TRACE_RELATED_CLI_COMMANDS (在 FreeRTOSConfig.h 中)设置为 1,然后再运行应用程序。

  2. 在命令控制台中输入 "trace start" 以开始追踪记录 。 在命令控制台中输入 "trace stop" 以结束追踪记录 。

  3. 通过检查表达式窗口中的 "sizeof( RecorderDataType )" 来获取追踪记录器缓冲区的大小 (请参阅下方中间的图片) 。

  4. 从 IDE 的 Window 菜单中 选择 "Show View->Other->Debug->Memory Browser" 选项, 暂停调试器并打开 Memory Browser 窗口。

    在 LPCXpresso 中打开嵌入式 RAM 浏览器窗口
    打开 Memory Browser 窗口

  5. 在 Memory Browser 窗口的 "&RecorderData" 中查看内存,找到记录数据的起始点。

  6. 点击 Memory Browser 窗口中的 Export Memory 速度按钮( 要求 LPCXpresso V5.0.14 或更高版本), 将整个 RecorderData 变量导出为 原始二进制。 此外, 导出的内存长度须不得小于 sizeof( RecorderDataType ), 但可以大于 sizeof( RecorderData )。

    导出 RTOS 追踪文件
    导出 RTOS 追踪记录。 点击 查看大图。


  7. 导出的文件可以在 FreeRTOS-Plus-Trace 工具中打开

    查看 RTOS 追踪
    在 FreeRTOS-Plus-Trace 中查看 RTOS 追踪文件


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