下载 FreeRTOS
 

出色的 RTOS & 嵌入式软件

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

FreeRTOS-Plus-IO 和 FreeRTOS-Plus-CLI 演示
使用 LPCXpresso 基板 BSP

简介

本页介绍了使用 FreeRTOS-Plus-IO 和 FreeRTOS-Plus-CLI 的两个演示应用程序 (在 LPCXpresso Base Board BSP 上使用)。 第二个演示集成了 lwIP 和 FatFS, 为存储在 SD 卡上的文件提供 Telnet“类似”命令行界面。

这些演示非常全面;如需简单的代码片段, 请参阅快速示例页面以及 大多数 FreeRTOS-Plus-IO 和 FreeRTOS-Plus-CLI 文档页面。

这些演示使用标准 FreeRTOS Cortex-M3 GCC 移植。 如果 用户希望在不使用 FreeRTOS-Plus-IO 的情况下使用此移植, 则须首先查阅移植文档, 以了解使用 FreeRTOS 中断嵌套模型所需的中断配置设置。 建议首先查看 常见问题,其中记录了 在 Cortex-M 设备上使用多任务内核时最常见的错误。

本页内容如下:


FreeRTOS-Plus-IO 和 FreeRTOS-Plus-CLI 演示 1 功能

FreeRTOS-Plus-IO 和 FreeRTOS-Plus-CLI 用于在 UART 上创建命令控制台并使用 I2C、SPI 和 GPIO 外围设备

相关跳线配置

跳线必须正确设置!相关跳线设置 如下图。
LPCXpresso 基板上的跳线设置,用于正确配置 SPI 和 I2C LPCXpresso 基板上的跳线设置,用于正确配置 OLED 显示 LPCXpresso 基板上的跳线设置,用于正确配置 7 段显示
如果您使用的是 ISP 引导加载程序,设置 J62 后, 还须移除 J54(可能仅 适用于 Rev B 基板)。
在此演示中,FreeRTOS-Plus-CLI 和 FreeRTOS-Plus-IO 用于 创建以下示例:

命令控制台
FreeRTOS-Plus-IO 和 FreeRTOS-Plus-CLI 用于创建命令 控制台。 UART3 用于输入和输出。

FreeRTOS-Plus-IO 零拷贝传输模式 用于传输字符,中断 驱动的字符队列传输模式 用于接收字符。

使用 FreeRTOS-Plus-CLI 注册六个命令。这些命令分别为 run-time-stats、task-stats、 echo-parameters、echo-3-parameters、create-task 以及 delete-task。

在命令控制台中输入“run-time-stats”, 以查看每个任务自创建以来 在运行状态中花费的时间。

在命令控制台中输入“task-stats”, 以查看任务状态信息的快照,包括 堆栈高水位线数据。

输入“echo-parameters”,然后输入一个或多个命令行 参数,以查看回显(可变)的数量的 参数。 该命令演示了定义和实现 可以采用任意数量参数的命令。

输入“echo-3-parameters”,然后输入三个命令行 参数,以查看回显的(固定)数量的 参数。 该命令演示了定义和实现 需要确切数量参数的命令。

输入“create-task”,然后输入一个数字参数, 以创建一个接受输入数字作为其任务 参数的任务。 该任务将在开始执行时打印(到命令控制台) 参数值。 “task-stats”命令 可用于查看正在运行的附加任务。

输入“delete-task”删除 使用“create-task”命令创建的任务。

交付时,UART3 设置 为 115200 波特率,无起始位,8 个数据位和 1 个停止位。 在基板上,UART3 通过 UART 到 USB 转换器 路由到标记为 X3 的微型 USB 连接器。 用于 连接到目标的终端程序必须配置为 发送带有换行符的行尾。 第 1 版精选 演示要求终端程序在本地回显键入的字符, 第 2 版则无此要求。


显示驱动程序
FreeRTOS-Plus-IO 用于实现 OLED 显示驱动程序。 I2C2 外围设备用于输出,因此 必须设置基板跳线,以针对 I2C 操作配置 OLED。

该示例演示了 I2C 端口的使用 (轮询 和中断驱动的零拷贝 传输模式下)。


