xysl 发表于 2009-8-11 23:25

uc/osII优先级问题

我想在中断后直接返回到一个线程里(假定线程A).因此我要设置线程A为最高优级.
看书上可用:OSTaskChangPrio()函数改变线程的优先级.由于线程优先极翻转原理,因此不知道当前最高优先级值是多少.所以没法设置线程A的优先级值.
请大家给个意见.是有直接设置最高优先级线程吗?还是直接人工设置.谢谢

e掾木 发表于 2009-8-12 08:04

在UCOS里只有互斥信号量有这样的功能,提升某个任务的优先级,让他先享用互斥信号量,放弃CPU的时候回到原来的优先位置。

kanprin 发表于 2009-8-12 11:22

不一定要更改优先级,假如你A一开始就设为优先级最高了,可以让A任务开始时等待一个信号量,在中断里去发送那个信号量退出后,你的A任务会得到最先响应的。

华荣汇FAE5 发表于 2009-8-14 09:57

呵呵 优先级是根据你的功能实时要求来确定的,你说的是优先级嵌套的问题,建议你把所有任务的优先级列出来。。。。。。。

barryyan 发表于 2009-8-17 19:41

不一定要更改优先级,假如你A一开始就设为优先级最高了,可以让A任务开始时等待一个信号量,在中断里去发送那个信号量退出后,你的A任务会得到最先响应的。 ...
kanprin 发表于 2009-8-12 11:22 https://bbs.21ic.com/images/common/back.gif

感觉3楼比较符合我的想法,只要在中断中发送一个信号量给正在等待的任务A就行了吧

sanguankou 发表于 2009-8-20 21:03

学习了
页: [1]
查看完整版本: uc/osII优先级问题