URL
https://opencores.org/ocsvn/openrisc_2011-10-31/openrisc_2011-10-31/trunk
Subversion Repositories openrisc_2011-10-31
[/] [openrisc/] [trunk/] [rtos/] [freertos-6.1.1/] [Source/] [portable/] [IAR/] [STR71x/] [portasm.s79] - Rev 572
Compare with Previous | Blame | View Log
RSEG ICODE:CODECODE32EXTERN vPortPreemptiveTickEXTERN vTaskSwitchContextPUBLIC vPortYieldProcessorPUBLIC vPortStartFirstTaskPUBLIC vPortPreemptiveTickISR#include "ISR_Support.h";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Starting the first task is just a matter of restoring the context that; was created by pxPortInitialiseStack().;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;vPortStartFirstTask:portRESTORE_CONTEXT;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Manual context switch function. This is the SWI hander.;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;vPortYieldProcessor:ADD LR, LR, #4 ; Add 4 to the LR to make the LR appear exactly; as if the context was saved during and IRQ; handler.portSAVE_CONTEXT ; Save the context of the current task...LDR R0, =vTaskSwitchContext ; before selecting the next task to execute.mov lr, pcBX R0portRESTORE_CONTEXT ; Restore the context of the selected task.;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Preemptive context switch function. This will only ever get used if; portUSE_PREEMPTION is set to 1 in portmacro.h.;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;vPortPreemptiveTickISR:portSAVE_CONTEXT ; Save the context of the current task.LDR R0, =vPortPreemptiveTick ; Increment the tick count - this may wake a task.MOV lr, pcBX R0portRESTORE_CONTEXT ; Restore the context of the selected task.END