串行 EEPROM 接口
FreeRTOS-Plus-IO 用于写入连接到 I2C2 外围设备的 EEPROM, 然后从其读取。

该示例演示了使用 I2C 端口 (轮询 和中断驱动的零拷贝 传输模式下)写入 EEPROM,以及在轮询和 中断驱动的循环缓冲区 传输模式下 从 EEPROM 读回。


七段显示器
此时结合使用 FreeRTOS-Plus-IO 与 配置为 SPI 模式的 SSP 外围设备。 建议首先查看 轮询传输模式 用于定时将递增数字写入 七段显示器。


GPIO
FreeRTOS 软件定时器用于 定期切换多色 LED。





FreeRTOS-Plus-IO 和 FreeRTOS-Plus-CLI 演示 2 功能

FreeRTOS-Plus-IO 和 FreeRTOS-Plus-CLI 用于在 telnet 套接字上创建命令控制台以访问文件系统。  此外,还创建了一个 Web 服务器。

相关跳线配置

跳线必须正确设置!相关跳线设置 如下图。 请注意,第一张图片中的设置 与演示 1 中显示的设置不同!
LPCXpresso 基板上的跳线设置,用于正确配置 SPI 和 I2C 演示 2 LPCXpresso 基板上的跳线设置,用于正确配置 OLED 显示 演示 2 LPCXpresso 基板上的跳线设置,用于正确配置 7 段显示 演示 2
如果您使用的是 ISP 引导加载程序,设置 J62 后, 还须移除 J54(可能仅 适用于 Rev B 基板)。
在此演示中,FreeRTOS-Plus-CLI、FreeRTOS-Plus-IO、 lwIPFatFS 用于创建以下示例。 注意: 必须插入 SD 卡 才能运行此演示!

适用于 FAT 文件系统的 SD 卡 MMC 驱动程序
FAT 兼容文件系统托管在 使用 SPI 接口的 SD 卡上。 FreeRTOS-Plus-IO API 与 SSP 外围设备搭配使用, 以提供必要的输入和输出。 FatFS 用于 提供文件系统功能。

该示例演示了 使用所有现有的 FreeRTOS-Plus-IO 传输模式写入 SD 卡并从中读取的文件。 文件名用于指示创建文件时 使用的模式,每个模式 创建 20 个文件。

可 使用 FreeRTOS-Plus-CLI 列出和操作这些文件,详见下文。


Telnet“类似”命令控制台
FreeRTOS-Plus-CLI 在 标准 telnet TCP/IP 端口(端口 23)上创建命令控制台。 lwIP 套接字 API 用于提供 TCP/IP 实现。

命令控制台使用 telnet 端口号, 可以使用标准 telnet 客户端访问, 但并不是 完整的 telnet 服务器。

该示例 使用由 configIP_ADDR0-configIP_ADDR3 常量 (该常量由 FreeRTOSConfig.h 定义)配置的静态 IP 地址。

使用 FreeRTOS-Plus-CLI 注册五个命令。这些命令分别为 用于操作文件系统的 dir、copy 和 del(见上文),以及 用于查看 FreeRTOS 任务信息的 run-time-stats 和 task-stats 。

在命令控制台中输入“dir”, 以查看文件系统目录列表。

在命令控制台中输入 "del <filename>", 以从 SD 卡中删除文件。

在命令控制台中输入 "copy <source_file> <destination_file>", 以复制文件。

在命令控制台中输入“run-time-stats”, 以查看每个任务自创建以来 在运行状态中花费的时间。

在命令控制台中输入“task-stats”, 以查看任务状态信息的快照,包括 堆栈高水位线数据。

用于 连接到目标的终端程序必须配置为 在本地发送带有换行符和回显键入字符的行尾 。


Web 服务器
lwIP RAW API 用于创建 简单的 Web 服务器。 Web 服务器使用 服务器端包含 (SSI) 来显示 任务状态和运行时间信息。


GPIO
FreeRTOS 软件定时器用于 定期切换多色 LED。



源文件和项目文件下载链接

构建这两个项目所需的所有源文件都包含在 同一 zip 文件中。


