]> git.sur5r.net Git - freertos/commitdiff
Removed unused function from IAR CM4F port.c.
authorrichardbarry <richardbarry@1d2547de-c912-0410-9cb9-b8ca96c0e9e2>
Mon, 16 Apr 2012 17:04:42 +0000 (17:04 +0000)
committerrichardbarry <richardbarry@1d2547de-c912-0410-9cb9-b8ca96c0e9e2>
Mon, 16 Apr 2012 17:04:42 +0000 (17:04 +0000)
Modified the stack alignment when a task first starts in the IAR CM4F port.

git-svn-id: https://svn.code.sf.net/p/freertos/code/trunk@1733 1d2547de-c912-0410-9cb9-b8ca96c0e9e2

Source/portable/IAR/ARM_CM4F/port.c
Source/portable/IAR/ARM_CM4F/portasm.s
Source/portable/IAR/ARM_CM4F/portmacro.h

index cade67224431a7382a116dfa892230849539e586..49453ec145fff3ab4c52d964f8675462d6d78933 100644 (file)
@@ -119,7 +119,7 @@ portSTACK_TYPE *pxPortInitialiseStack( portSTACK_TYPE *pxTopOfStack, pdTASK_CODE
        \r
        /* Offset added to account for the way the MCU uses the stack on entry/exit\r
        of interrupts, and to ensure alignment. */\r
-       pxTopOfStack -= 2;\r
+       pxTopOfStack--;\r
                \r
        *pxTopOfStack = portINITIAL_XPSR;       /* xPSR */\r
        pxTopOfStack--;\r
@@ -131,7 +131,7 @@ portSTACK_TYPE *pxPortInitialiseStack( portSTACK_TYPE *pxTopOfStack, pdTASK_CODE
        pxTopOfStack -= 5;      /* R12, R3, R2 and R1. */\r
        *pxTopOfStack = ( portSTACK_TYPE ) pvParameters;        /* R0 */\r
 \r
-       /* A save method is being used that requiers each task to maintain its\r
+       /* A save method is being used that requires each task to maintain its\r
        own exec return value. */\r
        pxTopOfStack--;\r
        *pxTopOfStack = portINITIAL_EXEC_RETURN;\r
index 85f1d7ce3d43ed1af371f3e754517f9595cf7a0d..759e18c522b0a8ab49534db4c2e78bd86ea54cb3 100644 (file)
        RSEG    CODE:CODE(2)\r
        thumb\r
 \r
-       EXTERN vPortYieldFromISR\r
        EXTERN pxCurrentTCB\r
        EXTERN vTaskSwitchContext\r
 \r
-       PUBLIC vSetMSP\r
        PUBLIC xPortPendSVHandler\r
        PUBLIC vPortSetInterruptMask\r
        PUBLIC vPortClearInterruptMask\r
        PUBLIC vPortStartFirstTask\r
        PUBLIC vPortEnableVFP\r
 \r
-/*-----------------------------------------------------------*/\r
 \r
-vSetMSP\r
-       msr msp, r0\r
-       bx lr\r
-       \r
 /*-----------------------------------------------------------*/\r
 \r
 xPortPendSVHandler:\r
@@ -137,7 +130,7 @@ vPortClearInterruptMask:
 \r
 /*-----------------------------------------------------------*/\r
 \r
-vPortSVCHandler;\r
+vPortSVCHandler:\r
        /* Get the location of the current TCB. */\r
        ldr     r3, =pxCurrentTCB\r
        ldr r1, [r3]\r
@@ -151,7 +144,7 @@ vPortSVCHandler;
 \r
 /*-----------------------------------------------------------*/\r
 \r
-vPortStartFirstTask\r
+vPortStartFirstTask:\r
        /* Use the NVIC offset register to locate the stack. */\r
        ldr r0, =0xE000ED08\r
        ldr r0, [r0]\r
@@ -164,7 +157,7 @@ vPortStartFirstTask
 \r
 /*-----------------------------------------------------------*/\r
 \r
-vPortEnableVFP\r
+vPortEnableVFP:\r
        /* The FPU enable bits are in the CPACR. */\r
        ldr.w r0, =0xE000ED88\r
        ldr     r1, [r0]\r
index 7ad59b0f9954c660237abed2cd1d0c8e4765bdd1..5c812107ee44a2204afcb95c82b8b52c87c0ad50 100644 (file)
@@ -117,6 +117,10 @@ extern void vPortClearInterruptMask( void );
 #define portSET_INTERRUPT_MASK_FROM_ISR()              0;vPortSetInterruptMask()\r
 #define portCLEAR_INTERRUPT_MASK_FROM_ISR(x)   vPortClearInterruptMask();(void)x\r
 \r
+/* There are an uneven number of items on the initial stack, so \r
+portALIGNMENT_ASSERT_pxCurrentTCB() will trigger false positive asserts. */\r
+#define portALIGNMENT_ASSERT_pxCurrentTCB ( void )\r
+\r
 /*-----------------------------------------------------------*/\r
 \r
 /* Task function macros as described on the FreeRTOS.org WEB site. */\r