/*\r
- FreeRTOS V8.0.0:rc1 - Copyright (C) 2014 Real Time Engineers Ltd.\r
+ FreeRTOS V9.0.0rc2 - Copyright (C) 2016 Real Time Engineers Ltd.\r
All rights reserved\r
\r
\r
*/\r
\r
.text\r
+ .arm\r
\r
.set SYS_MODE, 0x1f\r
.set SVC_MODE, 0x13\r
.extern vTaskSwitchContext\r
.extern vApplicationIRQHandler\r
.extern ulPortInterruptNesting\r
+ .extern ulPortTaskHasFPUContext\r
\r
.global FreeRTOS_IRQ_Handler\r
.global FreeRTOS_SWI_Handler\r
.global vPortRestoreTaskContext\r
- .global vPortInstallFreeRTOSVectorTable\r
\r
\r
\r
\r
.macro portRESTORE_CONTEXT\r
\r
- /* Switch to system mode. */\r
- CPS #SYS_MODE\r
-\r
/* Set the SP to point to the stack of the task being restored. */\r
LDR R0, pxCurrentTCBConst\r
LDR R1, [R0]\r
\r
\r
/******************************************************************************\r
- * SVC handler is used to start the scheduler and yield a task.\r
+ * SVC handler is used to start the scheduler.\r
*****************************************************************************/\r
+.align 4\r
+.type FreeRTOS_SWI_Handler, %function\r
FreeRTOS_SWI_Handler:\r
/* Save the context of the current task and select a new task to run. */\r
portSAVE_CONTEXT\r
LDR R0, vTaskSwitchContextConst\r
BLX R0\r
+ portRESTORE_CONTEXT\r
+\r
\r
+/******************************************************************************\r
+ * vPortRestoreTaskContext is used to start the scheduler.\r
+ *****************************************************************************/\r
+.type vPortRestoreTaskContext, %function\r
vPortRestoreTaskContext:\r
+ /* Switch to system mode. */\r
+ CPS #SYS_MODE\r
portRESTORE_CONTEXT\r
\r
+.align 4\r
+.type FreeRTOS_IRQ_Handler, %function\r
FreeRTOS_IRQ_Handler:\r
/* Return to the interrupted instruction. */\r
SUB lr, lr, #4\r
next. */\r
portRESTORE_CONTEXT\r
\r
-vPortInstallFreeRTOSVectorTable:\r
- /* Set VBAR to the vector table that contains the FreeRTOS handlers. */\r
- ldr r0, =_freertos_vector_table\r
- mcr p15, 0, r0, c12, c0, 0\r
- dsb\r
- isb\r
- bx lr\r
-\r
ulICCIARConst: .word ulICCIAR\r
ulICCEOIRConst: .word ulICCEOIR\r
ulICCPMRConst: .word ulICCPMR\r