下载 FreeRTOS
 

出色的 RTOS & 嵌入式软件

内核
最新资讯
简化任何设备的身份验证云连接。
利用 CoAP 设计节能型云连接 IoT 解决方案。
11.0.0 版 FreeRTOS 内核简介:
FreeRTOS 路线图和代码贡献流程。
使用 FreeRTOS 实现 OPC-UA over TSN。

FreeRTOS Web 服务器演示
使用 Eclipse 和 OpenOCD
搭建完全开源的开发环境

[嵌入式以太网示例]


请注意: 由于早期 LPC2368 设备存在问题,MAM(内存加速器)模式必须设置为零, 演示才能正确执行。

此页面所述的演示使用 FreeRTOS.org、Eclipse EuropaYagarto GCC 工具、OpenOCDuIP 微型 TCP/IP 堆栈创建一个适用于 NXP LPC2368 ARM7 微控制器的简单 Web 服务器示例。 该演示经过配置用于 MCB2368 原型板 (如果您希望使用替代开发板,我们也提供相关说明)。

Eclipse Europa 版本包含有助于交叉开发的增强功能。

FreeRTOS zip 文件包含除 Eclipse 和 Yagarto 工具以外的所有必要内容。 请仔细按照这些说明正确安装和配置 Eclipse, 以便与此演示应用程序一起使用。

随附的 OpenOCD 可执行文件和相关配置文件经过设置用于兼容 Macraigor Wiggler 的 JTAG 接口。

请注意,uIP 和 OpenOCD 与 FreeRTOS.org 分开授权。 用户必须熟悉相应的许可证。

自此演示创建以来,FreeRTOS 已对 uIP 堆栈做出了一些修改。 请参阅嵌入式以太网示例列表页面,获取更多详细信息。

此演示也可进行预配置用于 Rowley CrossStudioHitex 提供了适用于 LPC2378 (使用 HiTOP 开发工具)的替代演示。

Linux 用户请注意: 虽然所使用的工具均为跨平台工具,但我仅在 Windows 主机上测试了 LPC2368/Eclipse 构建。


重要提示!使用 Eclipse LPC23xx Web 服务器演示的说明

使用此 RTOS 移植之前,请阅读以下所有要点。

  1. 源代码组织
  2. 演示应用程序
  3. RTOS 配置和使用详情
另请参阅常见问题:我的应用程序未运行,问题可能出在哪里?

源代码组织

Eclipse LPC2368 演示的 Eclipse 工作区位于 FreeRTOS/Demo/ARM7_LPC2368_Eclipse 目录。 在 Eclipse 启动过程中提示选择工作区位置时请选择此目录。 请务必阅读 Eclipse 的安装和配置说明, 然后再构建项目。

下载的 FreeRTOS zip 文件包含所有移植文件和演示应用程序项目文件。 因此其包含的文件 远多于此演示使用的文件。 请参阅源代码组织部分,获取 下载文件的描述和有关创建新项目的信息。


演示应用程序

演示应用程序设置

直接使用点对点(交叉)电缆或通过使用标准以太网电缆的集线器/路由器将 MCB2300 开发板连接到运行 Web 浏览器的计算机上。 点对点连接时,原型板也允许使用标准以太网电缆, 但我没有尝试过这种配置。

演示使用的 IP 地址是通过 FreeRTOS/Demo/ARM7_LPC2368_Eclipse/RTOSDemo/webserver/uIP_Task.c 文件中的 uipIP_ADDR0 到 uipIP_ADDR3 常量设置的。 运行 Web 浏览器的计算机使用的 IP 地址必须和原型板使用的 IP 地址相兼容。 为此,可以将二者 IP 地址中的前三个八位元组设置成相同的值。 例如,如果运行 Web 浏览器的计算机所用 IP 地址是 192.168.100.1,那么原型板的 IP 地址可以使用 192.168.100.2 到 192.168.100.254 范围内的任何地址 (任何网络上的现有地址除外)。

同一文件中的 uipMAC_ADDR0 到 uipMAC_ADDR5 常量定义了目标硬件使用的 MAC 地址。 请务必确保所配置的 MAC 地址在原型板所连接的网络上具有唯一性。

此演示应用程序使用了在原型板上构建的 LED 和 LCD,因此无需使用其他硬件设置。


构建演示应用程序

