Toggle navigation
首页
问答
文章
积分商城
专家
专区
更多专区...
文档中心
返回主站
搜索
提问
会员
中心
登录
注册
RTOS
5
裸机开发什么情况下需要用到rtos,求大佬给点意见和思路
发布于 2023-10-10 20:27:41 浏览:533
订阅该版
目前开发的项目都是基于裸机程序开发的,但是想尝试接触rtos。但是目前让我感到疑惑的有以下几个点。 1,在什么场合上需要用到RTOS呢,就是什么场合的实现时裸机很难实现的。我的理解是RTOS多个任务按照优先级和时间片进行任务切换,但是如果我在裸机里面让while循环里面的函数通过状态机进行条件判断使得函数执行的时间都不会太长,感觉这样并没有体现出RTOS优势。 2,如果我把串口处理单独分一个任务出来,时间片设置10ms,发送数据大小1000Byte,波特率57600,那我发送完1000字节数据最快都需要140ms,如果使用任务,那是不是意味着我的发送任务10ms就会被中断,要至少等待10ms时间片轮到我才能继续发送,这样发送的数据是不是就变得断断续续了。会不会影响接收端包的完整性呢。 3,下面是我用轮询的方式写的程序,只是不明白应该什么情况把某个模块独立成一个任务出来 ![裸机工程.png](https://oss-club.rt-thread.org/uploads/20231010/a84795e23afe616c0c17e7377ba94a03.png.webp)
查看更多
出出啊
2023-10-11
恃人不如自恃,人之为己者不如己之自为也
你的理解有偏颇,时间片是10ms,并不代表这个线程一定会霸占 CPU 10ms 之后才转让给其它线程。多数情况下线程的内的操作被划分成极小的执行单位,每一部分执行时间可能不到 1ms。线程的时间 tick 很多时候并不是想象中的会按部就班的减少,他们往往赶不上 systick 中断就主动让出 CPU 了。 1000 个字节的串口发送,除非你使用查询寄存器方式,使用中断或者 DMA 几乎不占用多少线程时间,拷贝 1000 字节到串口驱动层缓冲区耗用时间肯定用不了 1ms 。线程时间片可以在耗用 0 的情况下切换到其它程序。 如果你的 Uart_Handle 函数也没有使用中断或者 DMA ,那么它的执行时间也是 140ms,下面的采集、中间层、命令处理等的执行都会受到这个时间的影响,而出现响应延迟的问题! 你这个程序里的每一个 process 都可以单独放到一个线程里执行。按需执行,也不用每次扫描查询一下要不要怎么样
9
个回答
默认排序
按发布时间排序
KunYi
2023-10-11
这家伙很懒,什么也没写!
裸機的狀態下用詳盡的考慮下FSM 可以更即時, RTOS 通常是有許多任務而且很多是寫blocking 模式下,用RTOS 可以分成多個task 去而不是polling 可以簡化程序設計時的需要考慮的事情。但是付出的是你需要學習RTOS相關知識,有了以後做新案子會快很多
嚜軒公告
2023-10-11
努力中
简单的话不要上,上了会更加复杂,当然复杂程序还是要上的,界定难与简单以自身来说吧
RTT_逍遥
认证专家
2023-10-10
https://github.com/supperthomas
当你的任务简单和单一的时候,是不建议上RTOS的,裸机即可。 当你的项目需要更多人一起分工协作的时候,RTOS也是比较好的选择。 MCU资源太小也不建议上RTOS,裸机编程即可。
winfeng
认证专家
2023-10-11
这家伙很懒,什么也没写!
RTOS能用尽用。
CrazyH
2023-10-11
这家伙很懒,什么也没写!
RTOS能用就尽量用,不必考虑太多。
游走在01的海洋
2023-10-11
In the end, it's not the years in your life that count. It's the life in your years.
说下个人理解。 一、问题1 1.RTOS全称叫实时操作系统,所以适用于需要实时性高的需求; 2.RTOS是否使用,需要根据你的需求是否多样,需求间是否需要分成多个小任务,并且需要高响应;如果满足那就使用; 3.需要注意RTOS对于RAM大小是有要求的; 二、问题2 1.首先不会打断1000Byte的字节传输,RTOS会在你传输完成之后,再在延时函数中执行系统调用;这说明你对于RTOS的执行机制理解不全面,还需加深理解; 2.一般串口这中大量数据的比较少;另外如果真的是1000Byte这种大量数据的传输,建议使用DMA实现,这样CPU就可以做其他操作了; 最后,是否使用,这是需要综合考虑需求和硬件来确定的。
小狼
2023-10-11
这家伙很懒,什么也没写!
裸机完全可以实现,逻辑也很清楚,不要上,很麻烦(我感觉)。
梦笑真美
2023-10-11
这家伙很懒,什么也没写!
简单的就裸机跑,像跑网络的,复杂的多任务还是上系统吧
撰写答案
登录
注册新账号
关注者
0
被浏览
533
关于作者
简Zero
这家伙很懒,什么也没写!
提问
3
回答
0
被采纳
0
关注TA
发私信
相关问题
1
RTOS情况下,串口字节丢失
2
RTT的休眠模式怎么样
3
物联网操作系统有哪些
4
新手小白,关于RTOS选择的疑问
5
用rt在stmf103里面产生pwm(400KHZ),大佬们是怎么做的?
6
Linux开发和RTOS开发的区别?
7
rttread os 对于引脚复用的配置
8
发生hard fault on handler怎么定位什么问题?
9
HC32F030F8TA移植RT_Thread在创建任务完成进入任务调度中出错跑飞怎么处理?
10
用mountriver创建rtt工程,整数ok,开浮点一到rt_thread_mdelay就挂了
推荐文章
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组件
最新文章
1
使用百度AI助手辅助编写一个rt-thread下的ONVIF设备发现功能的功能代码
2
RT-Thread 发布 EtherKit开源以太网硬件!
3
rt-thread使用cherryusb实现虚拟串口
4
《C++20 图形界面程序:速度与渲染效率的双重优化秘籍》
5
《原子操作:程序世界里的“最小魔法单位”解析》
热门标签
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
次被采纳
本月文章贡献
程序员阿伟
8
篇文章
2
次点赞
hhart
3
篇文章
4
次点赞
大龄码农
1
篇文章
3
次点赞
ThinkCode
1
篇文章
1
次点赞
Betrayer
1
篇文章
1
次点赞
回到
顶部
发布
问题
分享
好友
手机
浏览
扫码手机浏览
投诉
建议
回到
底部