本帖最后由 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的优先级问题,及时被嵌套,也不会执行)
以上几个问题,希望对这块了解的大神给予帮助,谢谢
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
结了结了,不纠结了,最好还是带上吧!
我看的是3.07.03的ucos-iii内核源码,里面有个宏CPU_CFG_KA_IPL_BOUNDARY,把中断分两类
Since the port is using BASEPRI to separate kernel vs non-kernel aware ISR, please
make sure your external interrupt priorities are set accordingly. For example, if
CPU_CFG_KA_IPL_BOUNDARY is set to 4 then external interrupt priorities 4-15 will be kernel aware while priorities 0-3 will be use as non-kernel aware.
一周热门 更多>