This action will force synchronization from RT-Thread/docs-online, which will overwrite any changes that you have made since you forked the repository, and can not be recovered!!!
Synchronous operation will process in the background and will refresh the page when finishing processing. Please be patient.
初次使用 RT-Thread 操作系统进行开发的小伙伴,可以参考本篇文档的学习路线进行上手入门。
RT-Thread,全称是 Real Time-Thread,顾名思义,它是一个嵌入式实时多线程操作系统,基本属性之一是支持多任务,但允许多个任务同时运行并不意味着处理器在同一时刻真的执行了多个任务。事实上,一个处理器核心在某一时刻只能运行一个任务,由于每次对一个任务的执行时间很短、任务与任务之间通过任务调度器进行非常快速地切换(调度器根据优先级决定此刻该执行的任务),所以给人造成多个任务在一个时刻同时运行的错觉。在 RT-Thread 系统中,任务是通过线程实现的,RT-Thread 中的线程调度器也就是以上提到的任务调度器。
RT-Thread 主要采用 C 语言编写,浅显易懂,方便移植。它把面向对象的设计方法应用到实时系统设计中,使得代码风格优雅、架构清晰、系统模块化并且可裁剪性非常好。针对资源受限的微控制器(MCU)系统,可通过方便易用的工具,裁剪出仅需要 3KB Flash、1.2KB RAM 内存资源的 NANO 版本(NANO 是 RT-Thread 官方于 2017 年 7 月份发布的一个极简版内核);而对于资源丰富的物联网设备,RT-Thread 又能使用在线的软件包管理工具,配合系统配置工具实现直观快速地模块化裁剪,无缝地导入丰富的软件功能包,实现类似 Android 的图形界面及触摸滑动效果、智能语音交互效果等复杂功能。
相较于 Linux 操作系统,RT-Thread 体积小,成本低,功耗低、启动快速,除此以外 RT-Thread 还具有实时性高、占用资源小等特点,非常适用于各种资源受限(如成本、功耗限制等)的场合。虽然 32 位 MCU 是它的主要运行平台,实际上很多带有 MMU、基于 ARM9、ARM11 甚至 Cortex-A 系列级别 CPU 的应用处理器在特定应用场合也适合使用 RT-Thread。
适用于需要使用 RT-Thread 的丰富功能,如各类外设、物联网组件、软件包等的场景。更多...
RT-Thread Nano 是一个极简版的硬实时内核,它是由 C 语言开发,采用面向对象的编程思维,具有良好的代码风格,是一款可裁剪的、抢占式实时多任务的 RTOS。其内存资源占用极小,功能包括任务处理、软件定时器、信号量、邮箱和实时调度等相对完整的实时操作系统特性。适用于家电、消费电子、医疗设备、工控等领域大量使用 32 位 ARM 入门级 MCU 的场合。
下图是 RT-Thread Nano 的软件框图,其中包含支持的 CPU 架构与内核源码,还有可拆卸的 FinSH 组件:
支持架构:ARM:Cortex M0/ M3/ M4/ M7 等、RISC-V 及其他。
功能:线程管理、线程间同步与通信、时钟管理、中断管理、内存管理。更多...
RT-Thread Smart 是基于 RT-Thread 操作系统上的混合操作系统,简称为 rt-smart,它把应用从内核中独立出来,形成独立的用户态应用程序,并具备独立的地址空间(32 位系统上是 4G 的独立地址空间)。
以下是 rt-smart 的整体结构框图,在硬件平台的基础上通过 MMU、系统调用的方式把整个系统分成了内核态及用户态。更多...
从版本简介中可以看出,Nano 版本
是 标准版本
的极简内核版本,Smart 版本
是在 标准版本
上增加了用户态创造而来,所以学习 标准版本
是学习 RT-Thread 的基础。本篇文章以学习 RT-Thread 标准版本 为例,为初学者制定学习路线如下,分为入门学习、进阶学习、应用开发。
针对人群:有 C 语言、嵌入式基础,想系统学习 RT-Thread 操作系统
推荐使用 潘多拉开发板 配套使用 潘多拉开发板教程,或者以下主流的学习板进行学习,不建议没有任何基础就将 RT-Thread 移植到一块开发板上。
针对人群:学过 FreeRTOS 或 uC/OS, 想把 RT-Thread 使用起来
准备一块板子,根据 RT-Thread 支持的板子 BSP 进行 快速上手,或者根据 STM32 系列 BSP 制作教程进行移植。
如果使用 Ubuntu 进行开发,可以参考:在 Ubuntu 下开发 RT-Thread。
快速学习内核,参考:《RT-Thread 编程指南》。
为方便之前有其他 RTOS 使用经验的用户快速上手 RT-Thread,以及将基于其他 RTOS 的 API 编写的应用层代码快速移植到 RT-Thread 上,RT-Thread 社区编写了第三方 RTOS 兼容层。目前支持以下第三方 RTOS 的 API 无感移植:
Env 工具:Env 工具用于对源码功能进行配置或裁剪,可以生成 MDK/IAR/GCC 工程,需要配合 MDK/IAR/GCC 使用,详见 Env 用户手册。
RT-Thread Studio :可以在 Studio 中下载源码包并创建 rt-thread 工程,独立完成开发、编译、下载、调试等功能,并能进行功能裁剪,详见 RT-Thread Studio 用户手册。
Demo演示和教程 | Sample示例 |
---|---|
基于RT-Thread和i.MX RT1052的开源AutoQuad飞控 | 内核示例代码 |
基于RT-Thread的开源飞控StarryPilot | 设备示例代码 |
基于RT-Thread的人体健康监测系统 | 文件系统示例代码 |
基于RT-Thread的激光雷达避障小车 | 网络示例代码 |
基于RT-Thread的蓝牙遥控平衡小车 | |
蜂鸣器播放器 | |
分布式温度监控系统 | |
智能车教程 |
开发指南 | 代码规范 | 提交代码 |
---|---|---|
软件包开发指南 | RT-Thread编程风格 | 向RT-Thread贡献代码 |
STM32系列BSP制作教程 | BSP开发规范 | |
传感器驱动开发指南 |
为加强 RT-Thread 开源社区建设,加速完善 RT-Thread 中文文档中心内容,现将文档中心编辑权限予以开放,详情参见 PR 提交规范。欢迎社区小伙伴踊跃参与修改,提交 PR。本文档中心使用 docsify 搭建。
如下是 RT-Thread 在线文档中心的主要目录说明:
development-tools:RT-Thread Studio IDE 和开发辅助工具 Env 的文档。
rt-thread-version:RT-Thread 各种版本:标准版本、nano 版本、smart 版本。
├─development-tools # 工具
│ ├─_sidebar.md # 侧边导航栏
│ ├─build-config-system # 构建相关
│ ├─env # Env 工具
│ └─rtthread-studio # Studio IDE
├─rt-thread-version # RT-Thread 各版本
│ ├─rt-thread-nano # rt-thread nano 版本
│ │ └─_sidebar.md # 侧边导航栏
│ ├─rt-thread-smart # rt-thread smart 版本
│ │ └─_sidebar.md # 侧边导航栏
│ └─rt-thread-standard # rt-thread 标准版本
│ ├─_sidebar.md # 侧边导航栏
│ ├─application-note # 应用笔记
│ ├─development-guide # 开发指南
│ ├─packages-manual # 软件包指南
│ ├─programming-manual # 编程手册
│ └─tutorial # 小项目教程系列
└─other
└─novice-guide # 新手入门
本作品采用知识共享署名-非商业性使用 4.0 国际许可协议进行许可。
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。