Toggle navigation
首页
问答
文章
积分商城
专家
专区
更多专区...
文档中心
返回主站
搜索
提问
会员
中心
登录
注册
2024-RSOC
RT-Thread 线程
发布于 2024-07-24 14:40:02 浏览:226
订阅该版
[tocm] # 嵌入式实时系统 ## 特点 实时性:反应时间要快、按要求的间隔输出正确时间信号给、实时的控制设备 多任务并发性:利用适当的策略控制多任务的执行、提高资源的利用效率 异步事件:有处理异步事件的能力 快速启动:快速启动、并有出错处理和自动复位功能 运行空间:嵌入式实时软件是应用程序和操作系统两种软件的一体化程序 开发方式:嵌入式实时软件的开发需要独立的开发平台和交叉开发环境 ## 常用的嵌入式实时操作系统 开源的RTOS领域,常用的有FreeRTOS、uCOSII 和RT-Thread , Freertos是一个国外推出的一个迷你的实时操作系统内核,开源,功能 包括:任务管理、时间管理、信号量、消息队列、内存管理、记录功 能、软件定时器、协程等,可基本满足较小系统的需要。 RT-Thread是中国人自己推出的一个集实时操作系统(RTOS)内核、 中间件组件和开发者社区于一体的技术平台,开源os,RT-Thread除 了有常规RTOS的功能,还具备一个IoT OS平台所需的所有关键组件。 下面比较一下Freertos和RT-Thread 内核、以及支持的组件、驱动 ## RTOS内核核心要素 事件驱动:中断机制和多任务、优先级抢占和时间片轮转调度 资源共享:任务间通信和同步互斥、提供的机制有信号量、邮箱、消息队列、事件标志、互斥 ## 任务的实体--线程 含义:人们在生活中处理复杂问题时,惯用的 方法就是“分而治之”,即把一个大问题 分解成多个相对简单、比较容易解决的 小问题 ### 线程控制块 在 RT-Thread 操作系统中,线程控制块是操作系统用于管理线程的一个数据结构。它会存放线 程的一些信息,例如优先级、线程名称、线程状态等,也包含线程与线程之间连接用的链表结 构,线程等待事件集合等。 线程控制块由结构体 struct rt_thread 定义并形成线程内核对象,再链接到内核对象容器中进行 管理。 线程控制块 struct rt_thread 继承自基类 rt_object,在基类对象基础上进行扩展,增加了线程状态、优先级等属性。 ### 线程属性--线程栈 •RT-Thread 的线程具有独立的栈空间, 当进行线程切换时,会将当前线程的上下文存在栈中 , 当线程要恢复运行时,再从栈中读取上下文信息 ,进行恢复。 • 线程栈还用来存放函数中的局部变量: 函数中的局部变量从线程栈空间中申请;初始时局部变量会从寄存器中分配(ARM 架构),当这个函数再调用另一个函数时 ,这些局部变量将放入栈中。 • 线程栈的增长方向与芯片构架密切相关的,RT-Thread 3.1.0 以前的版本 ,均只支持栈由高地址向低地址的增长方式 ,对于 ARMCortex-M 架构。 ### 线程属性--优先级 • RT-Thread 线程的优先级是表示线程被调度的优先程度。每个线程都具有优先级 ,越重要的线程 ,赋予的优先级就越高 ,线程被调度的可能性才会越大。 • RT-Thread 最大支持 256 个线程优先级(0~255),数值越小的优先级越高,0 为最高优先级。 • 在一些资源比较紧张的系统中 ,可以根据实际情况选择只支持 8 个或 32 个优先级的系统配置。 • 最低优先级默认分配给空闲线程使用 ,用户一般不使用。 • 在系统中 ,如果有比当前线程优先级更高的线程就绪时 , 当前线程将立刻被换出 ,高优先级线程会优先抢占处理器运行 ### 线程属性--时间片 每个线程都需要配置时间片,但时间片仅对优先级相同的就绪态线程有效。系统对优先级相同的就绪态线程采用时间片轮转的调度方式进行调度时,时间片起到约束线程单次运行时长的作用,其单位是一个系统节拍(OSTick)。
1
条评论
默认排序
按发布时间排序
登录
注册新账号
关于作者
Gokotta
这家伙很懒,什么也没写!
文章
4
回答
0
被采纳
0
关注TA
发私信
相关文章
推荐文章
1
RT-Thread应用项目汇总
2
玩转RT-Thread系列教程
3
国产MCU移植系列教程汇总,欢迎查看!
4
机器人操作系统 (ROS2) 和 RT-Thread 通信
5
五分钟玩转RT-Thread新社区
6
【技术三千问】之《玩转ART-Pi》,看这篇就够了!干货汇总
7
关于STM32H7开发板上使用SDIO接口驱动SD卡挂载文件系统的问题总结
8
STM32的“GPU”——DMA2D实例详解
9
RT-Thread隐藏的宝藏之completion
10
【ART-PI】RT-Thread 开启RTC 与 Alarm组件
热门标签
RT-Thread Studio
串口
Env
LWIP
SPI
AT
Bootloader
Hardfault
CAN总线
FinSH
ART-Pi
USB
DMA
文件系统
RT-Thread
SCons
RT-Thread Nano
线程
MQTT
STM32
RTC
FAL
rt-smart
ESP8266
I2C_IIC
WIZnet_W5500
UART
ota在线升级
PWM
cubemx
freemodbus
flash
packages_软件包
BSP
潘多拉开发板_Pandora
定时器
ADC
GD32
flashDB
socket
中断
Debug
编译报错
msh
SFUD
keil_MDK
rt_mq_消息队列_msg_queue
ulog
C++_cpp
at_device
本月问答贡献
踩姑娘的小蘑菇
7
个答案
3
次被采纳
a1012112796
13
个答案
2
次被采纳
张世争
9
个答案
2
次被采纳
rv666
5
个答案
2
次被采纳
用户名由3_15位
11
个答案
1
次被采纳
本月文章贡献
程序员阿伟
9
篇文章
2
次点赞
hhart
3
篇文章
4
次点赞
大龄码农
1
篇文章
5
次点赞
RTT_逍遥
1
篇文章
2
次点赞
ThinkCode
1
篇文章
1
次点赞
回到
顶部
发布
问题
投诉
建议
回到
底部