实时操作系统-RT-Thread


实时线程操作系统(RT-Thread)是一款主要由中国开源社区主导开发的开源实时操作系统(许可证GPLv2)。实时线程操作系统不仅仅是一个单一的实时操作系统内核,它也是一个完整的应用系统,包含了实时、嵌入式系统相关的各个组件:TCP/IP协议栈,文件系统,libc接口,图形用户界面等。大多数源代码都基于 GNU GPL 许可协议下发布。于 2006 年首次推出,作为一个开源实时操作系统,旨在为各种资源受限的设备提供高效的解决方案;主要用 C 语言编写,采用面向对象的编程方法,使得代码结构优雅、模块化、易于理解及移植。它能够快速适配多种主流微控制器(MCU)和模块芯片。
RT-Thread Studio 是一站式的 RT-Thread 开发工具,通过简单易用的图形化配置系统以及丰富的软件包和组件资源,让物联网开发变得简单和高效。主要包括工程创建和管理、代码编辑、SDK管理、RT-Thread配置、构建配置、调试配置、程序下载和调试等功能,结合图形化配置系统以及软件包和组件资源,减少重复工作,提高开发效率。

版本
RT-Thread 目前有两个主要版本:标准版和 Nano 版。Nano 版适用于资源受限的 MCU 系统,仅需求 3KB Flash 和 1.2KB RAM 内存,非常适合低功耗应用。而针对资源丰富的 IoT 设备,标准版则通过在线软件包管理工具及系统配置工具,实现更复杂的功能,包括 Android 图形界面及语音交互等。

特点
RT-Thread 的设计旨在占据物联网生态的核心位置,其主要特点包括:
低资源需求:最小内核仅需要 1.2KB RAM 和 3KB Flash,适合资源受限的设备。
丰富的接口:提供多种标准接口,如 POSIX、CMSIS 及 C++ 应用环境。
模块化和可扩展性:具有高质量的可扩展软件架构,模块化设计便于用户根据需求进行定制和扩展。
广泛的架构支持:支持 ARM、MIPS、RISC-V 和 x86 等多种架构,且与主流编译工具如 GCC、Keil 和 IAR 完全兼容。
资源
RT-Thread 支持广泛的架构和芯片,包括:
ARM Cortex 系列(M0、M3、M4、M7 等);
MIPS32 和 RISC-V 系列;
x86 等。
架构

同时它还支持多种集成开发环境(IDE)和编译器,如 RT-Thread Studio IDE、MDK KEIL、IAR 和 GCC。RT-Thread 提供丰富的资源和文档,帮助用户快速上手。其集成开发环境 RT-Thread Studio IDE,具有图形化配置系统和丰富的软件包资源,使项目创建与管理变得简单高效。用户还可以利用 Env 工具配置与生成 GCC、Keil MDK 和 IAR 项目。另外 RT-Thread 还支持无需硬件平台的 QEMU 模拟器,用户可以直接编译和下载 BSP,以便进行开发和测试。它以其强大的功能和解决方案,在物联网开发中展现出无可比拟的优势。无论是新手还是资深开发者,RT-Thread 都是实现创新应用的理想选择。
主要特征
简洁的内核对象模型
* 基于优先级的全抢占式调度:
o 支持相同优先级线程
o 相同优先级线程采用时间片轮转调度
* 丰富的同步、任务间通信机制
o 信号量、互斥锁
o 邮箱
o 消息队列
o 事件
* 灵活的内存管理方式
o 满足实时性要求的静态内存分配
o 小内存系统管理及大内存系统的slab内存分配算法
* 可嵌套的中断支持
* 一些其他功能特征...
社区版本永久免费
支持主流C/C++语言开发
强大的代码编辑和重构功能
SDK管理器支持在线下载更新 RT-Thread 最新源码包
简单易用的工程创建向导,快速验证原型
全新图形化配置系统,同时支持架构图和树形图配置
软件包市场提供丰富的可用软件包资源
丰富的调试功能,快速查看和跟踪定位代码问题
RT-Thread Smart 致力于物联网和边缘计算领域的开源
2022年5月上旬消息,RT-Thread项目的研发团队花了两年时间,研发出了该项目的最新成果:RT-Thread Smart。这是一款微内核的操作系统,主要针对中高端的处理器,如具有内存管理单元(MMU)的 RISC-V 或 Arm Cortex-A,为嵌入式领域的所有行业提供了一个具有竞争力的、基于 POSIX 的软件平台。
谁需要 RT-Thread Smart
这是一款专业的、高性能的微内核操作系统,用于实时应用。它为所有市场的嵌入式设备提供了开源基础,如安全(IP 摄像头)、工业控制、车载设备、消费电子及其他嵌入式科技应用,可谓一切场景。它的意义在于:不像传统的物联网操作系统,一个微内核的操作系统可以填补传统实时操作系统 RTOS 和相对大型的操作系统如 Linux 之间的空白,实现实时性能、成本、安全、启动速度等等各方面之间的最佳平衡。
产品架构
它通过 MMU 和系统调用将系统分割为内核模式和用户模式,并为每种模式区分了地址空间(一个 32 位系统可以提供 4G 地址空间)。

