打印
[uCOS/RTOS]

在嵌入式系统中,如何使多任务分别运行一定时间?

[复制链接]
2021|6
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
youfimiya|  楼主 | 2014-7-21 16:55 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
嵌入式系统:RTEMS,
在下要实现的功能是:定义几个不同优先级的任务,在任务队列里按优先级从高到低排列。每个任务运行一定的时间,例如优先级最高的运行100个ticks,第二高的运行50个ticks(ticks已经定义),依此类推,当任务队列中的最后一个任务运行完成后,返回第一个任务,也就是优先级最高的任务开始重新执行。
请问,应该怎么办?

相关帖子

沙发
airwill| | 2014-7-21 21:30 | 只看该作者
没有这样要求的.
你这样是顺序执行, 不存在或者不需要优先级. 用不着 RTOS 就能实现的问题.
讨论优先级, 通常我们大都讨论的是占先式 RTOS.
最基本的特征是占先式. 通俗点说, 就是在低优先级任务执行过程中, 如果高优先级任务被唤醒, 将直接抢占 CPU 控制权, 等其完成任务再将 CPU 控制权交还给低优先级任务.

使用特权

评论回复
板凳
youfimiya|  楼主 | 2014-7-22 09:30 | 只看该作者
airwill 发表于 2014-7-21 21:30
没有这样要求的.
你这样是顺序执行, 不存在或者不需要优先级. 用不着 RTOS 就能实现的问题.
讨论优先级, 通 ...

4个任务,不考虑优先级,任务1到任务4分别运行100 ticks、60 ticks、20 ticks、20 ticks——在运行周期内,每个任务都是循环执行某项功能。
开始考虑的是,在进入每个任务时,先读取系统启动后的ticks,然后在每个周期内同样读取一次,两次读数作比较,符合要求就退出。但后面,考虑到这无疑就浪费了每个任务指令执行的时间,是不可取的。
有没有其他更好的做法?
谢谢!

使用特权

评论回复
地板
后学| | 2014-7-22 11:15 | 只看该作者
你确认是这样的需求?
你的CPU一直都在干活?感觉更像一个定时处理的东西。

使用特权

评论回复
5
ar_m_cu| | 2014-7-22 16:09 | 只看该作者
自己写一个类OS,用systick计时,并进行任务的切换。具体的切换操作可以参考下ucosii

使用特权

评论回复
6
南宫云明| | 2014-7-22 17:04 | 只看该作者
信号量。。。

使用特权

评论回复
7
siabc| | 2014-7-22 19:34 | 只看该作者
怎么会有人有这么奇怪的要求。。。。。信号量。。。。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

3

主题

5

帖子

0

粉丝