]> git.sur5r.net Git - freertos/commitdiff
Modify the stack set up when ARM7/9 tasks are created to ensure the assert() calls...
authorrichardbarry <richardbarry@1d2547de-c912-0410-9cb9-b8ca96c0e9e2>
Sun, 28 Aug 2011 13:06:11 +0000 (13:06 +0000)
committerrichardbarry <richardbarry@1d2547de-c912-0410-9cb9-b8ca96c0e9e2>
Sun, 28 Aug 2011 13:06:11 +0000 (13:06 +0000)
git-svn-id: https://svn.code.sf.net/p/freertos/code/trunk@1571 1d2547de-c912-0410-9cb9-b8ca96c0e9e2

Source/portable/GCC/ARM7_AT91FR40008/port.c
Source/portable/GCC/ARM7_AT91SAM7S/port.c
Source/portable/GCC/ARM7_LPC2000/port.c
Source/portable/GCC/ARM7_LPC23xx/port.c
Source/portable/GCC/STR75x/port.c
Source/portable/IAR/AtmelSAM7S64/port.c
Source/portable/IAR/AtmelSAM9XE/port.c
Source/portable/IAR/STR71x/port.c
Source/portable/IAR/STR75x/port.c
Source/portable/IAR/STR91x/port.c
Source/portable/RVDS/ARM7_LPC21xx/port.c

