RT-Thread/rt-thread

GitHub: RT-Thread/rt-thread

RT-Thread 是一个开源的物联网实时操作系统,专为资源受限的嵌入式设备设计,支持丰富的组件和软件包生态。

Stars: 11847 | Forks: 5362

**English** | [中文](README_zh.md) | [Español](README_es.md) | [Deutsch](README_de.md) [![GitHubStars](https://img.shields.io/github/stars/RT-Thread/rt-thread?style=flat-square&logo=GitHub)](https://github.com/RT-Thread/rt-thread/stargazers) [![GiteeStars](https://gitee.com/rtthread/rt-thread/badge/star.svg?theme=gvp)](https://gitee.com/rtthread/rt-thread/stargazers) [![GitHub](https://img.shields.io/github/license/RT-Thread/rt-thread.svg)](https://github.com/RT-Thread/rt-thread/blob/master/LICENSE) [![GitHub release](https://img.shields.io/github/release/RT-Thread/rt-thread.svg)](https://github.com/RT-Thread/rt-thread/releases) [![Gitter](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/RT-Thread/rt-thread?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge) [![GitHub pull-requests](https://img.shields.io/github/issues-pr/RT-Thread/rt-thread.svg)](https://github.com/RT-Thread/rt-thread/pulls) [![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat)](https://github.com/RT-Thread/rt-thread/pulls) [![RT-Thread BSP Static Build Check](https://static.pigsec.cn/wp-content/uploads/repos/2026/03/e3936d0264112156.svg)](https://github.com/RT-Thread/rt-thread/actions/workflows/bsp_buildings.yml) Featured|HelloGitHub # RT-Thread RT-Thread 诞生于 2006 年,是一个开源、中立、社区化的实时操作系统(RTOS)。 RT-Thread 主要使用 C 语言编写,通俗易懂且容易移植(可快速移植到主流 MCU 和模块芯片上)。它将面向对象的编程方法应用于实时系统设计,使得代码风格优雅、结构清晰、模块化且可裁剪性极强。 RT-Thread 分为标准版和 Nano 版。对于资源受限的微控制器(MCU)系统,Nano 版本仅需 3KB Flash 和 1.2KB RAM 内存资源,可通过简单易用的工具进行裁剪。对于资源丰富的物联网设备,RT-Thread 可以使用在线软件包管理工具,配合系统配置工具,实现直观快速的模块化裁剪,无缝导入丰富的软件包,从而实现类似 Android 的图形界面和触摸滑动效果、智能语音交互效果等复杂功能。 ## RT-Thread 架构 RT-Thread 不仅拥有实时内核,还拥有丰富的组件。其架构如下所示: ![architecture](https://static.pigsec.cn/wp-content/uploads/repos/2026/03/e271162a84112208.png) 它包括: - 内核层:RT-Thread 内核,是 RT-Thread 的核心部分,包括内核系统中对象的实现,例如多线程及其调度、信号量、邮箱、消息队列、内存管理、定时器等;libcpu/BSP(芯片移植相关文件/板级支持包)与硬件密切相关,由外设驱动和 CPU 移植组成。 - 组件和服务层:组件是基于 RT-Thread 内核的上层软件,例如虚拟文件系统、FinSH 命令行界面、网络框架、设备框架等。其模块化设计实现了组件内部的高内聚和组件之间的低耦合。 - [RT-Thread 软件包](https://packages.rt-thread.org/en/index.html):运行在 RT-Thread IoT 操作系统平台上的通用软件组件,面向不同的应用领域,由描述信息、源代码或库文件组成。RT-Thread 提供了开放的软件包平台,其中包含官方提供或开发者提供的软件包,为开发者提供了可重用软件包的选择,这些软件包是 RT-Thread 生态系统的重要组成部分。软件包生态系统对于操作系统的选择至关重要,因为这些软件包具有高度的可重用性和模块化,便于应用程序开发者在最短的时间内构建所需的系统。RT-Thread 目前支持 450 多个软件包。 ## RT-Thread 特性 - 专为资源受限设备设计,最小内核仅需 1.2KB RAM 和 3 KB Flash。 - 多种标准接口,例如 POSIX、CMSIS、C++ 应用环境。 - 拥有丰富的组件和繁荣且快速增长的软件包生态系统。 - 优雅的代码风格,易于使用、阅读和掌握。 - 高可扩展性。RT-Thread 拥有高质量的可扩展软件架构,松耦合、模块化,易于裁剪和扩展。 - 支持高性能应用。 - 支持所有主流编译工具,例如 GCC、Keil 和 IAR。 - 支持广泛的架构和芯片。 ## 代码目录 RT-Thread 源代码目录如下所示: | 名称 | 描述 | | ------------- | ------------------------------------------------------- | | bsp | 基于各种开发板移植的板级支持包 | | components | 组件,例如 finsh shell、文件系统、协议栈等 | | documentation | 相关文档,如编码风格、doxygen 等 | | examples | 相关示例代码 | | include | RT-Thread 内核头文件 | | libcpu | CPU 移植代码,如 ARM/MIPS/RISC-V 等 | | src | RT-Thread 内核源文件 | | tools | RT-Thread 命令构建工具的脚本文件 | RT-Thread 目前已移植到近 200 块开发板上,大多数 BSP 支持 MDK、IAR 开发环境和 GCC 编译器,并提供了默认的 MDK 和 IAR 工程,允许用户直接在工程基础上添加自己的应用代码。每个 BSP 都有相似的目录结构,大多数 BSP 都提供 README.md 文件,这是一个 markdown 格式的文件,包含 BSP 的基本介绍,并介绍如何简单地开始使用 BSP。 # 资源 ## 支持的架构 RT-Thread 支持多种架构,涵盖了当前应用中的主要架构。涉及的架构和芯片厂商: - **ARM Cortex-M0/M0+**:厂商如 ST - **ARM Cortex-M3**:厂商如 ST、Winner Micro、MindMotion 等。 - **ARM Cortex-M4**:厂商如 ST、Infineon、Nuvoton、NXP、[Nordic](https://github.com/RT-Thread/rt-thread/tree/master/bsp/nrf5x)、GigaDevice、Realtek、Ambiq Micro 等。 - **ARM Cortex-M7**:厂商如 ST、NXP - **ARM Cortex-M23**:厂商如 GigaDevice - **ARM Cortex-M33**:厂商如 ST - **ARM Cortex-R4** - **ARM Cortex-A8/A9**:厂商如 NXP - **ARM7**:厂商如 Samsung - **ARM9**:厂商如 Allwinner、Xilinx 、GOKE - **ARM11**:厂商如 Fullhan - **MIPS32**:厂商如 loongson、Ingenic - **RISC-V RV32E/RV32I[F]/RV64[D]**:厂商如 sifive、[Canaan Kendryte](https://github.com/RT-Thread/rt-thread/tree/master/bsp/k210)、[bouffalo_lab](https://github.com/RT-Thread/rt-thread/tree/master/bsp/bouffalo_lab)、[Nuclei](https://nucleisys.com/)、[T-Head](https://www.t-head.cn/)、[HPMicro](https://github.com/RT-Thread/rt-thread/tree/master/bsp/hpmicro) - **ARC**:厂商如 SYNOPSYS - **DSP**:厂商如 TI - **C-Sky** - **x86** ## 支持的 IDE 和编译器 RT-Thread 主要支持的 IDE/编译器有: - RT-Thread Studio IDE - MDK KEIL - IAR - GCC ## RT-Thread Studio IDE [用户手册](https://www.rt-thread.io/document/site/rtthread-studio/um/studio-user-manual/) | [教程视频](https://youtu.be/ucq5eJgZIQg) RT-Thread Studio IDE(简称 RT-Studio)是由 RT-Thread 团队打造的一站式集成开发环境。它拥有易于使用的图形化配置系统和丰富的软件包及组件资源。RT-Studio 具备项目创建、配置和管理,以及代码编辑、SDK 管理、构建配置、调试配置、程序下载和调试等功能。我们致力于让 RT-Studio 的使用尽可能直观,减少重复工作,提高开发效率。 ![studio](https://static.pigsec.cn/wp-content/uploads/repos/2026/03/be158f6eb2112222.gif) ## Env 工具 [用户手册](documentation/env/env.md) | [教程视频](https://www.youtube.com/watch?v=dEK94o_YoSo) 在早期阶段,RT-Thread 团队还创建了一个名为 Env 的辅助工具。它是一个带有 TUI(文本用户界面)的辅助工具。开发者可以使用 Env 工具来配置并生成 GCC、Keil MDK 和 IAR 工程。 ![env](https://static.pigsec.cn/wp-content/uploads/repos/2026/03/a352b44904112236.png) # 快速入门 [RT-Thread 编程指南](https://www.rt-thread.io/document/site/tutorial/quick-start/introduction/introduction/) | [RT-Thread Studio IDE](https://www.rt-thread.io/studio.html) | [内核示例](https://github.com/RT-Thread-packages/kernel-sample) | [RT-Thread 入门指南](https://www.youtube.com/watch?v=ZMi1O-Rr7yc&list=PLXUV89C_M3G5KVw2IerI-pqApdSM_IaZo) 基于 [STM32F103 BluePill](https://github.com/RT-Thread/rt-thread/tree/master/bsp/stm32/stm32f103-blue-pill) | [Raspberry Pi Pico](https://github.com/RT-Thread/rt-thread/tree/master/bsp/raspberry-pico) ## 模拟器 RT-Thread BSP 可以直接编译并下载到相应的开发板上使用。此外,RT-Thread 还提供了 qemu-vexpress-a9 BSP,可在没有硬件平台的情况下使用。详情请参阅下面的入门指南。使用 Env 的 QEMU 入门: [Windows](documentation/2.quick-start/quick_start_qemu/quick_start_qemu_windows.md) | [Linux Ubuntu](documentation/2.quick-start/quick_start_qemu/quick_start_qemu_linux.md) | [Mac OS](documentation/2.quick-start/quick_start_qemu/quick_start_qemu_macos.md) # 许可证 RT-Thread 遵循 Apache License 2.0 开源软件许可证。它完全开源,可免费用于商业应用,无需公开代码,且无潜在商业风险。许可证信息和版权信息通常可在代码开头看到: ``` /* Copyright (c) 2006-2018, RT-Thread Development Team * * SPDX-License-Identifier: Apache-2.0 * ... */ ``` # 贡献 如果你对 RT-Thread 感兴趣,并想参与 RT-Thread 的开发成为代码贡献者,请参考 [代码贡献指南](.github/CONTRIBUTING.md)。 ## 感谢以下贡献者!
标签:BSP, IoT, IoT OS, MCU, RTOS, RT-Thread, 中间件, 内核, 固件开发, 实时操作系统, 客户端加密, 嵌入式开发, 嵌入式系统, 工业控制, 底层开发, 开源操作系统, 微控制器, 智能家居, 智能硬件, 物联网操作系统, 组件, 网络安全监控, 身份验证强制, 面向对象编程, 驱动开发