打印

UCOS2 如何实现这种情况??

[复制链接]
2517|11
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
zalayeta|  楼主 | 2008-9-12 10:54 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
task1的优先级为3,task2的优先级为4。task1被挂起,task2处于运行状态。假设现在task2运行到一半,来了一个中断,使得task1从挂起状态变为运行状态。现在我运行完task1之后不想回到task2中运行剩下的代码了,下次再进task2后也是直接从头开始运行,请问该如何设计?谢谢!

相关帖子

沙发
andrew.xu| | 2008-9-12 13:42 | 只看该作者

删掉再重建

个人觉得应该用别的方法实现你的功能

使用特权

评论回复
板凳
walnutcy| | 2008-9-15 16:53 | 只看该作者

仔细看了下,发现我看错了,

LZ要求task2的后半段不再运行,

同意2楼的做法,

使用特权

评论回复
地板
armecos| | 2008-9-15 18:31 | 只看该作者

只能按照2楼说的做了,

删掉再重建。

可能是你的任务划分有问题,其实如果你用ecos之类的现代OS,可以使用select等先进功能,同时阻塞在多个事件上,就不必另开个线程监视了,可惜,ucos不提供这种多事件阻塞。

更多内容,详见:
《培训系列“丛书”》
www.armecos.com
-----------------------------------
More details, see:
《"Series Books" of Training》
www.armecos.com

使用特权

评论回复
5
zalayeta|  楼主 | 2008-9-16 11:07 | 只看该作者

有什么别的方法可以实现呢

实际上就是 一旦task2运行的时间过长了,我就希望立即中止它,不让它再继续运行了,然后下次再执行的时候重头开始执行。有没有什么其他办法呢?谢谢!

使用特权

评论回复
6
soso| | 2008-9-16 12:44 | 只看该作者

我觉得你的思路有问题

   多任务的系统设计,建议对每一个任务的数据结构封闭,各自为政,只是通过对外的接口函数来影响,这样添加、删除一个任务并不影响其他的工作。你的思维还是停留在前后台方式。

使用特权

评论回复
7
Ice_River| | 2008-9-17 15:20 | 只看该作者

确实是思路的问题!

用固有的思路上OS,只会带来更多的麻烦!

使用特权

评论回复
8
colorwu| | 2008-9-17 22:30 | 只看该作者

可以用周期性任务完成,内加信号量使能

使用特权

评论回复
9
zalayeta|  楼主 | 2008-9-18 10:13 | 只看该作者

确实如此

确实像eeproom,Ice_River所说,我确实还不太懂得如何用好RTOS,最初用RTOS也只是觉得有些中断占用的时间太长了,所以硬把ucos往上套。有没有ucos好的应用案例让我学习一下,谢谢!

使用特权

评论回复
10
soso| | 2008-9-18 13:43 | 只看该作者

给你推荐一本ucosii作者的另一本书:

  《嵌入式系统构件》。看懂以后,设计程序,在脱离RTOS条件下调试好这个模块后直接嵌入系统设计,最后再脱离底层、中间层做做高层的应用设计。

使用特权

评论回复
11
alex74| | 2008-9-18 14:51 | 只看该作者

...

你这种情况明显是单任务。

使用特权

评论回复
12
l0p0c| | 2008-9-18 15:27 | 只看该作者

嗯,不错!重在思路清晰!

使用特权

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

本版积分规则

14

主题

27

帖子

0

粉丝