其内核包括平台的基础功能,并支持定制化。RT-Thread Smart 的用户应用环境使用 musl.libc.org 来提供 opensource.com 接口调用和 C 语言的运行时支持。它也继承了原始的 RT-Thread 生态系统,使用 scons.org 或者其他编译工具如 opensource.com、Makefile、opensource.com 等等来支持开发,以及 RT-Thread 开箱即用的在线软件包(撰写本文时超过 342 个)。甚至可以将 Linux 应用程序(如 wget/cURL、BusyBox、OpenSSL 和 Simple DirectMedia Layer)移植到平台。
压缩的 RT-Thread Smart 内核仅 217 KB,搭配一个 127 KB 的根文件系统。大约 2 MB的存储占用。包括了对文件系统、网络协议栈、多媒体的完整支持。RT-Thread 只需要 3 到 5 秒完成启动,而在不运行其他功能组件时,RT-Thread Smart 需要的启动及准备时间不到 500ms。
通过其集成的 Persimmon 用户界面(UI)组件,RT-Thread Smart 从上电到运行 UI 需要大约 1 秒。换句话说,这是一个非常轻巧快速的系统。当然,“实时”不是指启动,而是指系统随着时间推进而表现出的一致性。对于 RT-Thread ,实时性能需要优先考虑,中断时延小于 1μs,满足大部分实时性要求严格的场景需求。
RT-Thread Smart 和 RT-Thread
你可能想知道 RT-Thread Smart 和 RT-Thread 之间的不同。简言之,RT-Thread Smart 是一个基于 RT-Thread RTOS 的操作系统,但它整合了用户态的处理过程。RT-Smart 的内核部分本质上是 RT-Thread RTOS,它在虚拟地址上运行,增加了进程管理,使用进程间通信机制(IPC)、虚拟内存/地址空间管理、ELF 加载器等等,以上特性全部在 RT-Thread RTOS 内实现,当这些组件被禁用时,RT-Smart 会回归 RT-Thread RTOS。
以下是对比:
RT-Thread RTOS 非常紧凑,它的所有应用和子系统都编译到镜像中,多线程应用运行并分享相同的地址空间。RT-Thread Smart 是独立的。系统和应用是分别编译和运行的。应用拥有完整且互相隔离的地址空间。它也继承了 RT-Thread 优秀的实时性,同时也具有 POSIX 环境的特性。类似地,它们都与 RT-Thread API 兼容。RT-Thread RTOS 的应用可以被平滑移植到 RT-Thread Smart。
嵌入式开源
RT-Thread Smart 是一个开源项目,可以下载代码和文档并尝试,并提交评论和反馈,将该项目传播给更多开源倡导者。嵌入式系统属于它们的用户,有太多的嵌入式开发人员没有找到太多可用的嵌入式系统。如果是开发人员,请帮助改进 RT-Thread Smart。随着 RT-Thread 项目的不断推进,希望创建物联网和边缘计算的令人激动的开源世界。
RTOS版本更新录(202x)
官方主页:http://www.rt-thread.org/
RT-Thread Studio 是一站式的 RT-Thread 开发工具,通过简单易用的图形化配置系统以及丰富的软件包和组件资源,让物联网开发变得简单和高效。主要包括工程创建和管理、代码编辑、SDK管理、RT-Thread配置、构建配置、调试配置、程序下载和调试等功能,结合图形化配置系统以及软件包和组件资源,减少重复工作,提高开发效率。

