RTT上下文切换(任务切换)问题
最近闲来无事,看了看目前国内比较火的RTT,发现有个问题,特来问问坛子里的朋友们,在看相关处理器例子的时候发现只有在systick的中断里发生,而别的中断函数里则不执行切换,而我看UCOS里面则是所有的中断函数在退出的时候都会将各任务的工作状态检查一遍,看是否有新的最高优先级的任务是在就绪态里面,然后退出中断后执行切换,不知道我说的是不是对的。RTT在别的中断函数里面也应该能执行切换吧。 系统切换与否与systick没必然的关系
RTT中,如果中断服务例程触发了任务切换,会设置一个标志,中断退出时会检查这个标志,如果这个标志置位,则进行切换。 哦,我知道了,我看RTT里面的例子,所有的中断服务例程里都没有触发任务切换,只是在systick里面有一个执行判断之后才执行的rt_thread_yield,还有ffxz所有的设置一个标志应该就是触发pendsv异常吗? “看了看目前国内比较火的RTT”,“比较火”用词不当,应该是“很火”。 回复【3楼】luxinsun
“看了看目前国内比较火的rtt”,“比较火”用词不当,应该是“很火”。
-----------------------------------------------------------------------
关键不是火,而是在产品、项目中应用情况如何,这个是去年远望谷在项目中采用RT-Thread给出的评论(使用到的部分:RT-Thread核心):
“经过这个项目实际应用测试,相关同事都反馈,RTT在这个项目中替代uCOS是没有问题的,应用一样稳定、出色!”
希望RT-Thread能够更多的进入到实际产品领域,而不是流行于“火”。
页:
[1]