RT-Thread嵌入式操作系统到底是什么?超级详细

简介: RT-Thread 是一款开源嵌入式实时操作系统(Apache 2.0协议),支持多任务调度、模块化架构与高度可裁剪性。提供 Nano(3KB Flash)、完整版及 Smart 三版本,集成400+软件包(MQTT、LVGL、MicroPython等),适用于MCU至应用处理器的广泛IoT场景。

RT-Thread(Real Time-Thread)是一个嵌入式实时多线程操作系统。它的基本属性之一是支持多任务,而允许多个任务同时运行并不意味着处理器在同一时刻真的执行了多个任务。


事实上,一个处理器核心在某一时刻只能运行一个任务,由于每次处理器对一个任务的执行时间很短,任务与任务之间通过任务调度器进行非常快速的切换(调度器根据优先级决定此刻该执行的任务),因此给人造成一种多个任务在同一时刻同时运行的错觉。


在 RT-Thread 系统中,任务是通过线程实现的,RT-Thread 中的线程调度器就是以上提到的任务调度器。


RT-Thread 主要采用C语言编写,浅显易懂,方便移植。它把面向对象的设计方法应用到实时系统设计中,使得代码风格优雅,架构清晰,系统模块化,且可裁剪性非常好。


RT-Thread 目前有 3 个版本:

1) Nano 版

针对资源受限的 MCU(微控制器)系统,可通过方便易用的工具裁剪出仅需要 3KB Flash、1.2KB RAM 内存资源的 Nano版。

2) 完整版

资源丰富的物联网设备可使用 RT-Thread 完整版。RT-Thread 完整版通过在线的软件包管理工具、系统配置工具,可实现直观、快速的模块化裁剪,无缝地导入丰富的软件功能包,实现类似 Android 的图形界面以及触摸滑动效果,还具有智能语音交互等复杂功能。

3) Smart 版

带有 MMU,且基于 ARM9、ARM11 甚至 Cortex-A 系列 CPU 的应用处理器,可以使用 Smart 版本。该版本可以在 RT-Thread 操作系统的基础上启用独立、完整的进程,同时以混合微内核模式去执行。


相较于 Linux 操作系统,RT-Thread 体积小,成本低,功耗低,启动快。除此以外,RT-Thread 还具有实时性高、占用资源少等特点,非常适用于各种资源受限(如成本、功耗限制等)的场合。

1. RT-Thread 许可协议

RT-Thread 系统完全开源,遵循 Apache License 2.0 开源许可协议,可以免费在商业产品中使用,并且不需要公开私有代码。

2. RT-Thread 架构

近年来,物联网(Internet of Things, IoT)概念广为普及,物联网市场发展迅猛,嵌入式设备的联网已是大势所趋。终端联网使得软件复杂性大幅增加,传统的 RTOS 内核已经越来越难以满足市场的需求。在这种情况下,物联网操作系统(IoT OS)的概念应运而生。


物联网操作系统是指以操作系统内核(可以是 RTOS、Linux 等)为基础,包括如文件系统、图形库等较为完整的中间件组件,具备低功耗、安全特性,支持通信协议和云端连接能力的软件平台,RT-Thread 就是一个物联网操作系统。


RT-Thread 与其他很多 RTOS(如 FreeRTOS、uC/OS)的主要区别之一是,它不仅有实时内核,还具备丰富的中间层组件,如图1所示。


图1:RT-Thread 架构


RT-Thread 架构具体包括以下部分。

1) 硬实时内核层

RT-Thread 内核,这是 RT-Thread 的核心部分,包括了内核系统中对象的实现,例如多线程及其调度、信号量、邮箱、消息队列、内存管理、定时器等。


另外内核层还包括 libcpu/BSP(芯片移植相关文件/板级支持包),它与硬件密切相关,由外设驱动和 CPU 移植文件构成。

2) 组件与服务层

组件是基于 RT-Thread 内核之上的上层软件,例如虚拟文件系统、FinSH 命令行界面、网络框架、设备框架等。采用模块化设计,能够做到组件内部高内聚,组件之间低耦合。

3) 软件包层

运行于 RT-Thread 物联网操作系统平台上,是面向不同应用领域的通用软件组件,由描述信息、源代码或库文件组成。


RT-Thread 提供了开放的软件包平台。平台上存放了官方提供或开发者提供的软件包,为开发者提供了众多可重用软件包,是 RT-Thread 生态的重要组成部分。这些软件包具有很强的可重用性,模块化程度很高,可让应用开发者在最短时间内打造出自己想要的系统。


RT-Thread 支持的软件包数量已经达到 400 多个,举例如下。

  1. 物联网相关的软件包:Paho MQTT、WebClient、mongoose、WebTerminal 等。
  2. 脚本语言相关的软件包:目前支持 JerryScript、MicroPython、Lua、PikaScript。
  3. 多媒体相关的软件包:LVGL、Openmv、mupdf、STemWin、TinyJPEG 等。
  4. 工具类软件包:CmBacktrace、EasyFlash、EasyLogger、SystemView。
  5. 系统相关的软件包:FlashDB、littlefs、MCUboot、lwext4、partition、SQLite 等。
  6. 外设库与驱动类软件包:各类传感器、rosserial、Nordic nRF5_SDK 等。
  7. 嵌入式 AI 软件包:ONNX、TensorFlow Lite、μLAPack、libann、NNoM 等。

