打印

[uCOS/RTOS] uCOS II 使命切换及中止的问题

[仿制链接]
1028|11
跳转到指定楼层
楼主
刚开端学μC  看了一下午有点蒙,问咱们一个问题。
体系有两个使命为A和使命B,使命A优先级高于使命B优先级。当体系使命A挂起之后,就会进入使命B履行,在这个时分来了一个中止,当中止还没有履行完结的时分,A就准备安排妥当, 问,假如跳出中止之后,会持续履行B使命仍是会去直接履行A使命?
沙发
| 2019-6-7 22:25 | 只看该作者
板凳
 楼主 | 2019-6-7 23:03 | 只看该作者

合着便是中止里边也有使命调度函数呗
地板
| 2019-6-9 07:44 | 只看该作者
A 已安排妥当,  这个状况会让 OS 调度体系切换使命, 跟中止无关
5
 楼主 | 2019-6-9 10:03 | 只看该作者
airwill 宣布于 2019-6-9 07:44
A 已安排妥当,  这个状况会让 OS 调度体系切换使命, 跟中止无关

好的好的  谢谢
6
| 2019-6-10 13:43 | 只看该作者
每时每刻主要有更高优先级的使命安排妥当,而且调度器未上锁(能进行使命调度),那么就会履行优先级更高的使命
7
| 2019-6-10 14:04 | 只看该作者
会从头调度。
8
| 2019-6-10 16:58 | 只看该作者
楼主你能够这么了解,A使命安排妥当是有条件的,比方说休眠时刻到了,或许有信号量触发,或许A在等候行列音讯时超时或许有音讯来了等等,体系内核会履行一次调度,保证把高优先级使命在中止回来时被履行,你在中止里边A使命安排妥当了,阐明有安排妥当条件达成了(中止函数里边有唤醒A使命的操作),所以中止出来就会履行A。
9
 楼主 | 2019-6-10 19:44 | 只看该作者
caijie001 宣布于 2019-6-10 13:43
每时每刻主要有更高优先级的使命安排妥当,而且调度器未上锁(能进行使命调度),那么就会履行优先级更高的使命 ...

了解了  谢谢
10
 楼主 | 2019-6-10 19:44 | 只看该作者
5992230 宣布于 2019-6-10 16:58
楼主你能够这么了解,A使命安排妥当是有条件的,比方说休眠时刻到了,或许有信号量触发,或许A在等候行列音讯时 ...

OK 了解了  感谢
11
 楼主 | 2019-6-10 19:44 | 只看该作者

了解了  谢谢
12
| 2019-6-10 21:06 | 只看该作者
A不会不可思议的安排妥当,一定是有原因的,便是两个原因,1)发生了systick时刻发现A时刻到了,2)中止post一个event,而A正在挂起在这个event上面。

ucosii使命调度函数就两个,OSSched()是由systick调用的,OSIntExit()是中止函数最终要调用的。写的比较正规的代码,楼上各位的答复都是正确的,可是不正规的代码,比方中止函数最终没有OSIntExit,看上去仍是能正常工作的,可是中止退出后明显仍是会去履行B而不会履行A。
扫描二维码,随时随地手机跟帖
您需求登录后才能够回帖 登录 | 注册

本版积分规矩

我要发帖 投诉主张 创立版块 请求版主

快速回复

您需求登录后才能够回帖
登录 | 注册
高档形式

论坛热帖

封闭

抢手引荐上一条 /6 下一条

在线客服 快速回复 回来顶部 回来列表