/* NOTE: not supported */ EXPORT ISR(SystemTick) { EnterISR(); knl_timer_handler(); (void)IncrementCounter(0); ExitISR(); }
void __attribute__((__interrupt__)) _INT0Interrupt(void) { TaskStateType State; EnterISR(); IEC0bits.INT0IE = 0; GetTaskState(TASK2_ID, &State); if (State == SUSPENDED) ActivateTask(TASK2_ID); LeaveISR(); }
void InterruptVectorL(void) { EnterISR(); if (INTCONbits.TMR0IF == 1) AddOneTick(); // Timer 0 Interrupt. No change please. if ((PIR3 & PIE3) != 0) VSCP_INT(); // CAN Interrupt. No change please. #ifdef RMT_DRV if ( PIR1bits.TMR2IF == 1) RMT_INT(); // Timer 2 Interrupt. No change please. #endif LeaveISR(); }
LOCAL void portSystemTickHandler( int sig ) { if ( ( TRUE == portInterruptsEnabled ) && ( TRUE != portServicingTick ) ) { if ( 0 == pthread_mutex_trylock( &portSingleThreadMutex ) ){ portServicingTick = TRUE; EnterISR(); printf("In portSystemTickHandler().\n"); #if(cfgOS_COUNTER_NUM > 0) (void)SignalCounter(0); #endif #if(cfgOS_COUNTER_NUM > 1) (void)SignalCounter(1); #endif LeaveISR(); /* Release the lock as we are Resuming. */ (void)pthread_mutex_unlock( &portSingleThreadMutex ); portServicingTick = FALSE; } } }