此页面提供了 Rowley CrossWorks FreeRTOS Web 服务器和 USB 演示,该演示预配置为运行在 Keil MCB1700 评估板上。 MCB1700 使用 LPC1768 来自 NXP 的 Cortex-M3 微控制器。 此演示使用:
uIP 和 LPCUSB 与 FreeRTOS 分开授权。 用户必须熟悉 uIP 和 LPCUSB 许可。 自此演示创建以来,FreeRTOS 对 uIP 堆栈进行了一些修改。 请参阅嵌入式以太网示例列表页面,获取更多详细信息。 FreeRTOS ARM Cortex-M3 移植包含完整的中断嵌套模型。必须按照 自定义页面上的说明设置中断优先级才能正确操作。
重要! 关于使用 NXP Semiconductors ARM Cortex-M3 Web 服务器演示的注意事项使用此 RTOS 移植之前,请阅读以下所有要点。另请参阅常见问题:我的应用程序未运行,问题可能出在哪里? 源代码组织LPC1768 演示的 CrossWorks 项目名为 RTOSDemo.hzp,位于 FreeRTOS/Demo/CORTEX_LPC1768_GCC_Rowley 目录。下载的 FreeRTOS zip 文件包含所有移植文件和演示应用程序项目文件。因此,该文件所含文件 远超此演示所用的文件。请参阅源代码组织部分,获取已下载文件的描述以及关于创建新项目的信息 。
演示应用程序Web 服务器配置直接使用点对点(交叉)电缆或使用标准以太网电缆通过以太网交换机将 MCB1700 目标板连接到运行 Web 浏览器的计算机上。演示使用的 IP 地址由 FreeRTOS/Demo/CORTEX_LPC1768_GCC_Rowley/FreeRTOSConfig.h 文件中 configIP_ADDR0 到 configIP_ADDR3 等常量设置。 MAC 地址和网络掩码配置 在同一头文件中。 运行 Web 浏览器的计算机使用的 IP 地址必须和 MCB1768 开发板使用的 IP 地址相兼容。 为此,可以将二者 IP 地址中的前三个八进制数设置成相同的值。 例如,如果运行 Web 浏览器的计算机的 IP 地址是 192.168.100.1,那么开发板的 IP 地址可以使用 192.168.100.2 到 192.168.100.254 范围内的任何地址 (网络中已存在的地址除外)。
构建和执行演示应用程序
功能演示应用程序在启动 RTOS 调度器之前会创建 36 个任务。这些任务主要包括 标准演示任务(参见演示应用程序部分, 了解各个任务的详细信息)。这些任务的唯一目的是测试 RTOS 内核移植并 演示如何使用各种 API 函数。除了标准演示任务外,应用程序还创建了以下任务和测试:
如果演示应用程序正确执行,其表现如下:
提供的网页每个提供的页面顶部包含一个菜单,其中含有指向其他每个页面的链接。
提供的 RTOS 统计信息页面显示了系统中每个任务的状态信息。
提供的运行时统计信息页面显示了每个任务的处理器利用率。
提供的 IO 页面 IO 页面提供了一个简单的接口,可以将数据发送到 LED。 复选框可以设置和查询用户 LED 的状态。 点击 "Update IO" 按钮可将变更发送到目标硬件。 TCP 统计信息和连接页面显示运行时网络信息。
RTOS 配置和使用详情RTOS 移植专用配置这些演示的特定配置项目包含在 FreeRTOS/Demo/CORTEX_LPC1768_GCC_Rowley/FreeRTOSConfig.h 中。 该文件中定义的常量 在本文件中定义的常量,以适配您的应用程序。 特别是-
ARM Cortex-M3 核心的最低优先级实际上是 255,然而,不同的 ARM Cortex-M3 供应商采用了不同数量的优先位, 并提供了优先级指定方式不同的库函数。 请使用提供的示例作为参考。 每个移植 #defines 'BaseType_t' 等于该处理器的最有效数据类型。 本移植将 BaseType_t 定义为长整型。 请注意,vPortEndScheduler() 尚未实现。 中断服务程序在演示应用程序中,向量表保存在闪存。与大多数移植不同,导致上下文切换的中断服务程序没有特殊要求,可以根据编译器文档编写。 portEND_SWITCHING_ISR() 宏可用于从 ISR 内请求上下文切换。 中断服务程序示例 vEMAC_ISR() 提供在 FreeRTOS/Demo/CORTEX_LPC1768_GCC_Rowley/webserver/emac.c 中。 示例仅供参考。 请注意,portEND_SWITCHING_ISR() 会使中断保持启用。 在抢占式和协同式 RTOS 内核之间切换将 FreeRTOS/Demo/CORTEX_LPC1768_GCC_Rowley/FreeRTOSConfig.h 内的定义 configUSE_PREEMPTION 设置为 1 以使用抢占或 0 以使用协同式机制。编译器选项与所有的端口一样,使用正确的编译器选项至关重要。 若要确保这一点, 最佳方法是基于提供的演示应用程序文件构建您的应用程序。内存分配Source/Portable/MemMang/heap_2.c 位于 ARM Cortex-M3 演示应用程序项目中, 用于提供 RTOS 内核所需的内存分配。 请参阅 API 文档的内存管理部分, 获取完整信息。Copyright (C) Amazon Web Services, Inc. or its affiliates. All rights reserved.
|