再次提醒,请参阅 Eclipse 安装和配置说明, 以了解更多详细信息。
  1. 确保 Yagarto(或等效)GCC 工具已安装,并且 Yagarto/bin 目录包含在您的 PATH 环境变量中。
  2. 打开 FreeRTOS/Demo/ARM7_LPC2368_Eclipse Eclipse 工作区。
  3. 确保 FreeRTOS_ROOT 变量已配置。
  4. 按 F7(或从 "Project" 菜单中选择 "Build All")以构建演示应用程序。


运行演示应用程序

再次提醒,请参阅 Eclipse 安装和配置说明, 以了解更多详细信息。
  1. 确保 Wiggler JTAG 调试接口已连接,并且 MCB2300 开发板已接通电源。
  2. 确保以太网电缆已按上文所述完成连接。
  3. 从 "Run | External Tools" 菜单中选择 "OpenOCD Programmer",然后等待编程完成。
之后,如果您希望开始调试会话,请执行以下步骤:
  1. 从 "Run | External Tools" 菜单中选择 "OpenOCD Server"。
  2. 切换到调试视角。
  3. 在调试窗格中选择可执行的 OpenOCD 服务器。
  4. 点击 "Debug RTOSDemo" 加速按钮(带有绿色小虫图标的按钮)。


功能性

此演示应用程序创建了 27 个任务。 这些任务主要包含标准 演示应用程序任务(有关个别任务的详细信息,请参阅演示应用程序部分)。

除了标准演示任务外,还创建了以下任务/函数:

  • uIP 任务
    此任务操作所有的网络处理。 它大部分时间都阻塞在某个信号量上, 等待被传入的网络数据包生成的中断唤醒。

  • LCD 任务
    此任务是一项“网关守卫”任务。 它是唯一允许写入 LCD 的任务,从而确保访问的一致性。 其他想要写入 LCD 的任务会将要显示的字符串发送到 LCD 任务,而非直接访问 LCD。

  • 'check' tick hook
    'check' tick hook 负责确保所有标准演示任务都按预期执行。它只每隔 5 秒(从 RTOS tick 中断内部)执行一次。check 函数发现的任何错误都会被锁定, 直到处理器重置。check 函数在每次执行结束时会向 'LCD' 任务发送通过或失败的消息, 然后通过上述的 LCD 任务显示在 LCD 上。

如果演示应用程序正确执行,将实现以下效果:

  • LED P2.0、P2.1 和 P2.3 由 'flash' 任务控制。 每个 LED 将以恒定频率闪烁,LED P2.0 的闪烁频率最快,LED P2.3 的闪烁频率最慢。
  • 'check' 函数每 5 秒向显示器写入一次 "PASS"。
  • 目标硬件将向标准 Web 浏览器提供下述网页。 要连接到目标,请执行下列操作:
    1. 在连接的计算机上打开浏览器。
    2. 先在浏览器地址栏中输入 "HTTP://",再输入目标 IP 地址。


      在浏览器中输入 IP 地址
      (当然,根据您的系统,使用正确的 IP 地址)


提供的网页

每个提供的页面顶部包含一个菜单,其中含有指向其他每个页面的链接。


提供的 RTOS 统计页面

RTOS 统计页面提供了系统内每个任务状态的运行时信息,包括堆栈高水位线(任务开始执行后, 可随时在此处获取最小数量的堆栈)。 该页面大约每 2 秒重新加载一次,具体取决于网络负载。

此页面分三个部分传输:HTML 标头和菜单、动态生成的内容以及 HTML 页脚。 这样, 页面的加载速度相对较快。 可以通过一次性传输整个页面来进一步优化加载速度。

有时,连续重新加载 RTOS 统计页面会导致无法从该页面离开。


提供的 IO 页面

IO 页面提供了一个简单的接口,允许将数据发送到 MCB2300 开发板上的 LED 和 LCD。

三个复选框支持设置和查询 P2.5、P2.6 和 P2.7 输出口上的 LED 状态。 文本框可用于向 LCD 写入消息, 但不会查询当前显示的文本。 点击 "Update IO" 按钮可将变更发送到目标硬件。

请注意,'check' 任务每 5 秒更新一次显示内容,因此从 Web 客户端发送的任何文本会很快被覆盖。

TCP 统计和连接页面显示运行时网络信息。 请注意,这些页面单独传输每行数据,因此加载速度较慢。 这演示了如何通过牺牲已实现的数据吞吐量来利用小型传输缓冲区优化内存使用。



RTOS 配置和使用详情

此演示使用了 FreeRTOS LPC2000 GCC 移植,重要使用信息详见标准 LPC2000 GCC 演示文档页面




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