#define portENABLE_INTERRUPTS() asm( " CPSIE I" )\r
\r
/* Scheduler utilities. */\r
-#define portYIELD() _call_swi( 0 )\r
+#pragma SWI_ALIAS( vPortYield, 0 )\r
+extern void vPortYield( void );\r
+#define portYIELD() vPortYield()\r
#define portSYS_SSIR1_REG ( * ( ( volatile unsigned long * ) 0xFFFFFFB0 ) )\r
#define portSYS_SSIR1_SSKEY ( 0x7500UL )\r
#define portYIELD_WITHIN_API() { portSYS_SSIR1_REG = portSYS_SSIR1_SSKEY; ( void ) portSYS_SSIR1_REG; }\r
-#define portYIELD_FROM_ISR() { portSYS_SSIR1_REG = portSYS_SSIR1_SSKEY; ( void ) portSYS_SSIR1_REG; }\r
+#define portYIELD_FROM_ISR( x ) if( x != pdFALSE ){ portSYS_SSIR1_REG = portSYS_SSIR1_SSKEY; ( void ) portSYS_SSIR1_REG; }\r
\r
/* Architecture specific optimisations. */\r
#if configUSE_PORT_OPTIMISED_TASK_SELECTION == 1\r