硬汉嵌入式论坛

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

[μCOS-II] 实时系统任务太多好吗

[复制链接]

75

主题

683

回帖

908

积分

金牌会员

积分
908
发表于 2023-10-19 15:51:33 | 显示全部楼层 |阅读模式
最近在研发一款比较复杂的设备,为了开发后期维护方便和设备软件的稳定性,打算按照模块化的方式降低耦合度,一个执行单元(比如一颗独立功能的LED灯、一个加热器件)一个任务,每个任务按照后台数据做执行单元该有的功能,不管其他器件。

这样的框架可以预见软件的后期维护和稳定性都会比较好,但是任务可能比较多,预计20个任务,这样多的任务各位大佬觉得会不会太多了。
回复

使用道具 举报

0

主题

159

回帖

159

积分

初级会员

积分
159
发表于 2023-10-19 16:31:20 | 显示全部楼层
这个主要看MCU性能吧,能够及时把指令执行完才是关键,FREERTOS试过16个任务都没什么问题,MCU是STM32H743
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106660
QQ
发表于 2023-10-19 16:34:36 | 显示全部楼层
20个不多,没问题。
回复

使用道具 举报

19

主题

234

回帖

291

积分

高级会员

积分
291
发表于 2023-10-19 16:51:09 | 显示全部楼层
合理利用线程同步机制,做成事件驱动型系统,少用裸机编程下的标志位,不然项目大起来之后想改一个小地方都要仔细想想对其他地方有没有影响。
回复

使用道具 举报

19

主题

371

回帖

428

积分

高级会员

积分
428
发表于 2023-10-19 16:53:46 | 显示全部楼层
ram大一点,任务50+都正常,关键是中断,都是硬件中断触发的话,优先级嵌套什么的,管理起来头疼
回复

使用道具 举报

4

主题

160

回帖

172

积分

初级会员

积分
172
发表于 2023-10-19 17:44:23 | 显示全部楼层
任务多少,问题越多。
代码越复杂,问题也越多
回复

使用道具 举报

75

主题

683

回帖

908

积分

金牌会员

积分
908
 楼主| 发表于 2023-10-19 19:00:32 | 显示全部楼层
eric2013 发表于 2023-10-19 16:34
20个不多,没问题。

我想应该也还好,任务之间预计不会有太大的耦合性。
回复

使用道具 举报

75

主题

683

回帖

908

积分

金牌会员

积分
908
 楼主| 发表于 2023-10-19 19:01:24 | 显示全部楼层
tovinz 发表于 2023-10-19 16:51
合理利用线程同步机制,做成事件驱动型系统,少用裸机编程下的标志位,不然项目大起来之后想改一个小地方都 ...

会很少用同步机制,也不想加标志位。打算做成生产消费模式的那种
回复

使用道具 举报

75

主题

683

回帖

908

积分

金牌会员

积分
908
 楼主| 发表于 2023-10-19 19:02:09 | 显示全部楼层
h_007 发表于 2023-10-19 16:53
ram大一点,任务50+都正常,关键是中断,都是硬件中断触发的话,优先级嵌套什么的,管理起来头疼

任务太多就怕出系统问题不好定位
回复

使用道具 举报

334

主题

2032

回帖

3039

积分

版主

Rank: 7Rank: 7Rank: 7

积分
3039
发表于 2023-10-20 09:37:20 | 显示全部楼层
任务个数没啥关系,主要看你各个任务的实际占用时间和osDelay(阻塞时间)的比例。如果每个任务都是10ms执行一次,任务本身都要占用5ms,那么两三个任务就不行了。

回复

使用道具 举报

3

主题

96

回帖

105

积分

初级会员

积分
105
发表于 2023-10-25 13:52:31 | 显示全部楼层
可以考虑使用软件定时器
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-28 17:28 , Processed in 0.183885 second(s), 25 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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