index 0570d82272d9717e662a8126516bc8472080d2d9..238c4f27e3f84619b1daaef9b8c973e367977838 100644 (file)
@@ -104,6 +104,10 @@ portSTACK_TYPE *pxPortInitialiseStack( portSTACK_TYPE *pxTopOfStack, pdTASK_CODE
 portSTACK_TYPE *pxOriginalTOS;\r
 \r
        pxOriginalTOS = pxTopOfStack;\r
+       \r
+       /* To ensure asserts in tasks.c don't fail, although in this case the assert\r
+       is not really required. */\r
+       pxTopOfStack--;\r
 \r
        /* Setup the initial stack of the task.  The stack is set exactly as \r
        expected by the portRESTORE_CONTEXT() macro. */\r
index 482dcd561bd82f652e04fe97fa8cbec29937c454..27fa749fe911885a5e8e31b2f4e5aaa9d08bbc8a 100644 (file)
  * to ARM mode are contained in portISR.c.\r
  *----------------------------------------------------------*/\r
 \r
-/*\r
-       Changes from V2.5.2\r
-               \r
-       + ulCriticalNesting is now saved as part of the task context, as is \r
-         therefore added to the initial task stack during pxPortInitialiseStack.\r
-*/\r
-\r
-\r
 /* Standard includes. */\r
 #include <stdlib.h>\r
 \r
@@ -122,6 +114,10 @@ portSTACK_TYPE *pxOriginalTOS;
 \r
        pxOriginalTOS = pxTopOfStack;\r
 \r
+       /* To ensure asserts in tasks.c don't fail, although in this case the assert\r
+       is not really required. */\r
+       pxTopOfStack--;\r
+\r
        /* Setup the initial stack of the task.  The stack is set exactly as \r
        expected by the portRESTORE_CONTEXT() macro. */\r
 \r
index 29d2e45bc14299c8b9095cfda7804278f17fc30d..4a98d5d55f65c8e77347d32b0b3826308f8f0f59 100644 (file)
@@ -110,6 +110,10 @@ portSTACK_TYPE *pxOriginalTOS;
 \r
        pxOriginalTOS = pxTopOfStack;\r
 \r
+       /* To ensure asserts in tasks.c don't fail, although in this case the assert\r
+       is not really required. */\r
+       pxTopOfStack--;\r
+\r
        /* Setup the initial stack of the task.  The stack is set exactly as \r
        expected by the portRESTORE_CONTEXT() macro. */\r
 \r
index b29f3e160f569ed41f54e8cd531c32af39714af4..c366bef72c1d20171892f7b990b8f06fac90082a 100644 (file)
@@ -109,6 +109,10 @@ portSTACK_TYPE *pxPortInitialiseStack( portSTACK_TYPE *pxTopOfStack, pdTASK_CODE
 portSTACK_TYPE *pxOriginalTOS;\r
 \r
        pxOriginalTOS = pxTopOfStack;\r
+       \r
+       /* To ensure asserts in tasks.c don't fail, although in this case the assert\r
+       is not really required. */\r
+       pxTopOfStack--;\r
 \r
        /* Setup the initial stack of the task.  The stack is set exactly as \r
        expected by the portRESTORE_CONTEXT() macro. */\r
index 0a77949636e84888edf534ab9f13e10d9a50bed8..766fbb451d1959cf1bd43449c00c4e18fd1ef41a 100644 (file)
@@ -95,6 +95,10 @@ portSTACK_TYPE *pxOriginalTOS;
 \r
        pxOriginalTOS = pxTopOfStack;\r
 \r
+       /* To ensure asserts in tasks.c don't fail, although in this case the assert\r
+       is not really required. */\r
+       pxTopOfStack--;\r
+\r
        /* Setup the initial stack of the task.  The stack is set exactly as\r
        expected by the portRESTORE_CONTEXT() macro. */\r
 \r
index 693028f0b3024f05e752a0e7caa485a2c5b90890..6bde1b1a656de2c2e3e3f4ce12fe4be6f048d764 100644 (file)
@@ -103,6 +103,10 @@ portSTACK_TYPE *pxOriginalTOS;
 \r
        pxOriginalTOS = pxTopOfStack;\r
 \r
+       /* To ensure asserts in tasks.c don't fail, although in this case the assert\r
+       is not really required. */\r
+       pxTopOfStack--;\r
+\r
        /* Setup the initial stack of the task.  The stack is set exactly as\r
        expected by the portRESTORE_CONTEXT() macro. */\r
 \r
index 69f6a5dffd4b7a4143ec3cf614138f2201fa64e3..704f71cd2ebabc9572e40590e538557019626546 100644 (file)
@@ -118,6 +118,10 @@ portSTACK_TYPE *pxOriginalTOS;
 \r
        pxOriginalTOS = pxTopOfStack;\r
 \r
+       /* To ensure asserts in tasks.c don't fail, although in this case the assert\r
+       is not really required. */\r
+       pxTopOfStack--;\r
+\r
        /* Setup the initial stack of the task.  The stack is set exactly as\r
        expected by the portRESTORE_CONTEXT() macro. */\r
 \r
index 3ecc9b4db18854dbc98c5446b1ed63f279ecab79..0aebb82669ec435541e7102fdf0280b5ac60c2a9 100644 (file)
@@ -107,6 +107,10 @@ portSTACK_TYPE *pxOriginalTOS;
 \r
        pxOriginalTOS = pxTopOfStack;\r
 \r
+       /* To ensure asserts in tasks.c don't fail, although in this case the assert\r
+       is not really required. */\r
+       pxTopOfStack--;\r
+\r
        /* Setup the initial stack of the task.  The stack is set exactly as\r
        expected by the portRESTORE_CONTEXT() macro. */\r
 \r
index fd56f44ec72b9392c0ee26eed96ec5f8f2e65658..11e983ec4850daddd010d02db0bc9a5b4ad45a60 100644 (file)
@@ -102,6 +102,10 @@ portSTACK_TYPE *pxOriginalTOS;
 \r
        pxOriginalTOS = pxTopOfStack;\r
 \r
+       /* To ensure asserts in tasks.c don't fail, although in this case the assert\r
+       is not really required. */\r
+       pxTopOfStack--;\r
+\r
        /* Setup the initial stack of the task.  The stack is set exactly as\r
        expected by the portRESTORE_CONTEXT() macro. */\r
 \r
index 4a0cd97aa037ec2d39dcc40710d9616be5c6b215..12f3f08b93a26b6a69aa1a22aa62d71af66eae06 100644 (file)
@@ -147,6 +147,10 @@ portSTACK_TYPE *pxPortInitialiseStack( portSTACK_TYPE *pxTopOfStack, pdTASK_CODE
 \r
        pxOriginalTOS = pxTopOfStack;\r
 \r
+       /* To ensure asserts in tasks.c don't fail, although in this case the assert\r
+       is not really required. */\r
+       pxTopOfStack--;\r
+\r
        /* Setup the initial stack of the task.  The stack is set exactly as\r
        expected by the portRESTORE_CONTEXT() macro. */\r
 \r
index 307f06e90e73bd0a8496cc38aebf883e06e3d2c1..98ccaad02f12d215003459e08d738938cb34cfef 100644 (file)
@@ -117,6 +117,10 @@ portSTACK_TYPE *pxOriginalTOS;
        Remember where the top of the (simulated) stack is before we place \r
        anything on it. */\r
        pxOriginalTOS = pxTopOfStack;\r
+       \r
+       /* To ensure asserts in tasks.c don't fail, although in this case the assert\r
+       is not really required. */\r
+       pxTopOfStack--;\r
 \r
        /* First on the stack is the return address - which in this case is the\r
        start of the task.  The offset is added to make the return address appear\r