PC_DOSSaveReturn是一个计算机系统函数。因为UC/OS-II 是多任务,而且为每个任务开辟一个堆栈,所以单线程的DOS环境应该保存,在退出µC/OS-II 程序时返回到DOS。调用PC_DOSSaveReturn()可以保存当前DOS环境.
PC_DOSSaveReturn是一个计算机系统函数。因为UC/OS-II 是多任务,而且为每个任务开辟一个堆栈,所以单线程的DOS环境应该保存,在退出µC/OS-II 程序时返回到DOS。调用PC_DOSSaveReturn()可以保存当前DOS环境.
源码
ucos 中 DOSSaveReturn 源码:
void PC_DOSSaveReturn (void)
{
#if OS_CRITICAL_METHOD == 3
OS_CPU_SR cpu_sr;
#endif
PC_ExitFlag = FALSE;
OSTickDOSCtr = 1;
PC_TickISR = PC_VectGet(VECT_TICK);
PC_VectSet(VECT_DOS_CHAIN, PC_TickISR);
setjmp(PC_JumpBuf);
if (PC_ExitFlag == TRUE) {
OS_ENTER_CRITICAL();
PC_SetTickRate(18);
OS_EXIT_CRITICAL();
PC_VectSet(VECT_TICK, PC_TickISR);
PC_DispClrScr(DISP_FGND_WHITE + DISP_BGND_BLACK);
exit(0);
}
}