当前位置: 首页 > news >正文

学习RT-Thread(RT-Thread简介、RT-Thread环境搭建)

1. RTOS概念

1.1 什么是RTOS?

定义:RTOS(Real-Time Operating System),实时操作系统,是一种能够及时响应外部事件的操作系 统,它为任务分配处理器时间,确保任务在预定或确定的时间内完成。

主要特点:

多任务处理:RTOS能够同时运行多个任务。

确定性行为:RTOS提供可预测的任务执行时间。

优先级调度:高优先级的任务先于低优先级的任务执行。

快速上下文切换:RTOS能够在微秒级别切换任务。

资源管理:RTOS有效管理CPU时间、内存和其他系统资源。

类型:

硬实时RTOS:任务必须在严格定义的时间内完成,否则系统可能无法正常工作。

软实时RTOS:任务完成时间有一定的容忍度,但仍然需要快速响应。

1.2 裸机跟RTOS的区别

场景:用打游戏和回复微信两个行为比喻为两个任务,分别分析裸机和RTOS的区别。当要进行打游戏和回复微信的动作时,裸机和RTOS的运行代码和逻辑。

裸机运行逻辑

从图可以看到,打游戏和回复微信轮流执行,当打游戏时,不能回复消息,当回复消息时,不能打 游戏。

RTOS运行逻辑

从图可以看到,打游戏和回复微信并发执行,当打游戏时,也能回复消息,当回复消息时,也能打 游戏。

2. RT-Thread概念

2.1 什么是RT-Thread

定义:RT-Thread,全称是 Real Time-Thread,顾名思义,它是一个嵌入式实时多线程操作系统,允许 多个任务运行

版本:RT-Thread Nano和RT-Thread完整版本

主要特点:

国产操作系统,国内生态最好的RTOS

轻量级设计,最小资源占用1.2KB RAM和3KB Flash。

支持多任务处理和抢占式任务调度。

良好的可扩展性和可裁剪性,适应不同的硬件平台。

应用领域:

物联网设备:通过RT-Thread实现设备联网和远程控制。

智能家居:作为智能设备的核心操作系统,提供稳定高效的运行环境。

工业控制:利用RT-Thread的实时性和可靠性,实现精确的工业控制。

特点:

下载简单:RT-Thread Nano 以软件包的方式集成在 Keil MDK 与 CubeMX

代码简单:仅是一个纯净的内核

移植简单: Nano 的极简特性,添加 Nano 源码到工程,就已完成 90% 的工作

使用简单:易裁剪,易添加 FinSH 组件,自选驱动库,完善的文档

3. RT-Thread工程搭建

在学习RT-Thread之前,工欲善其事,必先利其器。我们需要安装STM32CubeMX和KEIL,两个工具.

RT-Thread Nano现已成功上线ST CubeMX,所以创建整个RT-Thread工程直接在STM32CubeMX上完 成即可

3.1 首先打开 STM32 CubeMX 软件,进入主页面后找到右侧的嵌入式软件包选项(Install or remove embedded software packages),点击 [ INSALL / REMOVE ]

3.2 在弹出的 Embedded Software Packages Manager 界面的上方导航栏中找到 RT-Thread 厂商 —> [ RealThread ] ,展开 X-CUBE-RT-Thread_Nano ,勾选中 RT-Thread Software Components (Size: 5.50 MB) ,并且点击 Install :

3.3 同意条款并点击 Finish :

3.4 选择Close:

3.5 点击File,然后选择New Project,创建工程:

3.6 创建工程可以选择基于 MCU 或 Board,这里我们以创建 MCU 作为教学演示,点击 ACCESS TO MCU SELECTOR ,在左上角的 Commercial Part Number 中输入芯片型号,这里我的芯片型号为 STM32F103C8T6 ,然后双击条目的随便一个 。

3.7 依次点击 Software Packs-> Select Components

3.8 找到 RealThread.X-CUBE-RT-Thread_Nano 4.1.1 一栏,根据开发需求勾选配置项,其中 kernel 和 libcpu 为必选项,这里我们选择 kernel、shell 和 ibcpu 三个配置项后点击 OK:

3.9 在左侧导航栏中找到 RT-Thread Nano 软件包,同时在 Mode 一栏中使能 RTOS RT-Thread,接着 我们在 Parameter Settings 中进行内核配置,这一步我们保持默认即可, 同时往下翻找到 Software Timers Configuration,将 Enable software timer with a timer thread 设置为 Enable,下翻找到IPC Configuration,将Enable semaphore, Enable mutex,Enable event flag, Enable mailbox, Enable message queue设置为Enable, 下翻找到Finsh Configuration,将Component Finsh设置为Enable:

3.10 为了给 Finsh 组件提供串口设备,需要我们勾选一个串口,点击左侧功能栏 Connectivity —> USART1,设置串口模式为异步:

3.11 选择 System Core —>SYS,将 Debug 选项配置为 Serial Wire:

3.12 在 RT-Thread 中重新定义了 HardFault_Handler , PendSV_Handler , SysTick_Handler 中断 函数。为避免重复定义,在生成项目之前,请取消选择中断配置中的三个中断函数(对应注释了的选 项H ard fault interrupt、 Pendable request 、 Time base: System tick timer)

3.13 选择 System Core —>RCC,将 High Speed Clock和LowSpeedClock选项配置为 Crystal/Ceramic Resonator:

3.14 进入时钟配置Clock Configuration, HCLK位置输入72,然后敲击Enter键。

3.15 选择OK,时钟自动配置完成

3.16 点击 Project Manager,填写项目名称,并修改 Toolchain / IDE 为 MDK-ARM,最后生成工程文件

3.17 在点击生成工程后会提示 RTOS 时基源的修改警告,点击 Yes 即可

3.18 选择Close

3.19 进入生成的工程目录,双击工程。

4. RT-Thread工程测试

4.1 安装Xshell工具:

4.2 安装STLINK驱动,根据电脑是32位还是64位,选择对应的exe安装

4.3 在main.c中添加rtthreaad的头文件:#include ”rtthread.h“

4.4 在main函数中while中添加延时函数,以便 Finsh 和其他线程得到系统调度

4.5 按下复位按键

出现这个图标就算成功了

http://www.dtcms.com/a/558580.html

相关文章:

  • 外贸网站高端定做易店无忧官网
  • 手机集团网站建设洛阳网站建设优化案例
  • 建立网站一般会遇到什么问题免费设计签名软件
  • linux系统启动失败之flash异常分析
  • 2025年江西省职业院校技能大赛高职组“区块链技术应用”任务书(2卷)
  • 会外语和做网站成都最差的十大物业公司
  • wordpress多站点注册页手机怎么做网站
  • printf线程问题
  • 裂变速度提升300%!279模式如何盘活一个私域商城
  • 浙江省工程建设协会网站上海工程招标网招标公告
  • Linux用户和权限
  • 2025年 11月 每日分享
  • 网站建设应遵循的原则十大酒店管理系统
  • 襄阳网站建设首选公司哪家好潢川网站建设公司
  • 新手小白如何使用串口发送一个字符串
  • 西部数码网站建设教程母婴用品网站建设规划
  • wordpress super cacheseo关键词优化服务
  • Python---数据容器( tuple 元组)
  • 微信小程序在哪里找?seo联盟怎么赚钱
  • Windows上使用WSL2创建Ubuntu系统,实现无缝高效开发的体验
  • 好的活动策划网站华为荣耀官网手机旗舰店
  • Arthas工具快速使用
  • 网站建设要实现的目标外贸添加外链网站
  • psd简单的网站首页wordpress简单统计插件
  • 【AI基础篇】微积分在AI中的核心作用与应用浅析
  • 做网站卖机器怎么弄新能源汽车价格表
  • 免费舆情信息网站网站开发需要掌握的知识
  • 推广网站软文高德地图是国产软件吗
  • 威海网站建设兼职郑州模板建站哪家好
  • 土豆做视频在线观看网站网站建设的多吗