summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRichardBarry <RichardBarry@1d2547de-c912-0410-9cb9-b8ca96c0e9e2>2007-10-26 09:52:15 +0000
committerRichardBarry <RichardBarry@1d2547de-c912-0410-9cb9-b8ca96c0e9e2>2007-10-26 09:52:15 +0000
commitafd35a7ba6099aa6f3a401af90980ba4a9760e97 (patch)
tree3f3aa3a46ef69fdab4ba3c6a98280507d8910f0b
parent3062eea17318ea053a4881bc0bcaa98ba8829cc1 (diff)
downloadfreertos-afd35a7ba6099aa6f3a401af90980ba4a9760e97.tar.gz
+ The macro portENTER_SWITCHING_ISR() no longer attempts to use the frame pointer. Variables declared within ISRs must now be declared static.
git-svn-id: http://svn.code.sf.net/p/freertos/code/trunk@111 1d2547de-c912-0410-9cb9-b8ca96c0e9e2
-rw-r--r--Source/include/queue.h2
-rw-r--r--Source/portable/GCC/ARM7_AT91FR40008/portmacro.h11
-rw-r--r--Source/portable/GCC/ARM7_AT91SAM7S/portmacro.h9
-rw-r--r--Source/portable/GCC/ARM7_LPC2000/portmacro.h9
-rw-r--r--Source/portable/GCC/ARM7_LPC23xx/portmacro.h9
5 files changed, 15 insertions, 25 deletions
diff --git a/Source/include/queue.h b/Source/include/queue.h
index 6f6fdb7b4..bd21cbea0 100644
--- a/Source/include/queue.h
+++ b/Source/include/queue.h
@@ -435,7 +435,7 @@ xQueueHandle xQueueCreate( unsigned portBASE_TYPE uxQueueLength, unsigned portBA
* \defgroup xQueueSend xQueueSend
* \ingroup QueueManagement
*/
-signed portBASE_TYPE xQueueGenericSend( xQueueHandle xQueue, const void * const pvItemToQueue, portTickType xTicksToWait, portTickType xCopyPosition );
+signed portBASE_TYPE xQueueGenericSend( xQueueHandle xQueue, const void * const pvItemToQueue, portTickType xTicksToWait, portBASE_TYPE xCopyPosition );
/**
* queue. h
diff --git a/Source/portable/GCC/ARM7_AT91FR40008/portmacro.h b/Source/portable/GCC/ARM7_AT91FR40008/portmacro.h
index 03870c443..2458050a3 100644
--- a/Source/portable/GCC/ARM7_AT91FR40008/portmacro.h
+++ b/Source/portable/GCC/ARM7_AT91FR40008/portmacro.h
@@ -47,6 +47,11 @@
+ The assembler statements are now included in a single asm block rather
than each line having its own asm block.
+
+ Changes from V4.5.0
+
+ + The macro portENTER_SWITCHING_ISR() no longer attempts to use the frame
+ pointer. Variables declared within ISRs must now be declared static.
*/
#ifndef PORTMACRO_H
@@ -197,12 +202,6 @@ extern volatile unsigned portLONG ulCriticalNesting; \
#define portENTER_SWITCHING_ISR() \
/* Save the context of the interrupted task. */ \
portSAVE_CONTEXT(); \
- \
- /* We don't know the stack requirements for the ISR, so the frame */\
- /* pointer will be set to the top of the task stack, and the stack*/\
- /* pointer left where it is. The IRQ stack will get used for any */\
- /* functions calls made by this ISR. */ \
- asm volatile ( "SUB R11, LR, #4" ); \
{
#define portEXIT_SWITCHING_ISR( SwitchRequired ) \
diff --git a/Source/portable/GCC/ARM7_AT91SAM7S/portmacro.h b/Source/portable/GCC/ARM7_AT91SAM7S/portmacro.h
index 53fc77d0c..9ec48a238 100644
--- a/Source/portable/GCC/ARM7_AT91SAM7S/portmacro.h
+++ b/Source/portable/GCC/ARM7_AT91SAM7S/portmacro.h
@@ -47,6 +47,9 @@
+ The assembler statements are now included in a single asm block rather
than each line having its own asm block.
+
+ + The macro portENTER_SWITCHING_ISR() no longer attempts to use the frame
+ pointer. Variables declared within ISRs must now be declared static.
*/
#ifndef PORTMACRO_H
@@ -190,12 +193,6 @@ extern volatile unsigned portLONG ulCriticalNesting; \
#define portENTER_SWITCHING_ISR() \
/* Save the context of the interrupted task. */ \
portSAVE_CONTEXT(); \
- \
- /* We don't know the stack requirements for the ISR, so the frame */\
- /* pointer will be set to the top of the task stack, and the stack*/\
- /* pointer left where it is. The IRQ stack will get used for any */\
- /* functions calls made by this ISR. */ \
- asm volatile ( "SUB R11, LR, #4" ); \
{
#define portEXIT_SWITCHING_ISR( SwitchRequired ) \
diff --git a/Source/portable/GCC/ARM7_LPC2000/portmacro.h b/Source/portable/GCC/ARM7_LPC2000/portmacro.h
index 53fc77d0c..9ec48a238 100644
--- a/Source/portable/GCC/ARM7_LPC2000/portmacro.h
+++ b/Source/portable/GCC/ARM7_LPC2000/portmacro.h
@@ -47,6 +47,9 @@
+ The assembler statements are now included in a single asm block rather
than each line having its own asm block.
+
+ + The macro portENTER_SWITCHING_ISR() no longer attempts to use the frame
+ pointer. Variables declared within ISRs must now be declared static.
*/
#ifndef PORTMACRO_H
@@ -190,12 +193,6 @@ extern volatile unsigned portLONG ulCriticalNesting; \
#define portENTER_SWITCHING_ISR() \
/* Save the context of the interrupted task. */ \
portSAVE_CONTEXT(); \
- \
- /* We don't know the stack requirements for the ISR, so the frame */\
- /* pointer will be set to the top of the task stack, and the stack*/\
- /* pointer left where it is. The IRQ stack will get used for any */\
- /* functions calls made by this ISR. */ \
- asm volatile ( "SUB R11, LR, #4" ); \
{
#define portEXIT_SWITCHING_ISR( SwitchRequired ) \
diff --git a/Source/portable/GCC/ARM7_LPC23xx/portmacro.h b/Source/portable/GCC/ARM7_LPC23xx/portmacro.h
index c068fcb77..d6d3f4de5 100644
--- a/Source/portable/GCC/ARM7_LPC23xx/portmacro.h
+++ b/Source/portable/GCC/ARM7_LPC23xx/portmacro.h
@@ -44,6 +44,9 @@
+ The assembler statements are now included in a single asm block rather
than each line having its own asm block.
+
+ + The macro portENTER_SWITCHING_ISR() no longer attempts to use the frame
+ pointer. Variables declared within ISRs must now be declared static.
*/
#ifndef PORTMACRO_H
@@ -187,12 +190,6 @@ extern volatile unsigned portLONG ulCriticalNesting; \
#define portENTER_SWITCHING_ISR() \
/* Save the context of the interrupted task. */ \
portSAVE_CONTEXT(); \
- \
- /* We don't know the stack requirements for the ISR, so the frame */\
- /* pointer will be set to the top of the task stack, and the stack*/\
- /* pointer left where it is. The IRQ stack will get used for any */\
- /* functions calls made by this ISR. */ \
- asm volatile ( "SUB R11, LR, #4" ); \
{
#define portEXIT_SWITCHING_ISR( SwitchRequired ) \