OSIntEnter()和OSIntExit()的调用问题

2019-07-21 03:28发布

本帖最后由 gangzilife 于 2019-2-19 16:55 编辑

请教大神们一个小问题:

ucos-iii中中断里调用OSIntEnter() and OSIntExit()

1、能不能不调用二者?不调用退出时不会尝试切换任务,从哪里进来就从哪里出去

2、如果中断中不调用二者,然后该中断又被systick抢占,systick结束时尝试任务切换,但pendsv的优先级最低,貌似还是会回到之前的中断,中断结束后才执行pendsv中断切换任务,这样虽然实时性低了一点,但好像还是没有问题

3、M3/M4的内核用pendsv切换任务,而不是systick直接切换,是不是这个中断嵌套OSIntNestingCtr对于M3/M4压根就没用,只是为了兼容其他的CPU(因为pendsv的优先级问题,及时被嵌套,也不会执行)

以上几个问题,希望对这块了解的大神给予帮助,谢谢
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
9条回答
gangzilife
2019-07-21 12:32
本帖最后由 gangzilife 于 2019-2-20 09:07 编辑
正点原子 发表于 2019-2-20 01:39
不行。。。必须调用。

分析了源码,实在没看到为什么必须调用,除了实时性差一点之外,好像没啥,能告知下为什么必须调用吗?
附:* If your ISR handler does not need to be kernel aware then you do not need to use OSIntEnter()/OSIntExit().*
在别的论坛看的:
中断退出进行任务调度正是抢占式RTOS的精华所在,如果只在Systick里面进行任务调度那不就成了时间片OS?实时性没有了。

一周热门 更多>