]> git.sur5r.net Git - freertos/blobdiff - FreeRTOS/Source/portable/GCC/ARM_CM3/portmacro.h
Add barrier instructions to the GCC CM3 ports.
[freertos] / FreeRTOS / Source / portable / GCC / ARM_CM3 / portmacro.h
index d436e732ac18bda3c1e1a82f1b04b956fc053e20..552b3396c6251eb7d6079e9ceeeb56b4f03cf46a 100644 (file)
@@ -116,9 +116,11 @@ extern "C" {
 \r
 \r
 /* Scheduler utilities. */\r
-extern void vPortYieldFromISR( void );\r
-#define portYIELD()                                    vPortYieldFromISR()\r
-#define portEND_SWITCHING_ISR( xSwitchRequired ) if( xSwitchRequired ) vPortYieldFromISR()\r
+extern void vPortYield( void );\r
+#define portNVIC_INT_CTRL_REG          ( * ( ( volatile unsigned long * ) 0xe000ed04 ) )\r
+#define portNVIC_PENDSVSET_BIT         ( 1UL << 28UL )\r
+#define portYIELD()                                    vPortYield()\r
+#define portEND_SWITCHING_ISR( xSwitchRequired ) if( xSwitchRequired ) portNVIC_INT_CTRL_REG = portNVIC_PENDSVSET_BIT\r
 /*-----------------------------------------------------------*/\r
 \r
 /* Critical section management. */\r