__interrupt static void prvTickISR( void ) { /* Re-enable interrupts. */ __enable_interrupt(); /* Increment the tick, and perform any processing the new tick value necessitates. */ __set_interrupt_level( configMAX_SYSCALL_INTERRUPT_PRIORITY ); { if( xTaskIncrementTick() != pdFALSE ) { taskYIELD(); } } __set_interrupt_level( configKERNEL_INTERRUPT_PRIORITY ); #if configUSE_TICKLESS_IDLE == 1 { /* The CPU woke because of a tick. */ ulTickFlag = pdTRUE; /* If this is the first tick since exiting tickless mode then the CMT compare match value needs resetting. */ CMT0.CMCOR = ( unsigned short ) ulMatchValueForOneTick; } #endif }
__interrupt void vTickISR( void ) { /* Re-enable interrupts. */ __enable_interrupt(); /* Increment the tick, and perform any processing the new tick value necessitates. */ __set_interrupt_level( configMAX_SYSCALL_INTERRUPT_PRIORITY ); { if( xTaskIncrementTick() != pdFALSE ) { taskYIELD(); } } __set_interrupt_level( configKERNEL_INTERRUPT_PRIORITY ); }
__interrupt void vTickISR( void ) { /* Re-enable interrupts. */ __enable_interrupt(); /* Increment the tick, and perform any processing the new tick value necessitates. */ __set_interrupt_level( configMAX_SYSCALL_INTERRUPT_PRIORITY ); { vTaskIncrementTick(); } __set_interrupt_level( configKERNEL_INTERRUPT_PRIORITY ); /* Only select a new task if the preemptive scheduler is being used. */ #if( configUSE_PREEMPTION == 1 ) taskYIELD(); #endif }