*(.bss)\r
} >ram\r
\r
+ . = ALIGN(4);\r
+ .eh_frame :\r
+ {\r
+ KEEP (*(.eh_frame))\r
+ } > ram\r
+ \r
/* Align here to ensure that the .bss section occupies space up to\r
_end. Align after .bss to ensure correct alignment even if the\r
.bss section disappears because there are no input sections. */\r
*(.bss)\r
} >ram\r
\r
+ . = ALIGN(4);\r
+ .eh_frame :\r
+ {\r
+ KEEP (*(.eh_frame))\r
+ } > ram\r
+ \r
/* Align here to ensure that the .bss section occupies space up to\r
_end. Align after .bss to ensure correct alignment even if the\r
.bss section disappears because there are no input sections. */\r
\r
/* The ISR function that actually performs the work. This must be separate \r
from the wrapper to ensure the correct stack frame is set up. */\r
-void vUART_ISR_Handler( void );\r
+void vUART_ISR_Handler( void ) __attribute__ ((noinline));\r
\r
/*-----------------------------------------------------------*/\r
void vSerialISRCreateQueues( unsigned portBASE_TYPE uxQueueLength, xQueueHandle *pxRxedChars, xQueueHandle *pxCharsForTx )\r
\r
/* Call the handler. This must be a separate function to ensure the \r
stack frame is correctly set up. */\r
- vUART_ISR_Handler();\r
+ __asm volatile( "bl vUART_ISR_Handler" );\r
\r
/* Restore the context of whichever task will run next. */\r
portRESTORE_CONTEXT();\r