有一个问题请教大家:
在uCOS-II中任务级的任务切换是通过调用宏OS_TASK_SW(),实际就是利用软中断进入中断,然后再在中断中调用OSCtxSw()恢复CPU寄存器,最后返回中断。。
我的问题是,为什么一定要靠中断来实现任务切换,而不能直接用汇编语言将当前任务的CPU寄存器入栈,再恢复处于就绪态的最高优先级任务的寄存器吗?
问题的关键是:问什么一定要用中断?
进中断时,CPU寄存器会自动入栈。
我把这个自动入栈改成用汇编手动入栈,不就可以避免用中断了吗?
[
本帖最后由 cjqhyy 于 2012-6-1 22:45 编辑 ]