问
题
快递公司问题件快递公司问题件货款处理关于圆的周长面积重点题型关于解方程组的题及答案关于南海问题
越来越多
关于uC/OS-II
1。uC/OS-II源码里有的地方好象漏掉了编译预处理,导致裁减失效。是作者故意这样做的吗?还是有技巧?
2。推荐的中断处理流程:
void OSTickISR(void)
{
保存处理器寄存器的值;
调用OSIntEnter()或是将OSIntNesting加1;
调用OSTimeTick();
调用OSIntExit();
恢复处理器寄存器的值;
执行中断返回指令;
}
似乎有问题。我认为“OSIntEnter()或OSIntNesting+1”应该放到第1句,否则中断嵌套发生后,不知道前面已经中断过,在中断退出处理时就可能提前任务切换,导致混乱。我建议进入中断后立即关中断执行OSIntNesting+1或如果CPU支持OSIntNesting+1原语直接加1。
关于uCOS51
1。51支持4个寄存器区(R0-R7),在C里也可以调用USING选择,你只保存1个寄存器区,是有问题的。
2。通过使用bank技术,51可以支持2M的存储,对于使用字库等的应用很有价值,uCOS51如何实现?
3。任务参数传递问题的解决使用了R1-R3,据我所知,不使用堆栈传值,无法重入,如果我想递归调用,如何实现?51仿真堆栈的格式是如何安排的?
问题越来越多,目前发现这些,有些解决了,有些正在想,请继续查错,也请帮忙指点和改正。
在其他MCU上移植,请注意:
1。任务实现了重入了吗?
2。任务参数传递是否真正用堆栈实现。
3。中断处理流程有无BUG。
4。原作者给的源码是否完整,有无经过技术处理。