コード例 #1
0
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
}
コード例 #2
0
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    
}
コード例 #3
0
ファイル: os_cpu_c.c プロジェクト: victor29z/haptics
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
}
コード例 #4
0
ファイル: os_cpu_c.c プロジェクト: Blone/my-project-hihack
void  OSTaskSwHook (void)
{
#if OS_APP_HOOKS_EN > 0u
    App_TaskSwHook();
#endif
}
コード例 #5
0
ファイル: os_cpu_c.c プロジェクト: glocklueng/MCU_WIFI
void  OSTaskSwHook (void)
{
#if (OS_APP_HOOKS_EN > 0u) && (OS_TASK_SW_HOOK_EN > 0u)
    App_TaskSwHook();
#endif
}