Update SAM4L_low_power_tick_management.c to use xTaskIncrementTick() in place of vTaskIncrementTick().

This commit is contained in:
Richard Barry 2013-06-06 11:26:15 +00:00
parent 2e5d812022
commit 66734268f5

View file

@ -116,7 +116,7 @@ within the Cortex-M core itself. */
*/ */
void AST_ALARM_Handler(void); void AST_ALARM_Handler(void);
/* /*
* Functions that disable and enable the AST respectively, not returning until * Functions that disable and enable the AST respectively, not returning until
* the operation is known to have taken effect. * the operation is known to have taken effect.
*/ */
@ -150,18 +150,13 @@ clears the interrupt, which is specific to the clock being used to generate the
tick. */ tick. */
void AST_ALARM_Handler(void) void AST_ALARM_Handler(void)
{ {
/* If using preemption, also force a context switch by pending the PendSV
interrupt. */
#if configUSE_PREEMPTION == 1
{
portNVIC_INT_CTRL_REG = portNVIC_PENDSVSET_BIT;
}
#endif
/* Protect incrementing the tick with an interrupt safe critical section. */ /* Protect incrementing the tick with an interrupt safe critical section. */
( void ) portSET_INTERRUPT_MASK_FROM_ISR(); ( void ) portSET_INTERRUPT_MASK_FROM_ISR();
{ {
vTaskIncrementTick(); if( xTaskIncrementTick() != pdFALSE )
{
portNVIC_INT_CTRL_REG = portNVIC_PENDSVSET_BIT;
}
/* Just completely clear the interrupt mask on exit by passing 0 because /* Just completely clear the interrupt mask on exit by passing 0 because
it is known that this interrupt will only ever execute with the lowest it is known that this interrupt will only ever execute with the lowest
@ -262,8 +257,8 @@ static void prvEnableAST( void )
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
/* Override the default definition of vPortSuppressTicksAndSleep() that is weakly /* Override the default definition of vPortSuppressTicksAndSleep() that is weakly
defined in the FreeRTOS Cortex-M3 port layet with a version that manages the defined in the FreeRTOS Cortex-M3 port layet with a version that manages the
asynchronous timer (AST), as the tick is generated from the low power AST and asynchronous timer (AST), as the tick is generated from the low power AST and
not the SysTick as would normally be the case on a Cortex-M. */ not the SysTick as would normally be the case on a Cortex-M. */
void vPortSuppressTicksAndSleep( portTickType xExpectedIdleTime ) void vPortSuppressTicksAndSleep( portTickType xExpectedIdleTime )
{ {