mirror of
https://github.com/FreeRTOS/FreeRTOS-Kernel.git
synced 2025-04-19 21:11:57 -04:00
+ The macro portENTER_SWITCHING_ISR() no longer attempts to use the frame pointer. Variables declared within ISRs must now be declared static.
This commit is contained in:
parent
98a9959a44
commit
a3921adfe1
|
@ -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
|
||||
|
|
|
@ -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 ) \
|
||||
|
|
|
@ -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 ) \
|
||||
|
|
|
@ -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 ) \
|
||||
|
|
|
@ -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 ) \
|
||||
|
|
Loading…
Reference in a new issue