硬汉嵌入式论坛

 找回密码
 立即注册
查看: 1373|回复: 8
收起左侧

[FreeRTOS] 什么时候才需要使用Freertos?

[复制链接]

1

主题

1

回帖

4

积分

新手上路

积分
4
发表于 2024-11-29 09:34:44 | 显示全部楼层 |阅读模式
  说一下起因,是最近做了一个二氧化碳泵的项目,最近闲来无聊就将这个项目移植了Freertos系统,但是移植完成后我就又回过头看我的代码,想不通他这个比裸机代码好在哪。(当然也可能是我这个项目本身逻辑并不复杂,其中主要是各种情况的报错处理和在屏幕上显示正确的提示语句相对麻烦一点,逻辑更为复杂的项目可能优点更明显?)
  现在我想了解一下什么样的项目才适合用Freertos?对于项目中任务的设置需要特别细致么?比如按键检测,我可以按照裸机状态机方式放在主程序里面周期执行,也可以单独拉出来做一个任务来执行。希望大佬们可以帮我解答一下这方面的疑惑。
回复

使用道具 举报

5

主题

60

回帖

75

积分

初级会员

积分
75
发表于 2024-11-29 10:53:33 | 显示全部楼层
我理解哈 :
上不上系统取决于有没有多个需求需要同时运行 , 边干这边干那 ,还能在干其他的
需要同时执行多个任务,且每个任务都有实时性要求 , 就得上系统
如果单线程的话 ,比如写个flash几秒 ,除了中断啥都干不了 ,只能干等着这段运行完 ,而且复杂一点的工程用单线程的话 , 1是通讯功能还有驱动代码会混在一起 ,2是对通讯或者要求实时性的功能没法达到要求
上系统的话,通讯单分一个线程 ,功能一个,按键一个,液晶一个,等等..... 不会耦合在一起 ,也基本不会互相影响
回复

使用道具 举报

1

主题

8

回帖

11

积分

新手上路

积分
11
发表于 2024-12-1 02:15:03 | 显示全部楼层
曾经我也以裸机多任务开发能力强引以为傲过,但自从我上手了FreeRTOS,真香!
我觉得最大的好像就是“长耗时的任务”不需要再像裸机那样要拆分成多个步骤,直接放在一个任务里按完整的顺序编写就行。



另外就是遇到过一个语音识别的基于SDK二次开发的项目,人家搭好的框架就是跑的FreeRTOS,不用还不行了。
而且这样我只需要创建自己的任务,完全不用担心和语音任务有协调上的冲突。

回复

使用道具 举报

3

主题

7

回帖

16

积分

新手上路

积分
16
发表于 2024-12-3 15:37:31 | 显示全部楼层
关键是当程序功能比较复杂的时候使用裸机开发需要考虑各种任务之间的穿插,而使用了操作系统的在设计上其实是反而更加简单了
回复

使用道具 举报

1

主题

21

回帖

24

积分

新手上路

积分
24
发表于 2024-12-16 15:12:06 | 显示全部楼层
以前我也不明白,裸机系统用的挺好的啊。  
直到系统了解了下RTOS ,做了几个功能函数的使用,才发现,它的实时性真的高。

就像一楼所说的, 需要同时执行多个任务,且每个任务都有实时性要求 , 就得上系统!!!
回复

使用道具 举报

0

主题

17

回帖

17

积分

新手上路

积分
17
发表于 2025-1-3 14:15:39 | 显示全部楼层
RTOS的节拍时钟是1ms,而modbus的一帧接收完成判断要3.5字节的计时,当波特率较高比如115200时,就需要开个10us的定时器,在这个10us定时器中断里累加计时标志,这种应用可以吗?
回复

使用道具 举报

1

主题

21

回帖

24

积分

新手上路

积分
24
发表于 2025-1-10 17:47:36 | 显示全部楼层
goodgft 发表于 2025-1-3 14:15
RTOS的节拍时钟是1ms,而modbus的一帧接收完成判断要3.5字节的计时,当波特率较高比如115200时,就需要开个 ...

我是采用串口空闲中断接收方式,接收一帧后,中断内传递信号量,给解析任务即可。
回复

使用道具 举报

0

主题

17

回帖

17

积分

新手上路

积分
17
发表于 2025-1-13 14:32:14 | 显示全部楼层
lyg407 发表于 2025-1-10 17:47
我是采用串口空闲中断接收方式,接收一帧后,中断内传递信号量,给解析任务即可。

这种方式适合自己做的主机和从机使用,如果和别家的从机一起混合使用问题很多。由于空闲中断的时间很短,波特率为115200时大致只有200us,需要空闲中断后计时达到3.5字节时间才开始解析任务。
回复

使用道具 举报

0

主题

4

回帖

4

积分

新手上路

积分
4
发表于 2025-1-20 17:20:30 | 显示全部楼层
goodgft 发表于 2025-1-13 14:32
这种方式适合自己做的主机和从机使用,如果和别家的从机一起混合使用问题很多。由于空闲中断的时间很短, ...

说的很对,工业上很多超时时间不是按照3.5字节来的,9600情况下很可能有10ms,甚至更长
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2025-4-26 00:35 , Processed in 0.476305 second(s), 24 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表