void _OS_ReturnSave (void) { _OS_SET_FSR_CUR_TASK_W(OS_CODE_POINTER_SIZE + _OS_TASK_POINTER_OFFSET); _postdec = _fsr1l - _OS_TempH; _OS_SAVE_PC(); _OS_bTaskReady = 1; _OS_POP(); }
void _OS_CheckEvent (void) { //------------------------------------------------------------------------------ #if OS_PRIORITY_LEVEL == OS_PRIORITY_DISABLED //------------------------------------------------------------------------------ _OS_Flags.bTimeout = 0; if (bEvent) { #ifdef OS_ENABLE_TTIMERS _OS_bTaskDelay = 0; // Clear bDelay in temporary variable _OS_State _OS_ATOMIC_WRITE_A(_OS_CurTask->State.bDelay = 0); #endif return; } #ifdef OS_ENABLE_TTIMERS if (_OS_bTaskTimeout && _OS_bTaskCanContinue) { _OS_Flags.bTimeout = 1; return; } #endif _OS_POP(); _OS_RESTORE_SP(); //------------------------------------------------------------------------------ #else //------------------------------------------------------------------------------ _OS_Flags.bTimeout = 0; if (bEvent) { if (_OS_bTaskReady) { #ifdef OS_ENABLE_TTIMERS _OS_bTaskDelay = 0; // Clear bDelay in temporary variable _OS_State _OS_ATOMIC_WRITE_A(_OS_CurTask->State.bDelay = 0); #endif #if OS_PRIORITY_LEVEL == OS_PRIORITY_EXTENDED _OS_Flags.bEventOK = 1; #endif return; } _OS_bTaskReady = 1; } else { _OS_bTaskReady = 0; } #ifdef OS_ENABLE_TTIMERS if (_OS_bTaskTimeout && _OS_bTaskCanContinue) { _OS_bTaskReady = 1; _OS_Flags.bTimeout = 1; #if OS_PRIORITY_LEVEL == OS_PRIORITY_EXTENDED _OS_Flags.bEventOK = 1; #endif return; } #endif _OS_POP(); _OS_RESTORE_SP(); //------------------------------------------------------------------------------ #endif //------------------------------------------------------------------------------ }
void _OS_ReturnNoSave (void) { _OS_POP(); _OS_RESTORE_SP(); }
void _OS_ReturnNoSave (void) { _OS_POP(); }
void _OS_CheckEvent (void) { //------------------------------------------------------------------------------ #if OS_PRIORITY_LEVEL == OS_PRIORITY_DISABLED //------------------------------------------------------------------------------ _OS_Flags.bTimeout = 0; _OS_SET_FSR_CUR_TASK(); if (bEvent) { #ifdef OS_ENABLE_TTIMERS _OS_bTaskDelay = 0; #endif return; } #ifdef OS_ENABLE_TTIMERS if (_OS_bTaskTimeout && _OS_bTaskCanContinue) { _OS_Flags.bTimeout = 1; return; } #endif _OS_POP(); //------------------------------------------------------------------------------ #else //------------------------------------------------------------------------------ _OS_Flags.bTimeout = 0; _OS_SET_FSR_CUR_TASK(); if (bEvent) { if (_OS_bTaskReady) { #ifdef OS_ENABLE_TTIMERS _OS_bTaskDelay = 0; #endif #if OS_PRIORITY_LEVEL == OS_PRIORITY_EXTENDED _OS_Flags.bEventOK = 1; #endif return; } _OS_bTaskReady = 1; } else { _OS_bTaskReady = 0; } #ifdef OS_ENABLE_TTIMERS if (_OS_bTaskTimeout && _OS_bTaskCanContinue) { _OS_bTaskReady = 1; _OS_Flags.bTimeout = 1; #if OS_PRIORITY_LEVEL == OS_PRIORITY_EXTENDED _OS_Flags.bEventOK = 1; #endif return; } #endif _OS_POP(); //------------------------------------------------------------------------------ #endif //------------------------------------------------------------------------------ }