3. RT-Thread 源码获取

RT-Thread 源码获取有几种途径。


另外,读者还可通过 RT-Thread Studio 创建 RT-Thread 工程,通过 IDE 下载源码并将其加入工程中。

4. 芯片对接 RT-Thread 流程

当有一款芯片想要对接 RT-Thread 时,可以根据图2中的流程进行对接。


图2:芯片对接 RT-Thread 流程

第1步

查看是否是 RT-Thread 支持的架构:

第2步

进行 BSP 移植需要完成的基本工作如下:

  • 初始化 CPU 内部寄存器,设定 RAM 工作时序。
  • 实现时钟驱动及中断控制器驱动,完善中断管理。
  • 实现串口和 GPIO 驱动。
  • 初始化动态内存堆,实现动态堆内存管理。


此时还要注意一种情况,判断是否为 STM32 系列,若是,则进行 STM32 BSP 移植。可以参考 STM32 BSP 制作教程进行移植,教程链接如下:

https://www.rt-thread.org/document/site/#/rt-thread-version/rt-thread-standard/tutorial/make-bsp/stm32-bsp/stm32-bsp

第3步

驱动移植,即参考本书中的驱动教程完成相应的驱动移植,最后进行驱动验证。

目录
相关文章
|
9天前
|
NoSQL 编译器 C语言
【2026最新】Dev C++下载、安装、使用保姆级指南(附官方安装包)
Dev C++ 是一款免费开源、轻量高效的 Windows 平台 C/C++ 集成开发环境,内置 MinGW/GCC 编译器与 GDB 调试器,体积小、启动快、兼容性强,广泛用于蓝桥杯、ACM 等算法竞赛,推荐使用稳定经典的 Orwell 版本(v5.11)。
386 2
阿里云弹性公网EIP香港精品和BGP多线有什么区别?
阿里云弹性公网EIP中国香港地域分为BGP(多线)和BGP(多线)_精品,二者的区别在于香港回中国大陆是否绕行,BGP(多线)回中国大陆将绕行国际运营商出口,需要优化香港回中国大陆时延,建议使用BGP(多线)_精品。阿里云百科来详细说下阿里云弹性公网IP香港BGP(多线)和BGP(多线)_精品的区别:
1216 0
阿里云弹性公网EIP香港精品和BGP多线有什么区别?
|
9天前
|
安全 Linux 虚拟化
【保姆级】VMware虚拟机下载、安装、实战演练一文搞定(2026最新)
VMware Workstation 是专业桌面虚拟化软件,支持在单台物理机上并行运行多个操作系统,具备快照、虚拟网络、拖放传输等功能,安全隔离,不干扰主机数据。
344 0
阿里云弹性公网EIP香港BGP多线和精品BGP多线的区别
BGP(多线)和BGP(多线)_精品区别在于香港回中国大陆是否绕行国际出口,如果用于香港本地使用、香港本地和海外使用,选择BGP(多线)即可,如果香港EIP需要返回大陆,那么建议选择BGP(多线)_精品。例如阿里云百科搭建网站不想备案,使用香港EIP,网站访客集中在中国大陆地区,那么选择BGP(多线)_精品线路会更快一些
3802 0
阿里云弹性公网EIP香港BGP多线和精品BGP多线的区别
|
数据安全/隐私保护
Ansible报错:“msg“: “Invalid/incorrect password: Permission denied, please try again.“
Ansible报错:“msg“: “Invalid/incorrect password: Permission denied, please try again.“
1663 0
Ansible报错:“msg“: “Invalid/incorrect password: Permission denied, please try again.“
|
人工智能 Ubuntu
【Ubuntu工具】踩坑记录:Ubuntu18.04安装FlameShot截图工具及使用方法
【Ubuntu工具】踩坑记录:Ubuntu18.04安装FlameShot截图工具及使用方法
1195 0
|
SQL 数据库 关系型数据库
【SQL注入】 注入神器sqlmap的使用
数据库 SQL注入漏洞 sqlmap
1131 2
|
存储 算法 安全
操作系统基础
操作系统基础
521 0
|
存储 缓存 算法
LRU(Least Recently Used)算法原理
LRU(Least Recently Used)算法原理
1884 0
|
6月前
|
人工智能 Linux API
阿里云轻量服务器及本地MacOS/Linux/Windows11部署OpenClaw步骤流程+千问Qwen3.6-Plus配置及常见问题解答
本文完整覆盖**2026年阿里云轻量服务器部署及本地MacOS/Linux/Windows11部署OpenClaw(Clawdbot)步骤流程及阿里云千问Qwen3.6-Plus配置及常见问题解答**,从部署前环境预检到服务优化,从核心API配置到高频问题排查,全程实战化、可复制、零冗余。掌握本文内容,即可避开90%的新手陷阱,快速让OpenClaw成为办公、学习、生活中的高效自动化助手,真正释放AI的落地价值。
633 0