]> git.sur5r.net Git - freertos/commitdiff
+ The macro portENTER_SWITCHING_ISR() no longer attempts to use the frame pointer...
authorRichardBarry <RichardBarry@1d2547de-c912-0410-9cb9-b8ca96c0e9e2>
Fri, 26 Oct 2007 09:52:15 +0000 (09:52 +0000)
committerRichardBarry <RichardBarry@1d2547de-c912-0410-9cb9-b8ca96c0e9e2>
Fri, 26 Oct 2007 09:52:15 +0000 (09:52 +0000)
git-svn-id: https://svn.code.sf.net/p/freertos/code/trunk@111 1d2547de-c912-0410-9cb9-b8ca96c0e9e2

Source/include/queue.h
Source/portable/GCC/ARM7_AT91FR40008/portmacro.h
Source/portable/GCC/ARM7_AT91SAM7S/portmacro.h
Source/portable/GCC/ARM7_LPC2000/portmacro.h
Source/portable/GCC/ARM7_LPC23xx/portmacro.h

index 6f6fdb7b4a9c0b311d74ecfbf747094879b759b8..bd21cbea094110117064efaf657d822028103965 100644 (file)
@@ -435,7 +435,7 @@ xQueueHandle xQueueCreate( unsigned portBASE_TYPE uxQueueLength, unsigned portBA
  * \defgroup xQueueSend xQueueSend\r
  * \ingroup QueueManagement\r
  */\r
-signed portBASE_TYPE xQueueGenericSend( xQueueHandle xQueue, const void * const pvItemToQueue, portTickType xTicksToWait, portTickType xCopyPosition );\r
+signed portBASE_TYPE xQueueGenericSend( xQueueHandle xQueue, const void * const pvItemToQueue, portTickType xTicksToWait, portBASE_TYPE xCopyPosition );\r
 \r
 /**\r
  * queue. h\r
index 03870c4439c68b8dcbdc39e442f0ce2f02e683f1..2458050a3068a11a9cef9fa37962ea587f30b4bb 100644 (file)
 \r
        + The assembler statements are now included in a single asm block rather\r
          than each line having its own asm block.\r
+\r
+       Changes from V4.5.0\r
+\r
+       + The macro portENTER_SWITCHING_ISR() no longer attempts to use the frame\r
+         pointer.  Variables declared within ISRs must now be declared static.\r
 */\r
 \r
 #ifndef PORTMACRO_H\r
@@ -197,12 +202,6 @@ extern volatile unsigned portLONG ulCriticalNesting;                                       \
 #define portENTER_SWITCHING_ISR()                                                                              \\r
        /* Save the context of the interrupted task. */                                         \\r
        portSAVE_CONTEXT();                                                                                                     \\r
-                                                                                                                                               \\r
-       /* We don't know the stack requirements for the ISR, so the frame */\\r
-       /* pointer will be set to the top of the task stack, and the stack*/\\r
-       /* pointer left where it is.  The IRQ stack will get used for any */\\r
-       /* functions calls made by this ISR. */                                                         \\r
-       asm volatile ( "SUB             R11, LR, #4" );                                                         \\r
        {\r
 \r
 #define portEXIT_SWITCHING_ISR( SwitchRequired )                                               \\r
index 53fc77d0cf447a635d599ff21886f36f8cc4777f..9ec48a238241b0c111349b0e0d8bf73438376d11 100644 (file)
@@ -47,6 +47,9 @@
 \r
        + The assembler statements are now included in a single asm block rather\r
          than each line having its own asm block.\r
+\r
+       + The macro portENTER_SWITCHING_ISR() no longer attempts to use the frame\r
+         pointer.  Variables declared within ISRs must now be declared static.\r
 */\r
 \r
 #ifndef PORTMACRO_H\r
@@ -190,12 +193,6 @@ extern volatile unsigned portLONG ulCriticalNesting;                                       \
 #define portENTER_SWITCHING_ISR()                                                                              \\r
        /* Save the context of the interrupted task. */                                         \\r
        portSAVE_CONTEXT();                                                                                                     \\r
-                                                                                                                                               \\r
-       /* We don't know the stack requirements for the ISR, so the frame */\\r
-       /* pointer will be set to the top of the task stack, and the stack*/\\r
-       /* pointer left where it is.  The IRQ stack will get used for any */\\r
-       /* functions calls made by this ISR. */                                                         \\r
-       asm volatile ( "SUB             R11, LR, #4" );                                                 \\r
        {\r
 \r
 #define portEXIT_SWITCHING_ISR( SwitchRequired )                                               \\r
index 53fc77d0cf447a635d599ff21886f36f8cc4777f..9ec48a238241b0c111349b0e0d8bf73438376d11 100644 (file)
@@ -47,6 +47,9 @@
 \r
        + The assembler statements are now included in a single asm block rather\r
          than each line having its own asm block.\r
+\r
+       + The macro portENTER_SWITCHING_ISR() no longer attempts to use the frame\r
+         pointer.  Variables declared within ISRs must now be declared static.\r
 */\r
 \r
 #ifndef PORTMACRO_H\r
@@ -190,12 +193,6 @@ extern volatile unsigned portLONG ulCriticalNesting;                                       \
 #define portENTER_SWITCHING_ISR()                                                                              \\r
        /* Save the context of the interrupted task. */                                         \\r
        portSAVE_CONTEXT();                                                                                                     \\r
-                                                                                                                                               \\r
-       /* We don't know the stack requirements for the ISR, so the frame */\\r
-       /* pointer will be set to the top of the task stack, and the stack*/\\r
-       /* pointer left where it is.  The IRQ stack will get used for any */\\r
-       /* functions calls made by this ISR. */                                                         \\r
-       asm volatile ( "SUB             R11, LR, #4" );                                                 \\r
        {\r
 \r
 #define portEXIT_SWITCHING_ISR( SwitchRequired )                                               \\r
index c068fcb77991b930908146d204e1574d93937db4..d6d3f4de5d91a22fd1dc3c41b72dbb200231d9f1 100644 (file)
@@ -44,6 +44,9 @@
 \r
        + The assembler statements are now included in a single asm block rather\r
          than each line having its own asm block.\r
+\r
+       + The macro portENTER_SWITCHING_ISR() no longer attempts to use the frame\r
+         pointer.  Variables declared within ISRs must now be declared static.\r
 */\r
 \r
 #ifndef PORTMACRO_H\r
@@ -187,12 +190,6 @@ extern volatile unsigned portLONG ulCriticalNesting;                                       \
 #define portENTER_SWITCHING_ISR()                                                                              \\r
        /* Save the context of the interrupted task. */                                         \\r
        portSAVE_CONTEXT();                                                                                                     \\r
-                                                                                                                                               \\r
-       /* We don't know the stack requirements for the ISR, so the frame */\\r
-       /* pointer will be set to the top of the task stack, and the stack*/\\r
-       /* pointer left where it is.  The IRQ stack will get used for any */\\r
-       /* functions calls made by this ISR. */                                                         \\r
-       asm volatile ( "SUB             R11, LR, #4" );                                                 \\r
        {\r
 \r
 #define portEXIT_SWITCHING_ISR( SwitchRequired )                                               \\r