void OSTaskSwHook (void) { #if OS_CPU_FPU_EN > 0 void *pblk; #endif #if OS_CPU_FPU_EN > 0 /* Save VFP context of preempted task */ if (OSRunning == OS_TRUE) { /* Don't save on OSStart()! */ if (OSTCBCur->OSTCBOpt & OS_TASK_OPT_SAVE_FP) { /* See if task used FP */ pblk = OSTCBCur->OSTCBExtPtr; /* Yes, Get pointer to FP storage area */ if (pblk != (void *)0) { /* Make sure we have storage */ OS_CPU_FP_Save(pblk); /* Save the VFP registers in block */ } } } /* Restore VFP context of new task */ if (OSTCBHighRdy->OSTCBOpt & OS_TASK_OPT_SAVE_FP) { /* See if new task uses FP */ pblk = OSTCBHighRdy->OSTCBExtPtr; /* Yes, Get pointer to FP storage area */ if (pblk != (void *)0) { /* Make sure we have storage */ OS_CPU_FP_Restore(pblk); /* Get contents of VFP registers */ } } #endif #if OS_APP_HOOKS_EN > 0 App_TaskSwHook(); #endif }
void OSTaskSwHook (void) { #if OS_CFG_DBG_EN > 0u INT32U ctx_id; #endif #if OS_APP_HOOKS_EN > 0u App_TaskSwHook(); #endif #if OS_CFG_DBG_EN > 0u ctx_id = ((INT32U)(OSPrioHighRdy << 24u) ) | ((INT32U)(OSTCBHighRdy ) & 0x00FFFFFF); OS_CPU_ARM_CtxID_Set(ctx_id); #endif }
void OSTaskSwHook (void) { #if (OS_CPU_ARM_FP_EN > 0u) if ((OSTCBCur->OSTCBOpt & OS_TASK_OPT_SAVE_FP) != (INT16U)0) { OS_CPU_FP_Reg_Push(OSTCBCur->OSTCBStkPtr); } if ((OSTCBHighRdy->OSTCBOpt & OS_TASK_OPT_SAVE_FP) != (INT16U)0) { OS_CPU_FP_Reg_Pop(OSTCBHighRdy->OSTCBStkPtr); } #endif #if OS_APP_HOOKS_EN > 0u App_TaskSwHook(); #endif }
void OSTaskSwHook (void) { #if OS_APP_HOOKS_EN > 0u App_TaskSwHook(); #endif }
void OSTaskSwHook (void) { #if (OS_APP_HOOKS_EN > 0u) && (OS_TASK_SW_HOOK_EN > 0u) App_TaskSwHook(); #endif }