版本
RT-Thread 目前有两个主要版本:标准版和 Nano 版。Nano 版适用于资源受限的 MCU 系统,仅需求 3KB Flash 和 1.2KB RAM 内存,非常适合低功耗应用。而针对资源丰富的 IoT 设备,标准版则通过在线软件包管理工具及系统配置工具,实现更复杂的功能,包括 Android 图形界面及语音交互等。

特点
RT-Thread 的设计旨在占据物联网生态的核心位置,其主要特点包括:
低资源需求:最小内核仅需要 1.2KB RAM 和 3KB Flash,适合资源受限的设备。
丰富的接口:提供多种标准接口,如 POSIX、CMSIS 及 C++ 应用环境。
模块化和可扩展性:具有高质量的可扩展软件架构,模块化设计便于用户根据需求进行定制和扩展。
广泛的架构支持:支持 ARM、MIPS、RISC-V 和 x86 等多种架构,且与主流编译工具如 GCC、Keil 和 IAR 完全兼容。
资源
RT-Thread 支持广泛的架构和芯片,包括:
ARM Cortex 系列(M0、M3、M4、M7 等);
MIPS32 和 RISC-V 系列;
x86 等。
架构

同时它还支持多种集成开发环境(IDE)和编译器,如 RT-Thread Studio IDE、MDK KEIL、IAR 和 GCC。RT-Thread 提供丰富的资源和文档,帮助用户快速上手。其集成开发环境 RT-Thread Studio IDE,具有图形化配置系统和丰富的软件包资源,使项目创建与管理变得简单高效。用户还可以利用 Env 工具配置与生成 GCC、Keil MDK 和 IAR 项目。另外 RT-Thread 还支持无需硬件平台的 QEMU 模拟器,用户可以直接编译和下载 BSP,以便进行开发和测试。它以其强大的功能和解决方案,在物联网开发中展现出无可比拟的优势。无论是新手还是资深开发者,RT-Thread 都是实现创新应用的理想选择。
主要特征
简洁的内核对象模型
* 基于优先级的全抢占式调度:
o 支持相同优先级线程
o 相同优先级线程采用时间片轮转调度
* 丰富的同步、任务间通信机制
o 信号量、互斥锁
o 邮箱
o 消息队列
o 事件
* 灵活的内存管理方式
o 满足实时性要求的静态内存分配
o 小内存系统管理及大内存系统的slab内存分配算法
* 可嵌套的中断支持
* 一些其他功能特征...
社区版本永久免费
支持主流C/C++语言开发
强大的代码编辑和重构功能
SDK管理器支持在线下载更新 RT-Thread 最新源码包
简单易用的工程创建向导,快速验证原型
全新图形化配置系统,同时支持架构图和树形图配置
软件包市场提供丰富的可用软件包资源
丰富的调试功能,快速查看和跟踪定位代码问题
RT-Thread Smart 致力于物联网和边缘计算领域的开源
2022年5月上旬消息,RT-Thread项目的研发团队花了两年时间,研发出了该项目的最新成果:RT-Thread Smart。这是一款微内核的操作系统,主要针对中高端的处理器,如具有内存管理单元(MMU)的 RISC-V 或 Arm Cortex-A,为嵌入式领域的所有行业提供了一个具有竞争力的、基于 POSIX 的软件平台。
谁需要 RT-Thread Smart
这是一款专业的、高性能的微内核操作系统,用于实时应用。它为所有市场的嵌入式设备提供了开源基础,如安全(IP 摄像头)、工业控制、车载设备、消费电子及其他嵌入式科技应用,可谓一切场景。它的意义在于:不像传统的物联网操作系统,一个微内核的操作系统可以填补传统实时操作系统 RTOS 和相对大型的操作系统如 Linux 之间的空白,实现实时性能、成本、安全、启动速度等等各方面之间的最佳平衡。
产品架构
它通过 MMU 和系统调用将系统分割为内核模式和用户模式,并为每种模式区分了地址空间(一个 32 位系统可以提供 4G 地址空间)。