硬件平台和软件工具

两个演示都配置为 在安装到 LPCXpresso 基板 的 LPCXpresso LPC1769 CPU 板上运行。 LPCXpresso IDE 用于构建、 闪存和调试应用程序。


构建说明

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

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

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


  3. 点击 "Select Archive File" 单选按钮,确保 勾选 "Copy projects into workspace" 复选框,然后 导航到 第一步中下载的 zip 文件并进行选择。

    对话框将列出一些项目文件。 确保 选择了所有项目,然后单击 "Finish"。 导入过程将多次尝试创建文件, 因此会显示一个对话框, 警告文件可能被覆盖。 出现这种情况时,只需选择 "No to all" 选项即可。

    所有项目都需要导入。
    确保项目一一勾选,因为构建应用程序 需要所有项目。


  4. 导入的项目将出现在 LPCXpresso IDE 的项目 资源管理器窗口。 要构建演示 1,请在项目资源管理器中选择 "FreeRTOS-Plus-Demo-1", 然后从 IDE "Project" 菜单中 选择 "Build Project" 。 构建 FreeRTOS-Plus-Demo-1 会导致 构建其所有依赖项目。

    同样,要构建项目 2,请在项目窗口中选择 "FreeRTOS-Plus-Demo-2" 然后从 IDE "Project" 菜单 中选择 "Build Project" 。

    构建项目 1 的方法:选择 FreeRTOS-Plus-Demo-1,然后选择 "Build Project"。
    在项目资源管理器中先选择 FreeRTOS-Plus-Demo-1,然后选择 "Build Project"



连接硬件并启动调试会话

项目构建成功后:
  1. 在 LPCXpresso 基板上的 USB 接口和主计算机之间 连接一根 USB 电缆。 仅在第一条线连接完成后, 才能在 LPCXpresso CPU 开发板上的 调试 USB 接口和主计算机之间 连接第二条 USB 电缆。 注意:为成功启动调试会话, 此连接顺序非常重要。

  2. 每个演示需要的跳线设置稍微不同。 建议首先查看 请参见上述 演示旁的描述。 确保为所选演示正确设置了跳线, 如果选择演示 2, 还要确保已将 SD 卡插入基板上的相关连接器 (如果没有,演示将无法运行!)。

  3. 单击 LPCXpresso IDE 中的调试速度按钮 以启动调试会话。

    LPCXpresso IDE 中的调试速度按钮
    LPCXpresso IDE 中调试速度按钮的位置


浏览项目和目录

工作区包含以下五个项目:

项目 说明
CMSISv2p00_LPC17xx 这是 NXP Semiconductors 为 LPC17xx 系列 微控制器提供的标准 CMSIS 库。
lpc17xx.cmsis.driver.library 这是 NXP Semiconductors 为 LPC17xx 系列微控制器提供的外设驱动程序库。 部分 由 FreeRTOS-Plus-IO LPC17xx 端口层使用。 与 NXP Semiconductors 发布的代码相比,它只做了很少修改。
FreeRTOS-产品 包含 FreeRTOS 实时内核、FreeRTOS-Plus-CLI 和 FreeRTOS-Plus-IO 代码,分别放置在三个单独的目录中。 请注意,此项目实际上 并非是直接构建,而是由两个演示应用程序项目 引用其包含的源代码。 演示项目使用 工作区相对路径引用文件,因此项目 仅在位于工作区目录中时才会构建。
FreeRTOS-Plus-Demo-1 该项目包含演示 1 应用程序代码本身,该代码又 使用来自 FreeRTOS-Products 目录的源文件。
FreeRTOS-Plus-Demo-2 该项目包含演示 2 应用程序代码本身, 包括 FatFS 和 lwIP 源文件。 该项目还使用 来自 FreeRTOS-Products 目录的源文件。


软件组件许可

FreeRTOS-Plus-IO 和 FreeRTOS-Plus-CLI 根据各自的开源 许可提供。

lwIP and FatFS 是第三方开源产品,根据 各自的许可条款提供。


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

/ 启动 prettyprint... if (typeof PR !== 'undefined') { PR.prettyPrint() }