OpenEdv-开源电子网

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

ucosiii问题

[复制链接]

12

主题

59

帖子

0

精华

初级会员

Rank: 2

积分
187
金钱
187
注册时间
2016-9-2
在线时间
42 小时
发表于 2018-1-18 10:07:19 | 显示全部楼层 |阅读模式
大神们,ucosiii的问题,一个高优先级的任务里加了延时(ucosiii自带延时函数),另一个低优先级的任务里是while(1)死循环没有加延时,运行起来会出现什么情况呢?
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

12

主题

59

帖子

0

精华

初级会员

Rank: 2

积分
187
金钱
187
注册时间
2016-9-2
在线时间
42 小时
 楼主| 发表于 2018-1-18 10:07:31 | 显示全部楼层
啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊
回复 支持 反对

使用道具 举报

88

主题

7377

帖子

5

精华

资深版主

Rank: 8Rank: 8

积分
14980
金钱
14980
注册时间
2013-11-13
在线时间
1823 小时
发表于 2018-1-18 10:35:25 | 显示全部楼层
本帖最后由 zuozhongkai 于 2018-1-18 10:37 编辑

所有其他的优先级低于你没加延时函数的那个任务将不能运行。优先级高于的任务将不会受到影响
回复 支持 反对

使用道具 举报

12

主题

59

帖子

0

精华

初级会员

Rank: 2

积分
187
金钱
187
注册时间
2016-9-2
在线时间
42 小时
 楼主| 发表于 2018-1-18 11:04:58 | 显示全部楼层
zuozhongkai 发表于 2018-1-18 10:35
所有其他的优先级低于你没加延时函数的那个任务将不能运行。优先级高于的任务将不会受到影响

你好,我现在的情况是,高优先级的任务运行了一次,然后就一直在运行低优先级的任务,这个的问题可能出在哪里呢?
回复 支持 反对

使用道具 举报

12

主题

59

帖子

0

精华

初级会员

Rank: 2

积分
187
金钱
187
注册时间
2016-9-2
在线时间
42 小时
 楼主| 发表于 2018-1-18 11:05:11 | 显示全部楼层
zuozhongkai 发表于 2018-1-18 10:35
所有其他的优先级低于你没加延时函数的那个任务将不能运行。优先级高于的任务将不会受到影响

谢谢了!
回复 支持 反对

使用道具 举报

10

主题

778

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
6745
金钱
6745
注册时间
2017-4-12
在线时间
1258 小时
发表于 2018-1-18 13:45:37 | 显示全部楼层
OSTimeDlyHMSM(0,0,0,5,OS_OPT_TIME_HMSM_STRICT,&err); //延时5ms

你说的延时是这个吗?这个函数里面有执行任务切换,如果没有任务切换的话,任务应该切换不了吧
回复 支持 反对

使用道具 举报

12

主题

59

帖子

0

精华

初级会员

Rank: 2

积分
187
金钱
187
注册时间
2016-9-2
在线时间
42 小时
 楼主| 发表于 2018-1-18 13:51:24 | 显示全部楼层
245925587 发表于 2018-1-18 13:45
OSTimeDlyHMSM(0,0,0,5,OS_OPT_TIME_HMSM_STRICT,&err); //延时5ms

你说的延时是这个吗?这个函数里面有 ...

是这个函数,然后确实任务切换到低优先级里了,但是就出不来了,一直在低优先级任务里(低优先级任务没有加延时函数)
回复 支持 反对

使用道具 举报

12

主题

59

帖子

0

精华

初级会员

Rank: 2

积分
187
金钱
187
注册时间
2016-9-2
在线时间
42 小时
 楼主| 发表于 2018-1-18 13:51:55 | 显示全部楼层
245925587 发表于 2018-1-18 13:45
OSTimeDlyHMSM(0,0,0,5,OS_OPT_TIME_HMSM_STRICT,&err); //延时5ms

你说的延时是这个吗?这个函数里面有 ...

这种情况可能是什么愿意造成的呢
回复 支持 反对

使用道具 举报

10

主题

778

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
6745
金钱
6745
注册时间
2017-4-12
在线时间
1258 小时
发表于 2018-1-18 14:00:39 | 显示全部楼层
TMAC666 发表于 2018-1-18 13:51
这种情况可能是什么愿意造成的呢

http://blog.csdn.net/h32dong809/article/details/7082511   
你可以看下这里的解释
回复 支持 反对

使用道具 举报

12

主题

59

帖子

0

精华

初级会员

Rank: 2

积分
187
金钱
187
注册时间
2016-9-2
在线时间
42 小时
 楼主| 发表于 2018-1-18 14:03:00 | 显示全部楼层
245925587 发表于 2018-1-18 14:00
http://blog.csdn.net/h32dong809/article/details/7082511   
你可以看下这里的解释

好的,谢谢了
回复 支持 反对

使用道具 举报

33

主题

150

帖子

0

精华

高级会员

Rank: 4

积分
506
金钱
506
注册时间
2014-1-24
在线时间
102 小时
发表于 2018-1-18 15:44:25 | 显示全部楼层
没有延时函数就不能发生任务调度了,不就死在里面出不来了嘛,跟随便写一个while(1)没啥区别吧
回复 支持 反对

使用道具 举报

12

主题

59

帖子

0

精华

初级会员

Rank: 2

积分
187
金钱
187
注册时间
2016-9-2
在线时间
42 小时
 楼主| 发表于 2018-1-18 16:23:47 | 显示全部楼层
北方的马克思 发表于 2018-1-18 15:44
没有延时函数就不能发生任务调度了,不就死在里面出不来了嘛,跟随便写一个while(1)没啥区别吧

你可以试一试开发板,而且ucos用systick做时钟节拍时,里面会进行任务调度的
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-6-15 11:41

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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