其内核包括平台的基础功能,并支持定制化。RT-Thread Smart 的用户应用环境使用 musl.libc.org 来提供 opensource.com 接口调用和 C 语言的运行时支持。它也继承了原始的 RT-Thread 生态系统,使用 scons.org 或者其他编译工具如 opensource.com、Makefile、opensource.com 等等来支持开发,以及 RT-Thread 开箱即用的在线软件包(撰写本文时超过 342 个)。甚至可以将 Linux 应用程序(如 wget/cURL、BusyBox、OpenSSL 和 Simple DirectMedia Layer)移植到平台。
压缩的 RT-Thread Smart 内核仅 217 KB,搭配一个 127 KB 的根文件系统。大约 2 MB的存储占用。包括了对文件系统、网络协议栈、多媒体的完整支持。RT-Thread 只需要 3 到 5 秒完成启动,而在不运行其他功能组件时,RT-Thread Smart 需要的启动及准备时间不到 500ms。
通过其集成的 Persimmon 用户界面(UI)组件,RT-Thread Smart 从上电到运行 UI 需要大约 1 秒。换句话说,这是一个非常轻巧快速的系统。当然,“实时”不是指启动,而是指系统随着时间推进而表现出的一致性。对于 RT-Thread ,实时性能需要优先考虑,中断时延小于 1μs,满足大部分实时性要求严格的场景需求。
RT-Thread Smart 和 RT-Thread
你可能想知道 RT-Thread Smart 和 RT-Thread 之间的不同。简言之,RT-Thread Smart 是一个基于 RT-Thread RTOS 的操作系统,但它整合了用户态的处理过程。RT-Smart 的内核部分本质上是 RT-Thread RTOS,它在虚拟地址上运行,增加了进程管理,使用进程间通信机制(IPC)、虚拟内存/地址空间管理、ELF 加载器等等,以上特性全部在 RT-Thread RTOS 内实现,当这些组件被禁用时,RT-Smart 会回归 RT-Thread RTOS。
以下是对比:
RT-Thread | RT-Thread Smart | |
---|---|---|
支持芯片 | Cortex-M/R、RISC-V RV32IMAC(以及类似)、Cortex-A MPU | Cortex-A 等具有 MMU 的 MPU |
编译 | 内核和应用都编译到一个镜像 | 内核和应用可以被分开编译和运行 |
存储 | 使用线性地址空间(即使有 MMU),使用物理地址的虚拟寻址 | 运行在内核占用超过 1GB 的 32 位操作系统,拥有完整 4G 地址空间的用户态进程彼此隔离,外设驱动程序必须通过虚拟地址访问外设 |
运行错误 | 当一个应用程序失败时,整个系统就会崩溃 | 当应用程序失败时,它不会影响内核和其他进程的执行 |
运行模式 | 多线程模型 | 多进程模型(进程内支持多线程,内核线程由内核支持) |
用户模型 | 单用户模型 | 单用户模型 |
API | RT-Thread API、POSIX PSE52 | RT-Thread API(内核态和用户态),以及完整的 POSIX API |
实时性 | 抢占式硬实时系统 | 抢占式硬实时系统 |
资源使用 | 非常小 | 相对小 |
调试 | 通常需要模拟器调试 | 支持 GDB 调试,不需要模拟器 |
RT-Thread RTOS 非常紧凑,它的所有应用和子系统都编译到镜像中,多线程应用运行并分享相同的地址空间。RT-Thread Smart 是独立的。系统和应用是分别编译和运行的。应用拥有完整且互相隔离的地址空间。它也继承了 RT-Thread 优秀的实时性,同时也具有 POSIX 环境的特性。类似地,它们都与 RT-Thread API 兼容。RT-Thread RTOS 的应用可以被平滑移植到 RT-Thread Smart。
嵌入式开源
RT-Thread Smart 是一个开源项目,可以下载代码和文档并尝试,并提交评论和反馈,将该项目传播给更多开源倡导者。嵌入式系统属于它们的用户,有太多的嵌入式开发人员没有找到太多可用的嵌入式系统。如果是开发人员,请帮助改进 RT-Thread Smart。随着 RT-Thread 项目的不断推进,希望创建物联网和边缘计算的令人激动的开源世界。
RTOS版本更新录(202x)
官方主页:http://www.rt-thread.org/
该文章最后由 阿炯 于 2024-09-18 09:49:14 更新,目前是第 2 版。