OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 3145|回复: 4

关于UCOS同优先级的疑惑

[复制链接]

19

主题

72

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
416
金钱
416
注册时间
2016-4-9
在线时间
123 小时
发表于 2016-9-6 21:20:50 | 显示全部楼层 |阅读模式
1金钱
使用UCOSIII  没有开启时间片轮转调度  设置两个任务同优先级 试了试 也可以运行   但是 ucos支持不开时间片轮转调度 任务还隶属同一优先级下吗?  

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

5

主题

41

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
436
金钱
436
注册时间
2015-3-27
在线时间
127 小时
发表于 2016-9-7 00:14:24 | 显示全部楼层
属于同一优先级。同一优先级任务通过链表连接起来,时间片轮不影响这个固定结构。
OS_TickListUpdate-->OS_TaskRdy-->void  OS_RdyListInsert (OS_TCB  *p_tcb)
{
    OS_PrioInsert(p_tcb->Prio);
    if (p_tcb->Prio == OSPrioCur) { //注意这句,对同优先级任务的处理
        OS_RdyListInsertTail(p_tcb);  //这就是调整一下头尾顺序了
    } else {
        OS_RdyListInsertHead(p_tcb);
    }
}
回复

使用道具 举报

19

主题

72

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
416
金钱
416
注册时间
2016-4-9
在线时间
123 小时
 楼主| 发表于 2016-9-8 21:15:36 | 显示全部楼层
有梦为马 发表于 2016-9-7 00:14
属于同一优先级。同一优先级任务通过链表连接起来,时间片轮不影响这个固定结构。
OS_TickListUpdate-->OS ...

也就是说 可以关闭时间片轮转调度 但是同任务优先级的程序只能顺序执行对吧
回复

使用道具 举报

5

主题

41

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
436
金钱
436
注册时间
2015-3-27
在线时间
127 小时
发表于 2016-9-9 13:57:06 | 显示全部楼层
神秘狼 发表于 2016-9-8 21:15
也就是说 可以关闭时间片轮转调度 但是同任务优先级的程序只能顺序执行对吧

可以这么说,关闭时间片轮调度,同优先级的任务运行不受时间片限制,除非自动阻塞运行,不然另外同优先级的任务不能运行。
回复

使用道具 举报

19

主题

72

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
416
金钱
416
注册时间
2016-4-9
在线时间
123 小时
 楼主| 发表于 2016-9-23 11:14:32 | 显示全部楼层
有梦为马 发表于 2016-9-9 13:57
可以这么说,关闭时间片轮调度,同优先级的任务运行不受时间片限制,除非自动阻塞运行,不然另外同优先级 ...

"不能"?  这句话前后矛盾啊
回复

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-29 01:28

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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