Skip to main content

Documentation Index

Fetch the complete documentation index at: https://mintlify.com/dsyx/docs.silabs.com_zh/llms.txt

Use this file to discover all available pages before exploring further.

Silicon Labs OpenThread SDK 提供了对 FreeRTOS 的支持。FreeRTOS 是一个功能齐全、广泛应用于微控制器和小型微处理器的 RTOS(Real-Time Operating System,实时操作系统)。对 FreeRTOS 的支持已集成到 Simplicity Studio 中。EFR32MGxx 全系列均支持 FreeRTOS。
FreeRTOS 官方文档请访问 https://www.freertos.org/。Silicon Labs 建议应用程序开发者直接使用 FreeRTOS 原生 API,而不是通过 CMSIS-RTOS2 抽象层访问。

在项目中启用 FreeRTOS

要将 FreeRTOS 集成到您的应用程序中,只需在 Simplicity Studio 中为项目安装 FreeRTOS 组件即可。ot-ble-dmp 示例应用程序默认在 FreeRTOS 上运行,您也可以将 FreeRTOS 添加到任何 OpenThread 项目。ot-cli-ftd 示例应用程序是一个很好的开始示例。
1

打开项目配置文件

在 Simplicity Studio 的 Project Explorer 中,双击目标项目的 .slcp 文件,打开项目配置窗口。
2

进入软件组件选项卡

在项目窗口中,点击 SOFTWARE COMPONENTS 选项卡,查看完整的组件类别列表。
3

找到 FreeRTOS 组件

在组件列表中,展开 RTOS > FreeRTOS 分类,找到 FreeRTOS 组件条目。
4

安装 FreeRTOS 组件

选中 FreeRTOS,点击 Install 按钮。安装此组件将自动引入以下内容到您的项目:
  • 所有 FreeRTOS 内核源文件
  • Silicon Labs 提供的集成文件
  • FreeRTOS 所依赖的附加组件(自动解析依赖)
5

查看并配置依赖项

安装完成后,点击 View Dependencies 查看所有依赖组件:
  • CMSIS-RTOS2 组件:这是集成文件使用的 RTOS 抽象层。Silicon Labs 建议直接使用 FreeRTOS API 而非 CMSIS-RTOS2 API。
  • FreeRTOS 堆实现组件:FreeRTOS 提供 5 种堆管理实现,默认安装 FreeRTOS Heap 4。您可以通过选择不同的堆组件并点击 Install 来更改此设置。例如,FreeRTOS Heap 3 使用系统的 malloc()free() 实现,是一个常见的选择。

FreeRTOS 任务模型

FreeRTOS 组件设计为与标准的 Silicon Labs main.c 模板配合使用。标准的 main 函数适用于裸机(bare-metal)和基于内核的项目,负责所有必需的系统初始化和任务创建。 对于在 FreeRTOS 上运行的 OpenThread,会创建单一的 OpenThread 任务,该任务同时运行 OpenThread 协议栈和应用程序逻辑。
从其他 FreeRTOS 任务中调用 OpenThread API 是不安全的。所有 OpenThread API 调用必须在 OpenThread 任务上下文中执行。

裸机与 FreeRTOS 应用回调对比

在裸机(bare-metal)和 FreeRTOS 两种模式下,应用逻辑的放置位置有所不同:
  • 裸机模式:应用程序逻辑放置在 app_process_action() 回调中。
  • FreeRTOS 模式:应用程序逻辑放置在 sl_ot_rtos_application_tick() 回调中。

相关资源

FreeRTOS 官方文档

FreeRTOS 官方文档,涵盖 API 参考、移植指南和应用示例。

开发者指南

OpenThread 开发者指南,了解各专项领域详细的技术信息。

Build docs developers (and LLMs) love