请输入您要查询的百科知识:

 

词条 PC_DOSSaveReturn
释义

解释

因为UC/OS-II 是多任务,而且为每个任务开辟一个堆栈,所以单线程的DOS环境应该保存,在退出µC/OS-II 程序时返回到DOS。调用PC_DOSSaveReturn()可以保存当前DOS环境.

源码

ucos 中 DOSSaveReturn 源码:

void PC_DOSSaveReturn (void)

{

#if OS_CRITICAL_METHOD == 3 /* Allocate storage for CPU status register */

OS_CPU_SR cpu_sr;

#endif

PC_ExitFlag = FALSE; /* Indicate that we are not exiting yet! */

OSTickDOSCtr = 1; /* Initialize the DOS tick counter */

PC_TickISR = PC_VectGet(VECT_TICK); /* Get MS-DOS's tick vector */

PC_VectSet(VECT_DOS_CHAIN, PC_TickISR); /* Store MS-DOS's tick to chain */

setjmp(PC_JumpBuf); /* Capture where we are in DOS */

if (PC_ExitFlag == TRUE) { /* See if we are exiting back to DOS */

OS_ENTER_CRITICAL();

PC_SetTickRate(18); /* Restore tick rate to 18.2 Hz */

OS_EXIT_CRITICAL();

PC_VectSet(VECT_TICK, PC_TickISR); /* Restore DOS's tick vector */

PC_DispClrScr(DISP_FGND_WHITE + DISP_BGND_BLACK); /* Clear the display */

exit(0); /* Return to DOS */

}

}

随便看

 

百科全书收录4421916条中文百科知识,基本涵盖了大多数领域的百科知识,是一部内容开放、自由的电子版百科全书。

 

Copyright © 2004-2023 Cnenc.net All Rights Reserved
更新时间:2024/11/16 1:39:45