入门学习
进阶学习
应用开发
初次使用 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 的丰富功能,如各类外设、物联网组件、软件包等的场景。更多…
Software_framework_diagram
RT-Thread Nano 是一个极简版的硬实时内核,它是由 C 语言开发,采用面向对象的编程思维,具有良好的代码风格,是一款可裁剪的、抢占式实时多任务的 RTOS。其内存资源占用极小,功能包括任务处理、软件定时器、信号量、邮箱和实时调度等相对完整的实时操作系统特性。适用于家电、消费电子、医疗设备、工控等领域大量使用 32 位 ARM 入门级 MCU 的场合。
下图是 RT-Thread Nano 的软件框图,其中包含支持的 CPU 架构与内核源码,还有可拆卸的 FinSH 组件:
架构
支持架构:ARM:Cortex M0/ M3/ M4/ M7 等、RISC-V 及其他。
功能:线程管理、线程间同步与通信、时钟管理、中断管理、内存管理。更多…
Smart 版本
RT-Thread Smart 是基于 RT-Thread 操作系统上的混合操作系统,简称为 rt-smart,它把应用从内核中独立出来,形成独立的用户态应用程序,并具备独立的地址空间(32 位系统上是 4G 的独立地址空间)。
以下是 rt-smart 的整体结构框图,在硬件平台的基础上通过 MMU、系统调用的方式把整个系统分成了内核态及用户态。更多…
从版本简介中可以看出,Nano 版本 是 标准版本 的极简内核版本,Smart 版本 是在 标准版本 上增加了用户态创造而来,所以学习 标准版本 是学习 RT-Thread 的基础。本篇文章以学习 RT-Thread 标准版本 为例,为初学者制定学习路线如下,分为入门学习、进阶学习、应用开发。
针对人群:有 C 语言、嵌入式基础,想系统学习 RT-Thread 操作系统
Keil MDK 模拟器 STM32F103 体验
Keil MDK 模拟器 STM32F103 体验(代码下载)
推荐使用 潘多拉开发板 配套使用 潘多拉开发板教程,或者以下主流的学习板进行学习,不建议没有任何基础就将 RT-Thread 移植到一块开发板上。
RT-Thread 潘多拉 STM32L475 上手指南
野火霸道 STM32F103 上手指南
正点原子 nanoSTM32F103 上手指南
野火挑战者 STM32F429 上手指南
正点原子探索者 STM32F407 上手指南
正点原子阿波罗 STM32F429 上手指南
野火 I.MX RT1052 上手指南
正点原子 I.MX RT1052 号令者上手指南
其他…
内核视频教程
《内核实验手册》
针对人群:学过 FreeRTOS 或 uC/OS, 想把 RT-Thread 使用起来
准备一块板子,根据 RT-Thread 支持的板子 BSP 进行 快速上手,或者根据 STM32 系列 BSP 制作教程进行移植。
如果使用 Ubuntu 进行开发,可以参考:在 Ubuntu 下开发 RT-Thread。
快速学习内核,参考:《RT-Thread 编程指南》。
查看 在线 API 手册 或 下载 API 手册。
为方便之前有其他 RTOS 使用经验的用户快速上手 RT-Thread,以及将基于其他 RTOS 的 API 编写的应用层代码快速移植到 RT-Thread 上,RT-Thread 社区编写了第三方 RTOS 兼容层。目前支持以下第三方 RTOS 的 API 无感移植:
uCOS-II操作系统兼容层(代码下载)
uCOS-III操作系统兼容层(代码下载)
Env 工具:Env 工具用于对源码功能进行配置或裁剪,可以生成 MDK/IAR/GCC 工程,需要配合 MDK/IAR/GCC 使用,详见 Env 用户手册。
RT-Thread Studio :可以在 Studio 中下载源码包并创建 rt-thread 工程,独立完成开发、编译、下载、调试等功能,并能进行功能裁剪,详见 RT-Thread Studio 用户手册。
IO 设备模型
PIN 设备
UART 设备
UART 设备V2版本
CAN 设备
HWTIMER 设备
I2C 设备
PWM 设备
RTC 设备
SPI 设备
WATCHDOG 设备
SENSOR 设备
更多…
FinSH 控制台
文件系统
netdev 网卡
SAL 套接字抽象层
AT 命令
ulog 日志
utest 测试框架
动态模块
POSIX 接口
电源管理
更多…
应用开发列表 应用开发列表
使用 Eclipse 开发 RT-Thread CmBacktrace应用
使用 VS Code 开发 RT-Thread 在STM32 Nucleo 开发板上使用 RW007 WiFi 模块
使用 Env 创建 RT-Thread 项目工程 在 STM32L4 上应用 littlefs 文件系统
搭建RT-Thread项目框架 在潘多拉上使用 SFUD 操作 Flash
在IoT Board上实现电源管理 STM32 通用 Bootloader
网络协议栈驱动移植 wireshark 抓取 tls 数据包
在STM32F429上应用网络功能 在 STM32 上应用 C++
在STM32F429上应用文件系统 STM32 上使用 PWM
FreeModbus 应用笔记 STM32 上使用 USB Host 读写 U 盘
应用AT组件连接ESP8266模块 QEMU网络视频教程
多线程非阻塞网络编程 使用QEMU运行动态模块组件
应用设计参考…
演示效果图
Demo演示和教程 Sample示例
基于RT-Thread和i.MX RT1052的开源AutoQuad飞控 内核示例代码
基于RT-Thread的开源飞控StarryPilot 设备示例代码
基于RT-Thread的人体健康监测系统 文件系统示例代码
基于RT-Thread的激光雷达避障小车 网络示例代码
基于RT-Thread的蓝牙遥控平衡小车
蜂鸣器播放器
分布式温度监控系统
智能车教程
开发指南 代码规范 提交代码
软件包开发指南 RT-Thread编程风格 向RT-Thread贡献代码
STM32系列BSP制作教程 BSP开发规范
传感器驱动开发指南
License: Apache License 2.0 github-star github-fork star fork
为加强 RT-Thread 开源社区建设,加速完善 RT-Thread 中文文档中心内容,现将文档中心编辑权限予以开放,详情参见《PR 提交规范》。欢迎社区小伙伴踊跃参与修改,提交 PR。
本文档中心使用 docsify 搭建,包含搜索组件,如需搜索可点击左上角进行搜索。
search
如下是 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 国际许可协议进行许可。
我有疑问: 1992152446@qq
本文发布于:2024-01-30 19:51:46,感谢您对本站的认可!
本文链接:https://www.4u4v.net/it/170661552822421.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |