]> git.sur5r.net Git - freertos/commitdiff
Update to use the latest Yagarto and change the C handler part of the interrupt routi...
authorrichardbarry <richardbarry@1d2547de-c912-0410-9cb9-b8ca96c0e9e2>
Fri, 18 Sep 2009 14:08:36 +0000 (14:08 +0000)
committerrichardbarry <richardbarry@1d2547de-c912-0410-9cb9-b8ca96c0e9e2>
Fri, 18 Sep 2009 14:08:36 +0000 (14:08 +0000)
git-svn-id: https://svn.code.sf.net/p/freertos/code/trunk@853 1d2547de-c912-0410-9cb9-b8ca96c0e9e2

Demo/ARM7_LPC2106_GCC/lpc2106-ram.ld
Demo/ARM7_LPC2106_GCC/lpc2106-rom.ld
Demo/ARM7_LPC2106_GCC/serial/serialISR.c

index c54802c2f0d0e95963310a050e3249be66ee6589..523a41ad70cfda7ec8fe5b2c4ce5046e6d99b3cf 100644 (file)
@@ -36,6 +36,12 @@ SECTIONS
                *(.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
index e7cf25a2246069fc4649bd83c61a55b6505ba50e..0e70a4aa7c4bf923fe47252380a40cc858042e87 100644 (file)
@@ -36,6 +36,12 @@ SECTIONS
                *(.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
index f3de5448f6dbea6a479c11e429e0396b53ac894c..5d2a06d164fb70bfef4d76c63f51874912f89352 100644 (file)
@@ -96,7 +96,7 @@ void vSerialISRCreateQueues( unsigned portBASE_TYPE uxQueueLength, xQueueHandle
 void vUART_ISR_Wrapper( void ) __attribute__ ((naked));\r
 \r
 /* UART0 interrupt service routine handler. */\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, \r
@@ -124,7 +124,7 @@ void vUART_ISR_Wrapper( void )
 \r
        /* Call the handler.  This must be a separate function from the wrapper\r
        to ensure the correct stack frame is set up. */\r
-       vUART_ISR_Handler();\r
+       __asm volatile ("bl vUART_ISR_Handler");\r
 \r
        /* Restore the context of whichever task is going to run next. */\r
        portRESTORE_CONTEXT();\r