;/*\r
-; FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
-; \r
+; FreeRTOS V9.0.0rc2 - Copyright (C) 2016 Real Time Engineers Ltd.\r
+; All rights reserved\r
+;\r
;\r
; ***************************************************************************\r
; * *\r
; ---------------------------\r
EXTERN vTaskSwitchContext\r
EXTERN pxCurrentTCB\r
-EXTERN vTaskIncrementTick\r
+EXTERN xTaskIncrementTick\r
EXTERN uxCriticalNesting\r
\r
; Functions implemented in this file\r
ORG USART_UDRE_vect ; Vector address\r
jmp SIG_UART_DATA ; ISR\r
\r
- \r
+\r
RSEG CODE\r
\r
\r
out SREG, r0\r
\r
ld r0, y+ ; Finally we have finished with r0, so restore r0.\r
- \r
+\r
ENDM\r
\r
\r
\r
vPortYieldFromTick:\r
portSAVE_CONTEXT ; Save the context of the current task.\r
- call vTaskIncrementTick ; Call the timer tick function.\r
+ call xTaskIncrementTick ; Call the timer tick function.\r
+ tst r16\r
+ breq SkipTaskSwitch\r
call vTaskSwitchContext ; Call the scheduler.\r
+SkipTaskSwitch:\r
portRESTORE_CONTEXT ; Restore the context of whichever task the ...\r
ret ; ... scheduler decided should run.\r
\r