野火电子论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 7305|回复: 2

[ucos] UCOS 3 我用的火哥的单任务例程跑多任务,优先级大于7的任务不运行?

[复制链接]
发表于 2015-12-13 14:27:25 | 显示全部楼层 |阅读模式
我直接在火哥的单任务里面 再添加任务,3个任务优先级设置为345都可以跑,设置357就不行了  优先级为7的就没运行,改到6又可以?是为什么   优先级设置这是这样:#define OS_CFG_PRIO_MAX                64u    求大神解答!!!!!!!!!!!!!!1
回复

使用道具 举报

 楼主| 发表于 2015-12-13 14:52:45 | 显示全部楼层
有知道或者了解的大神给点建议!!!!!1
回复 支持 反对

使用道具 举报

发表于 2015-12-13 18:37:31 | 显示全部楼层
我在学习野火库开发指南第24章关于多任务时也想到了任务过多时可能发生的情况。
具体是这样的:
3个LED灯由3个任务通过延时不同时间控制,一个任务改变LED状态后就用系统函数挂起,挂起时间分别为100ms,200ms,300ms,,让别的任务运行。优先级分别为3,4,5.
试想一下,如果任务特别多比如100个任务,那么可能最高优先级的任务只挂起100ms,当第70个任务运行完之后要挂起了,此时本应该运行就绪队列里的第71个任务才对,但是此时可能第一个任务的挂起延时已经结束,那么按照优先级排序,要先运行第一个。这样的话,可能永远也不会再运行第71-100个任务了。

解决办法:把任务设置为相同优先级,这样每个任务会被操作系统分配相同的时间片,没有先后之分


(我只是一个刚开始学习ARM和操作系统的初学者,说的不对的话请多指教)
回复 支持 反对

使用道具 举报

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

本版积分规则

联系站长|手机版|野火电子官网|野火淘宝店铺|野火电子论坛 ( 粤ICP备14069197号 ) 大学生ARM嵌入式2群

GMT+8, 2024-11-22 04:40 , Processed in 0.027831 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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