OpenEdv-开源电子网

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

UCOS出现有个任务突然不运行的情况。

[复制链接]

38

主题

302

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
440
金钱
440
注册时间
2012-3-6
在线时间
5 小时
发表于 2015-1-26 09:58:21 | 显示全部楼层 |阅读模式
5金钱
UCOS出现有个任务突然不运行的情况。有三个任务,优先级,4,5,7,设备上电时,三个任务都可以正常运行。但是运行了一两个小时以后,优先级最低的任务7,突然不运行了。我用jtag仿真,断点在其他两个任务的时候都可以到,7号任务一直不会到。当我把其中的两个任务进行调换时,也就是说,前面5号变成7,7号的优先级变成了5时,运行几个小时后,现在的5号(也就是前面的7)可以运行。前面可以运行的5,也是现在的7,出现了不运行的情况。4号一直都可以运行。

最佳答案

查看完整内容[请看2#楼]

回复【5楼】augustedward: --------------------------------- 嗯。我最后知道问题了。低优先级的任务最好别做比较耗时的硬件相关操作,我用低优先级任务做SPI操作。而且读写数据量大。然后高优先级大概在10MS一次延时。所以导致了。低优先级任务在读写SPI的时候在等待的情况下 被打断,然后高优先级任务完成以后再执行低优先级任务时。导致硬件错误。
ES?全称?Embedded?Show;ES是由众多嵌入式爱好者组织的一个团队,致力于带领学生进步,帮助毕业生找到工作,更重要的是在职的嵌入式工作者提供自主外包和创业的机会。(详情进群查看) ES的宗旨是:交流共享与合作发展。ES?QQ群?第三群:152820643?。群内论坛有很多嵌入式开发模块解决方案可以参考。进群的立马共享自己做的模块简介。
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

38

主题

302

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
440
金钱
440
注册时间
2012-3-6
在线时间
5 小时
 楼主| 发表于 2015-1-26 09:58:22 | 显示全部楼层
回复【5楼】augustedward:
---------------------------------
嗯。我最后知道问题了。低优先级的任务最好别做比较耗时的硬件相关操作,我用低优先级任务做SPI操作。而且读写数据量大。然后高优先级大概在10MS一次延时。所以导致了。低优先级任务在读写SPI的时候在等待的情况下 被打断,然后高优先级任务完成以后再执行低优先级任务时。导致硬件错误。
ES?全称?Embedded?Show;ES是由众多嵌入式爱好者组织的一个团队,致力于带领学生进步,帮助毕业生找到工作,更重要的是在职的嵌入式工作者提供自主外包和创业的机会。(详情进群查看) ES的宗旨是:交流共享与合作发展。ES?QQ群?第三群:152820643?。群内论坛有很多嵌入式开发模块解决方案可以参考。进群的立马共享自己做的模块简介。
回复

使用道具 举报

9

主题

1385

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
12062
金钱
12062
注册时间
2013-3-8
在线时间
1283 小时
发表于 2015-1-26 22:11:21 | 显示全部楼层
可能与调度分配有关!跟每个任务调用的延时有关!时间长了会出现
回复

使用道具 举报

38

主题

302

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
440
金钱
440
注册时间
2012-3-6
在线时间
5 小时
 楼主| 发表于 2015-6-5 14:56:42 | 显示全部楼层
回复【2楼】augustedward:
---------------------------------
跟每个任务调用的延时有关!时间长了会出现,可否详细讲下,我每个任务里面延时大概10ms-50ms。
ES?全称?Embedded?Show;ES是由众多嵌入式爱好者组织的一个团队,致力于带领学生进步,帮助毕业生找到工作,更重要的是在职的嵌入式工作者提供自主外包和创业的机会。(详情进群查看) ES的宗旨是:交流共享与合作发展。ES?QQ群?第三群:152820643?。群内论坛有很多嵌入式开发模块解决方案可以参考。进群的立马共享自己做的模块简介。
回复

使用道具 举报

38

主题

302

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
440
金钱
440
注册时间
2012-3-6
在线时间
5 小时
 楼主| 发表于 2015-6-5 15:25:41 | 显示全部楼层
回复【2楼】augustedward:
---------------------------------
低优先级任务在处理硬件数据时,高优先级的任务时间到了以后是不是就打断低优先级的任务处理硬件数据了。所以导致的问题。
ES?全称?Embedded?Show;ES是由众多嵌入式爱好者组织的一个团队,致力于带领学生进步,帮助毕业生找到工作,更重要的是在职的嵌入式工作者提供自主外包和创业的机会。(详情进群查看) ES的宗旨是:交流共享与合作发展。ES?QQ群?第三群:152820643?。群内论坛有很多嵌入式开发模块解决方案可以参考。进群的立马共享自己做的模块简介。
回复

使用道具 举报

9

主题

1385

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
12062
金钱
12062
注册时间
2013-3-8
在线时间
1283 小时
发表于 2015-6-5 16:42:01 | 显示全部楼层
回复【4楼】a4615800:
---------------------------------
高优先级是可以打断低优先级的。但不一定就会出现问题。
你可以试一下,把高优先级的延时加长,最低优先级的延时变小,运行几个小时后看看情况。
比如,4.5都为1s运行一次,7就50ms运行一次。
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-6-21 04:33

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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