;*/\r
\r
.text\r
+ .align 2\r
\r
-vPortPreemptiveTickISR:\r
+vPortPreemptiveTickISR: .asmfunc\r
\r
; The sr is not saved in portSAVE_CONTEXT() because vPortYield() needs\r
;to save it manually before it gets modified (interrupts get disabled).\r
call_x #vTaskSwitchContext\r
\r
portRESTORE_CONTEXT\r
+ .endasmfunc\r
;-----------------------------------------------------------\r
\r
-vPortCooperativeTickISR:\r
+ .align 2\r
+ \r
+vPortCooperativeTickISR: .asmfunc\r
\r
; The sr is not saved in portSAVE_CONTEXT() because vPortYield() needs\r
;to save it manually before it gets modified (interrupts get disabled).\r
call_x #vTaskIncrementTick\r
\r
portRESTORE_CONTEXT\r
+ \r
+ .endasmfunc\r
;-----------------------------------------------------------\r
\r
-;*\r
-;* Manual context switch called by the portYIELD() macro.\r
-;*/\r
-vPortYield:\r
+;\r
+; Manual context switch called by the portYIELD() macro.\r
+;\r
+\r
+ .align 2\r
+\r
+vPortYield: .asmfunc\r
\r
; The sr needs saving before it is modified.\r
push.w sr\r
\r
; Restore the context of the new task.\r
portRESTORE_CONTEXT\r
+ .endasmfunc\r
;-----------------------------------------------------------\r
\r
\r
-;*\r
-;* Start off the scheduler by initialising the RTOS tick timer, then restoring\r
-;* the context of the first task.\r
-;*\r
-xPortStartScheduler:\r
+;\r
+; Start off the scheduler by initialising the RTOS tick timer, then restoring\r
+; the context of the first task.\r
+;\r
+\r
+ .align 2\r
+ \r
+xPortStartScheduler: .asmfunc\r
\r
; Setup the hardware to generate the tick. Interrupts are disabled\r
; when this function is called.\r
\r
; Restore the context of the first task that is going to run.\r
portRESTORE_CONTEXT\r
+ .endasmfunc\r
;-----------------------------------------------------------\r
\r
.end\r