* \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
\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
#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
\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
#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
\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
#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
\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
#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