"sbit sigl = P1^7;
void func1(){
register char data i;
i = 5;
do{
sigl = !sigl;
task_switch();
}while(--i);
}
void func2(){
register char data i;
i = 5;
do{
sigl = !sigl;
task_switch();
}while(--i);
}
我们这里只是示例,所以仍可以通过手工分配不同的寄存器避免寄存器冲突,但在真实的应用中,由于任务间的切换是非常随机的,我们无法预知某个时刻哪个寄存器不会冲突,所以分配不同寄存器的方法不可取.那么,要怎么办呢? "
楼主有严重的误导成分,一个OS上下文切换首先就是需要保存寄存器,这是OS的基本任务之一,所以这里的例子不能代表KEIL的弱智。
|