Event Groups: Convert the 'clear bits from ISR' function into a pended function to fix reentrancy issue.

Event Groups: Ensure the 'wait bits' and 'sync' functions don't return values that still contain some internal control bits.
This commit is contained in:
Richard Barry 2014-04-23 15:23:54 +00:00
parent fa7222ab4a
commit f25503977e
7 changed files with 103 additions and 29 deletions

View file

@ -110,6 +110,8 @@
#error configMAX_API_CALL_INTERRUPT_PRIORITY must be greater than ( configUNIQUE_INTERRUPT_PRIORITIES / 2 )
#endif
/* Some vendor specific files default configCLEAR_TICK_INTERRUPT() in
portmacro.h. */
#ifndef configCLEAR_TICK_INTERRUPT
#define configCLEAR_TICK_INTERRUPT()
#endif

View file

@ -130,6 +130,7 @@ extern void vPortEnterCritical( void );
extern void vPortExitCritical( void );
extern uint32_t ulPortSetInterruptMask( void );
extern void vPortClearInterruptMask( uint32_t ulNewMaskValue );
extern void vPortInstallFreeRTOSVectorTable( void );
/* These macros do not globally disable/enable interrupts. They do mask off
interrupts that have a priority below configMAX_API_CALL_INTERRUPT_PRIORITY. */

View file

@ -184,6 +184,9 @@ UBaseType_t uxCriticalNesting = 0xef;
#ifndef portRESTORE_CONTEXT
#error Unrecognised device selected
/* Note: dsPIC parts with EDS are not supported as there is no easy way to
recover the hardware stacked copies for DOCOUNT, DOHIGH, DOLOW. */
#endif
/*