]> git.sur5r.net Git - freertos/blobdiff - FreeRTOS/Source/portable/GCC/ARM_CA9/portASM.S
Update version number to 9.0.0rc2.
[freertos] / FreeRTOS / Source / portable / GCC / ARM_CA9 / portASM.S
index 844a3f18ed82723e0effd2195805189ecab54460..6fbde1ea06d81e3989e7fd1ad5ec3de7ee9a0b6a 100644 (file)
@@ -1,5 +1,5 @@
 /*\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
@@ -53,6 +53,7 @@
 */\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
@@ -279,14 +289,6 @@ switch_before_exit:
        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